Selecting Nested Families

Is there a node similar to All Elements of Category that can also select the nested families?

If not, how would i go about selecting nested families?

If the nested family is Shared and listed in the Project Browser under Families then you should be able to access it using the Family Types node

Otherwise, you will first need to check Shared in Family Categories and Parameters (in the Create tab) in the relevant Family file and reload it into the project.

1 Like

Thanks Vikram

Hi Chueb,

You can also try looking at “FamilyInstance.SubComponents” custom node from clockwork package.

2 Likes

Can we automate the " check Shared in Family Categories and Parameters" part in some way?

1 Like

Hi,
In my case I can not use the shared parameter option. I am importing geometry from other CAD programs and get problems if I check shared parameter. Is there a way to it without the shared parameter?

Hi.
I have spent about an hour searching for an answer and nothing really solves my problem, which, I think is the same as yours.

I have made some 6 rounds of modifications to some 26 casework families over the last 6 months. My target is to write a Dynamo script that can set all cabinetry materials and panel types.

As Vikram suggested, you’d need to click on “shared” for every family (and…@ theshysnail no…it cannot be automated that I am aware of, and I would be, I have searched this and other forums for months).

If you go the “Shared Nested” route, it is true, you’ll find all subcomponents available as a drop down for each family, once you are in a project environment.
What’s more, Dynamo can automate the dimensioning of those families (shared parts) and that would replicate all over your project.

BUT…the minute you include any family carrying a nested shared component on a Model Group, you are in trouble. You will not be able to switch panel types, for example, on casework families. So, unless you know or set on stone that no one will be using model groups…ever…you probably want to consider nesting parts, but not sharing them. Which is where I am right now.

At this point on my research, I am aware that Dynamo can retrieve NestedTypeReference (something like that), for example, if you assign a label for a panel type to your nested casework front, Dynamo can retrieve that parameter by Element.GetParameterbyName, but you can’t retrieve the other panel types nested inside of that casework family, unless there is a way to do so with Python, which is what I have read people ask for the last 2 years, but I haven’t seen any post with that code.

Said that, all my casework families now have the same standard panel types nested as non-shared nested components. I have those panels as independent families somewhere, so I loaded them directly into Revit. Then I had Dynamo retrieve them as family types, and used them to plug into the Element.SetParameterValueByName node, and it works. So, what happens is that Dynamo bypasses the nested family component with the independent version of it, even though it isn’t shared. Furthermore, the field appears blank once I open the family Edit type dialogue (in the project), letting you know that that component isn’t the nested one. However, my “PANEL_TYPE” family type (label) parameter is a shared parameter and it populates perfectly on schedules.

The moment you go this path, if you have mapped the nested panel parameters to the host family parameters, that relationship is broken, since they are overridden to whatever those parameters are for that panel as an independent family. But, if you go to the family type editor and drop down the label, choosing any of the nested panels, the relationship is re-established.

This is all very messy, but I believe it features well what I have observed. I would prefer to be able to retrieve all nested components from any given element (family) but I haven’t yet found the code for that and I can’t code in Python.

Thanks