OK I know how to create worksets but is there also a way to create and also turn off the visibility?
oh I am using Revit 2023
Need to see that code to know why it isn’t working consistently, but from what I can see in your animation it is working as expected…
#import libraries
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
app = DocumentManager.Instance.CurrentUIApplication.Application
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
# collect all worksets ids and names
filter = WorksetKindFilter(WorksetKind.UserWorkset)
WkSetId = [w.Id for w in FilteredWorksetCollector(doc).WherePasses(filter)]
WkSetNames = [w.Name for w in FilteredWorksetCollector(doc).WherePasses(filter)]
result = []
# Inputs
names,bool = IN
#Get WorksetDefaultVisibilitySettings and SetWorksetVisibilty by workset name
for wid, wnm in zip(WkSetId,WkSetNames):
if wnm in names:
TransactionManager.Instance.EnsureInTransaction(doc)
wvb=WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc).SetWorksetVisibility(wid,bool)
gwvb=WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc).IsWorksetVisible(wid)
if not gwvb:
result.append('Visibility in all Views Off')
else:
result.append('Visibility in all Views On')
TransactionManager.Instance.TransactionTaskDone()
OUT = result
that is not my animation it is the links sorry for the confusion. when I try and recreate it it doesn’t work
Nv_Worksets.dyn (14.3 KB)
1 Like
Are you getting an error message?
Hi,
here’s a little fix
#import libraries
import clr
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument
app = DocumentManager.Instance.CurrentUIApplication.Application
clr.AddReference("RevitAPI")
from Autodesk.Revit.DB import *
# collect all worksets ids and names
filter = WorksetKindFilter(WorksetKind.UserWorkset)
WkSetId = [w.Id for w in FilteredWorksetCollector(doc).WherePasses(filter)]
WkSetNames = [w.Name for w in FilteredWorksetCollector(doc).WherePasses(filter)]
result = []
# Inputs
lst_name, lst_bool = IN
defaultVisibility = WorksetDefaultVisibilitySettings.GetWorksetDefaultVisibilitySettings(doc)
TransactionManager.Instance.EnsureInTransaction(doc)
for wid, wnm in zip(WkSetId,WkSetNames):
if wnm in lst_name:
idx = lst_name.index(wnm)
defaultVisibility.SetWorksetVisibility(wid, lst_bool[idx])
result.append(f"Worskset '{wnm}' Visibility is set to '{lst_bool[idx]}'")
TransactionManager.Instance.TransactionTaskDone()
OUT = result
1 Like