Workset Editability

@kennyb6 there you go :slight_smile:

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

# Import Element wrapper extension methods
clr.AddReference("RevitNodes")
import Revit
clr.ImportExtensions(Revit.Elements)

# Import geometry conversion extension methods
clr.ImportExtensions(Revit.GeometryConversion)

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

# Import RevitAPI
clr.AddReference("RevitAPI")
import Autodesk
from Autodesk.Revit.DB import *

# Import system library
clr.AddReference('System.Core')
from System.Collections.Generic import *

doc = DocumentManager.Instance.CurrentDBDocument
uiapp = DocumentManager.Instance.CurrentUIApplication
app = uiapp.Application


if isinstance(IN[0], list):
	newdocs = UnwrapElement(IN[0])
	IDs = UnwrapElement(IN[1])
	Names = UnwrapElement(IN[2])

else:
	newdocs = UnwrapElement([IN[0]])
	IDs = UnwrapElement([IN[1]])
	Names = UnwrapElement([IN[2]])

typelist, iDs = [],[]

TransactionManager.Instance.ForceCloseTransaction()

try:
	if IN[3]:
		x = 0
		for newdoc in newdocs:
			iDs = IDs[x]
			names = Names[x]
			Ids = List[WorksetId](iDs)
			try:
				checkedout_ws = WorksharingUtils.CheckoutWorksets(newdoc,Ids)
				typelist.append([newdoc,names,checkedout_ws])
			except Exception,e:
				typelist.append(str(e))
			x=x+1			
	else: 
		typelist.append("Please toggle to True to continue this process")
except Exception,e:
	typelist.append(str(e))
OUT = typelist
3 Likes