Get Family Name vs Get Type Name


#1

Capture

 

 

 

 

 

 

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?


#2

Hi Ben,

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:

2014-12-19_093119

 

 

-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.


Family.Name and Element.Name return type names, not family names?
#3

Thanks Dimitar.

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?


#4

it is the family’s Id