How to set worksets without using packages

You can get workset names and ids from Python. The id is the actual parameter value you need to set an element’s workset.

import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

# Import DocumentManager
clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk

# Import ToDSType(bool) extension method
clr.AddReference("RevitNodes")
import Revit
from Autodesk.Revit.DB import *
clr.ImportExtensions(Revit.Elements)

#The inputs to this node will be stored as a list in the IN variable.
#doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application
doc = DocumentManager.Instance.CurrentDBDocument

#create workset collector
userWorksets = FilteredWorksetCollector(doc).OfKind(WorksetKind.UserWorkset)

names, ids = [], []
for i in userWorksets:
	names.append(i.Name)
	ids.append(i.Id.IntegerValue)

#Assign your output to the OUT variable
OUT = names, ids
4 Likes