Revit API: Isolate Elements
There is no method to permanently isolate elements. So I will show you how to use .Excluding method of FilteredElementCollector to hide everything except elements we need.
βHow to Isolate Elements with Revit API + python
So you have come to the point where you wanted to isolate your elements and you could not find the right method. You might have seen IsolateElementsTemporary
method but that's not exactly the right fit.
There are probably many different ways to Isolate your elements, but I like to use .Excluding
method of FilteredElementCollector
to get all elements except for the ones I want to isolate and hide them (if possible).
- code
-
# -*- coding: utf-8 -*- # β¬οΈ Imports from Autodesk.Revit.DB import * import clr clr.AddReference('System') from System.Collections.Generic import List # π¦ Variables uidoc = __revit__.ActiveUIDocument doc = __revit__.ActiveUIDocument.Document active_view = doc.ActiveView # π― Function def isolate_elements(elements, view): # type:(List[ElementId], View) -> None """Function to Isolate Elements in the given View.""" # βElements to Hide hide_elem = FilteredElementCollector(doc, view.Id)\ .Excluding(elements)\ .WhereElementIsNotElementType().ToElements() # π Filter Elements that can not be hidden. hide_elem_ids = [e.Id for e in hide_elem if e.CanBeHidden(view)] # π Isolate Elements view.HideElements(List[ElementId](hide_elem_ids)) # π― Main t = Transaction(doc, 'Isolate Elements') t.Start() # π¦ Get Elements to Isolate elements_to_isolate = [doc.GetElement(e_id) for e_id in uidoc.Selection.GetElementIds()] List_isolate_ids = List[ElementId](elements_to_isolate) # β Isolate Elements isolate_elements(List_isolate_ids, active_view) t.Commit() __author__ = 'Erik Frits'
Example: I am getting selected elements just as an example, adjust to your own needs!
β¨οΈ Happy Coding!
— Erik Frits
π© Join Revit API Newsletter
Get updates on the Revit API Course. Best Deal Guaranteed!
Plus, get useful Revit API tips from the newsletter.
Plus, get useful Revit API tips from the newsletter.