def SetWorksetVisibility(view, workset): worksets = DB.FilteredWorksetCollector(doc).OfKind( DB.WorksetKind.UserWorkset) for work in worksets: if work.Name == workset.Name: view.SetWorksetVisibility(work.Id, DB.WorksetVisibility.Visible) else: view.SetWorksetVisibility(work.Id, DB.WorksetVisibility.Hidden)
def LOG_WorksetsMain(sh): ri = re #ci = ce sh.Cells.ClearContents() sh.Range[rg(rt1, ce)].Value2 = "'PROJECT NAME" sh.Range[rg(rt1, ce + 1)].Value2 = "'TYPE" sh.Range[rg(rt1, ce + 2)].Value2 = "'ID" sh.Range[rg(rt1, ce + 3)].Value2 = "'NAME" docname = doc.Title collector = DB.FilteredWorksetCollector(doc).OfKind(DB.WorksetKind.ViewWorkset) ri = LOG_Collector(sh, ri, docname, collector) collector = DB.FilteredWorksetCollector(doc).OfKind(DB.WorksetKind.UserWorkset) ri = LOG_Collector(sh, ri, docname, collector) sh.Cells.EntireColumn.AutoFit()
name = "WORKSET VIEW - " + workset.Name if view.Name == name: try: doc.Delete(view.Id) break except: forms.alert( 'Current view was cannot be deleted. Close view and try again.' ) return False return True if forms.check_workshared(doc, 'Model is not workshared.'): viewtype_id = FindViewType(doc).Id worksets = DB.FilteredWorksetCollector(doc).OfKind( DB.WorksetKind.UserWorkset) views = DB.FilteredElementCollector(doc).OfClass(DB.View).ToElements() # Check if the view type found has ViewTemplate associated with it # A ViewTemplate will prevent the assignment of correct Workset settings RemoveViewTemplate(viewtype_id) # Delete all previous Workset views # In case the user has opened one of them, warn them and do not execute if DeleteExistingView(views, worksets): with revit.Transaction("Create 3D Worksets"): for workset in worksets: name = workset.Name view = DB.View3D.CreateIsometric(doc, viewtype_id) view.Name = "WORKSET VIEW - " + name SetWorksetVisibility(view, workset)