Exemple #1
0
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()