Isolate Elements in View

Hello. I’m trying to isolate multiple families in multiple views (1 family per view), and I can’t seem to get it to work. My end goal is to have a view containing only one specific family element. I’ve tried using Clockworks View.PermanentlyIsolateElement and archilabs Isolate in View nodes, but no luck. The issue I’m having is it either it doesn’t do anything, or it hides everything making the view blank. I even tried to make my own python code, but it seems to hide everything as well and not isolate the one family like I want it to. Can someone please help? Thanks!

Here is how I have my graph set up currently:

Also Python code for easy copying:

Load the Python Standard and DesignScript Libraries
import sys
import clr
clr.AddReference('ProtoGeometry')
from Autodesk.DesignScript.Geometry import *

clr.AddReference("RevitServices")
import RevitServices
from RevitServices.Persistence import DocumentManager
from RevitServices.Transactions import TransactionManager
doc = DocumentManager.Instance.CurrentDBDocument


# The inputs to this node will be stored as a list in the IN variables.
elements = IN[0]
views = IN[1]
out = []

# Place your code below this line

def unWrap(list):
	outlist = []
	for x in list:
		outlist.append(UnwrapElement(x))
	return outlist

elements = unWrap(elements)

for view,element in zip(views,elements):
	TransactionManager.Instance.EnsureInTransaction(doc)
	UnwrapElement(view).IsolateElementTemporary(element.Id)
	TransactionManager.Instance.TransactionTaskDone()

l = [views,elements]
out = map(list, zip(*l))
# Assign your output to the OUT variable.
OUT = out

The element still has to be visible in the view. Your code works fine for me. I’m guessing something else in the view (filters, view range, worksets, etc) is preventing the element from being visible.

FYI you can convert the temporary overrides to permanent with this method once you get your element visible.

The element is normally visible in the view prior to trying to isolate it. Its also the same element for the three views I’m testing this on, so there shouldn’t be a way I’m mixing them up. If I reveal hidden elements after attempting to isolate, I can see the element - it even has the blue outline that the other hidden elements have.

Thanks for the FYI. I know I can, and I plan to make the isolation permanent. For now, I was just trying to get any kind of element isolation to work.

IDK if this helps identify the problem, but I’m on Revit 2020 and Dynamo version 2.3.0.XXX.
Clockwork package: v2.1.2
archi-lab: v2020.22.9

Thanks.

1 Like

At this point you’d probably have to share an example file where you can recreate the issue. The issue does not seem to be with the code so we’d have to take a look at the project and the specific elements.

So I just figured out my problem… The element I’m trying to isolate has nested shared families, and so I think when dynamo tried to isolate the host family, it hides all the nested families essentially making the family invisible… I noticed that I can still select the element by doing a crossing window where the family used to be.

To fix this, I used the rhythm node FamilyInstance.RetriveNestedComponents before the isolate node to get all the nested families I need to isolate as well.

This post still helped in a way since I only noticed that when I was trying to make a generic project and dynamo graph to post here. So thank you I guess! :slightly_smiling_face:

2 Likes


Hello. I’m trying to isolate some elements in 3d view, but for some reason all the elements disappear from the view and I get a blank view. The script runs without error but is still bad.
Does this script work for anyone?
Can someone please help?
Thanks.

By the looks if your Element.GetParameterValueByName node before your filter node, It looks like you are feeding the isolate in view node parameter values (which are family types) instead of instances of elements. Essentially the isolate in view node is hiding everything because its not receiving any elements placed in the project (instances), only family types. Maybe bypass the Element.GetParameterValueByName node and feed the “list” input on the filter node directly with the output of All Elements of Category?


It works as I imagined. Thanks again for helping.

I try to isolate few Elements in few Views


Node looks like it works correctly

All this views are SectionViews
image

On first view I achived what I wanted
image
on second dimension disappear
image
image
In third also disappear, but rebars from perpenidicular beam which I joined befor to this one are visible
image
and dimension was delete (this dimension is visible in node list and before run script was also visible)
image
What do you think about it?

Is it isolate element only in CropRegion?
Because it is exampe from first view