def copyfromdoc(typelist, sourcedoc, activedoc): idlist = List[ElementId]() [idlist.Add(i.Id) for i in typelist] try: t = Transaction(doc, "copy ViewTemplates") t.Start() DB.ElementTransformUtils.CopyElements(sourcedoc, idlist, activedoc, None, DB.CopyPasteOptions()) t.Commit() for i in typelist: print i.ToString( ) + " --> copied " #"{} - {} --> copied ".format(i.Name , i.Id) #forms.alert("Copied from {} to {} : \n{}".format(sourcedoc.Title, activedoc.Title, text )) except: print traceback.format_exc()
else: doclist = [i for i in docs if not i.Title.Equals(activedoc.Title)] selectedtitle = forms.CommandSwitchWindow.show( [i.Title for i in doclist], message="Select System-Category to copy ") dict_docs = {i.Title: i for i in doclist} copyfromdoc = dict_docs[selectedtitle] fecvt = FilteredElementCollector(copyfromdoc).OfClass(DB.View).ToElements() viewtemps = [i for i in fecvt if i.IsTemplate] try: selectedvt = select_template(viewtemps) if not selectedvt: sys.exit() idlist = List[ElementId]() [idlist.Add(i.Id) for i in selectedvt] t = Transaction(doc, "copy ViewTemplates") t.Start() DB.ElementTransformUtils.CopyElements(copyfromdoc, idlist, activedoc, None, DB.CopyPasteOptions()) t.Commit() except SystemExit as e: pass except: import traceback print traceback.format_exc()