See attached image. I’m trying to get the family name of each element in a list. Not the Type Name, nor the Family Name: Type Name. Just the Family Name.
If I use Element.Parameters node, I can see that there is a Parameter called “Family” that contains exactly the info I need, which is “(Concrete)-Rectangular-Framing”. When I use Element.GetParameterValueByName, I get a number 87683. What??? And to Further confuse things, if I use Family.Name or FamilySymbol.Name, I get the Type Name “12 x 24” rather than the Family Name.
Any ideas? What is the intended use of Family.Name if it does not give the Family Name?
The Dynamo team has tried to keep the structure of the nodes as similar as possible to their equivalents in the Revit API. That has a lot of benefits but it may be a hindrance at times too because the API has been revised and re-revised constantly for the last 10+ years and the naming scheme in the API is frankly said is a bit of a mess. However if you think logically about it, you can still find your way through it:
-When you run a collector of all elements of a category, you get family instances.
You have to then extract the family symbol object of those instances ( that’s the family type)
Once you have the symbol, you can cross-reference it to the families and see the family it belongs to
finally you can use the Name node to extract the name from the family objects as a string.
That solves my problem I’m dealing with, but it does not explain the inconsistency between the Element.Parameters node finding a parameter called “Family”, but the Element.GetParameterByName node returning a 6 digit number for “Family” instead of the value that was found by Element.Parameters. Is that just some weird bug or is that 6 digit number actually the ID of the Family Type?