Can you make a workset and also turn off the visibility

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

found this but it doesnt seem to work


\

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?

Admitted I am not a python master or even a beginner lol

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

Ugh figured it out I was using CPython3 and not Ironpython2 once I switched it I was good to go. also added a wait for just in case

Thank you everyone for the help.