Determine which nested family contains a specific shared parameter

As a follow-up to my other topic on shared parameters…

The list of shared parameters I can retrieve reports all SP’s in the parent family and the child families. Is there a way to determine which child family (that is nested into the parent) that contains a specific SP?

Did you try to use Get Parameter with the family list and any null(or empty) would be the ones without it?

1 Like


a node called Element.GetParameterValueByParameterGUID? :slight_smile:

Something to try:
Gather all elements by your chosen method. Element.Parameters node.
Parameter.Name node.
== node.
A string node with the given parameter name.
A List.Contains node with longest lacing.
A true Boolean node.
And finally a List.FilterByBoolMask node with the original selection as the list and the output of the List.Contains as the mask.

The what if question here is, what if i have two shared parameters with the same name comming from two different shared parameter files?



You broke Revit?

No breaking Revit here, it gave me two parameters with the same name and a different GUID.
So Dynamo sets two values with ElementSetParameterByName?
Which is which :slight_smile:

Yes Revit will let you use multiple SP files, but due to the issues which pop up of you do that, most users I know advise against it for this reason.

How did you know which GUID to select by, since they all have the same name, and I am assuming other data is matching as well?

I think it might be just the reason why this thread was started.
But i’m guessing here.
I’ve seen it before though. Very messy indeed.

Yeah, I once got a model with around 30 parameters of the same ‘color’ name. Was from an office that had let people use an individual SP file for each project, and then stuff was copy/pasted or inserted from view over between models and a new one again and again and again and again…

Worked around by making a new parameter for ‘current element id’ and a new parameter for ‘GOOD COLOR’ and a large schedule, and then pushing the data out to excel (28/30 for any element were null), and copied the ‘good’ values over to the new parameter field (in excel via If statement that weighted what we thought the more likely ‘good’ values were), and pushing the data back into the model using the value from the element ID parameter to tie things together.