from Autodesk.Revit.DB import Workset, FilteredWorksetCollector, WorksetKind, FilteredElementCollector, ElementWorksetFilter, Element from Autodesk.Revit.UI import TaskDialog from pprint import pprint uidoc = __revit__.ActiveUIDocument doc = __revit__.ActiveUIDocument.Document cl = FilteredWorksetCollector(doc) worksetlist = cl.OfKind(WorksetKind.UserWorkset) if doc.IsWorkshared: for ws in worksetlist: elementCollector = FilteredElementCollector( doc).WhereElementIsNotElementType() elementWorksetFilter = ElementWorksetFilter(ws.Id, False) els = elementCollector.WherePasses(elementWorksetFilter).ToElements() print('WORKSET: {0} ID: {1} COUNT: {2}'.format(ws.Name.ljust(50), ws.Id, len(els))) els_array = {} for e in els: t = e.GetType().ToString() if t not in els_array.keys(): els_array[t] = [] els_array[t].append(str(e.Id)) # # print(",".join(els_array.keys)) # print("\n") for k in els_array.keys():
def WorksetElements(doc, workset): elementCollector = FilteredElementCollector(doc) elementWorksetFilter = ElementWorksetFilter(workset.Id, False) worksetElemsfounds = elementCollector.WherePasses( elementWorksetFilter).ToElements() return worksetElemsfounds
# -*- coding: utf-8 -*- import clr clr.AddReference("RevitAPI") from Autodesk.Revit.DB import FilteredElementCollector, ElementWorksetFilter, Instance clr.AddReference("RevitServices") from RevitServices.Persistence import DocumentManager doc = DocumentManager.Instance.CurrentDBDocument active_worset = doc.GetWorksetTable().GetActiveWorksetId() filter_worset = ElementWorksetFilter(active_worset) workset_name = doc.GetWorksetTable().GetWorkset(active_worset).Name elements = FilteredElementCollector(doc).OfClass(Instance).WherePasses( filter_worset).ToElements() OUT = elements, workset_name