elements = UnwrapElement(IN[0]) # list of Curtain Panels to isolate
idlist = List[ElementId]()
for e in elements:
idlist.Add(e.Id)
doc = DocumentManager.Instance.CurrentDBDocument
view = doc.ActiveView
t = Transaction(doc)
t.Start('isolate')
view.IsolateElementsTemporary(idlist)
t.Commit()
However, the code does not work with Curtain Panels - it isolates everything, and just shows an empty view. I tested it on Revit 2022 and latest Revit 2025.
I suspect this may be a bug in Isolate Elements functionality (the underlying wall category might need to remain âonâ to allow the panels to be visible and Isolate Elements may not be doing that).
The same Autodesk Manager provides a possible solution, but I am not able to replicate it via revit api:
I found that choosing the panels, selecting âIsolate Categoryâ and then âIsolate Elementsâ results in just the selected elements being visible, which is what you want. You should be able to do something similar with the API.
Has anyone ever solved this problem?
Thank you for the help in advance.
Hi @jacob.small ,
Thank you very much for the help.
I canât make it work with Rhythm.
It isolates an âemptyâ Curtain Panel successfully (Family: âSystem Panelâ).
But if I change the Curtain Panel to any other Type - again I get an empty view (all elements are isolated).
I tried adding âBuiltInCategory.OST_GenericModelâ category as well to âIsolateCategoriesTemporaryâ - still I get an empty view.
I have a feeling this is a Revit issue. What happens if you just manually try to isolate the curtain panel in Revit > select the CP and use âisolate elementâ ? and also try âisolate categoryâ?
Thank you for the reply @jacob.small .
I havenât tried with âisolate categoryâ, but manually using âisolate elementâ works perfectly in Revit.
Curtain panels are nested inside a wall. You hide the wall category, and the panels go with it. So, you need to make sure walls as a category stay on. So, if you are isolating by element, you also need to make sure it is that wall and those panels that stay on.
Further - custom wall panels may be of several types, they could be system panels, other custom walls, empty, walls, doors nested or other nested elements.
Your logic will need to be more robust and deeper to get the items you really want.
If you want to isolate panels, you will have to gather the walls, find the curtain walls. Isolate those walls. Then hide the mullions.
Thank you very much @aaron_rumple .
I am actually trying to isolate a single FamilyInstance, which is applied to a Curtain Panel. So instead of generic âSystem Panelâ type, applied to a newly created Curtain Panel, I applied a specific FamilyInstance (for example called: âFacade 1â).
I tried to take your advice, and first isolate the following categories (with activeView.IsolateCategoriesTemporary method):
The thing I noticed is that I always get an empty isolated view, when my FamilyInstance applied to Curtain Panel is nested.
This is what @john_pierson showed in his last picture - if the FamilyInstance applied to Curtain Panel is not nested - then the Rhythm node works without issues.
So now I am confused. It is as if, I need some sort of BuiltInCategory.OST_FamilyInstance, which would represent those nested families. But such BultinCategory does not exist.
Thank you for the testing @john_pierson. I am using my companyâs .rvt file. I am not allowed to share it.
Maybe I can replicate it, by making a very small dummy .rvt file.
Is the FamilyInstance shared? If it is nested inside a curtain panel family and not shared - it becomes âdumbâ and not selectable or schedulable. Only the geometry is visible.
I donât know if that is your issue or not. A sample of the element would be handy. Just pull that one item out in an otherwise blank project file.
A wild guess here. Are there subcategories applied to the elements in your family? Rhythm is isolating the parent category. It might be hiding subcategories(?)
Big guess. But you can check that by applying the temporary properties and then using the visibility graphics to see what is turned on and off.
Close the file, open it detached, create a new 3D view and make it active, delete everything other than one curtain wall with an instance of the curtain panel which wonât isolate, change all other panels to a basic system panel, remove all millions from from the curtain wall type, delete all views but the active one, purge unused a few time, and save as a new file.
The only model content persisting would be a single curtain wall with no mullions, mostly system panels and a single instance which wonât isolate. If they wonât let you share that⌠I guess youâll have to build a new file.
Hi @aaron_rumple ,
Thank you once again for the patience and help.
I donât know how to check if there are subcategories applied.
I am at the same time trying the Rhythm and a Python node, by slightly adding more isolating categories. Rhythm isolates only .OST_CurtainWallPanels. I also added Walls, GenericModel, StructuralFraming, Doors, Windows, Assemblies.
How can I apply the temporary properties? Does that mean isolating one element by one element, in that Curtain Panel Family Instance?