from System.Collections.Generic import List uidoc = __revit__.ActiveUIDocument doc = __revit__.ActiveUIDocument.Document selection = [ doc.GetElement(elId) for elId in __revit__.ActiveUIDocument.Selection.GetElementIds() ] if len(selection) > 0: firstEl = selection[0] CID = firstEl.Category.Id TID = firstEl.GetTypeId() cl = FilteredElementCollector(doc) list = cl.OfCategoryId(CID).WhereElementIsNotElementType().ToElements() set = [] modelItems = [] vsItems = {} vsList = firstEl.ViewSpecific for r in list: if r.GetTypeId() == TID: set.append(r.Id) if vsList: ovname = doc.GetElement(r.OwnerViewId).ViewName if ovname in vsItems: vsItems[ovname].append(r) else: vsItems[ovname] = [r]
doc = DocumentManager.Instance.CurrentDBDocument clr.AddReference("RevitAPI") from Autodesk.Revit.DB import FilteredElementCollector clr.AddReference("RevitNodes") import Revit clr.ImportExtensions(Revit.Elements) def tolist(obj1): if hasattr(obj1,"__iter__"): return obj1 else: return [obj1] cat = UnwrapElement(IN[0]) OUT = [] ueWrapper = None wrappers = clr.GetClrType(Revit.Elements.ElementWrapper).GetMethods() for w in wrappers: if w.ToString().startswith("Revit.Elements.UnknownElement"): ueWrapper = w break if ueWrapper is not None: fec = FilteredElementCollector(doc).WhereElementIsNotElementType() if cat is not None: fec = fec.OfCategoryId(cat.Id) view_el = [] for e in fec: view_el.append(ueWrapper.Invoke(None, (e, True) ) ) OUT.append(view_el)