Elements, Type, and Families

Hello all,
I am working with the Elements, Element Types and Families. I was wondering if someone could help clear up how things are selected in dynamo and make sure I have the Revit Hierarchy correct. (Image copied form the Primer.

Using Element Types with Family Instances and All Elements of Type I get 6,072 elements. What are these elements? Using code from Einar_Raknes in post Collect all categories in a project I get 113,172 Element ID’s. Thats a huge difference in Element counts.

FamilyInstance.Type then return 525 elements while Family Symbol returns 1,636. FamilyInstance.Type also will not take Mullions and Curtain Panels while Element.GetParameterValueByName will.

Finally FamilyType.Family return 303 and Family returns 616.

I know the end numbers are effected by how I first collected the elements but its a big difference at the end.

What is Element Types set to FamilyInstance collecting?
What is Element Types set to Family Symbol collecting?
What is Element Types set to Family Collecting?

Families.dyn (26.4 KB)

Thanks for your help,


Have you thought about how some of the nodes work? This is because if you get all family symbols in the project this will give you all family symbols for all categories in that revit file.

Where as you are trying to match the numbers of symbols for the family types of just mullions/curtain panel, which will have duplicate family types against all family symbols in the project.

EG if you have placed 500 mullions of one family type then you get them all and ask what family they are, you will get it say their are 500 family types but actually it is same family duplicated.

This should help you under stand why your numbers wont match, and will not do till you do some filtering of the data.

Though it has been two years, I still decide to share my understandings, might help others who find this post.
There are 4 kinds of elements.
First one is family instance, such as sofa, sink, table. All family instance have full “category-family-type” hierarchy.
Second one includes some selectable-in-Revit elements, such as walls, floors, mullions, dimensions. These elements only have an incomplete hierarchy of “category-type”.
Third one includes abstract elements, such as family, element type. These elements have neither category nor type.
Fourth one is hard to describe. It includes tags, but also could be family-instance-format things like bricks, elevation mark pointers, handrails…(I haven’t get the reason why these are not the first kind, any help?). These elements have full “category-family-type” hierarchy but are not family instances.

Now for your questions:
Element Types set to FamilyInstance is collecting all family instance in the project, only the first one from above.
Element Types set to Family Symbol is collecting all types in the project. including first, second and fourth one from above.
Element Types set to Family is collecting all families in the project, including first and fourth one from above.

For your pictures:
The difference between ID result and family instance result are second, third and fourth kind of elements.
The difference between mullion&panel free family instance result and family symbol result are second and fourth kind of elements, mullion and curtain panels.
The difference between mullion&panel free family instance result and family result are the fourth kind of elements, mullion and curtain panels.



Thanks Xiaohan,

That actually does help. Thanks for taking the time to enplane everything.

The discrepancy comes from FamilyInstance (Containing 1 of 4) not containing all elements in the project. Family Symbol (Containing 3 of 4) has FamilyInstances under its umbrella and more.

I would have thought it’ed be more straightforward but I guess it is what it is.

Thanks for your time,

I know this is an old thread but I’m just recording some tutorials for our staff and just thought I’d give my tuppence worth for anyone else coming across this thread…

Family: Returns all Families in the project. I’m not 100% clear how this relates to the actual families in Revit though but you can then pull the required family types using the Family.Types node…but you will get the same result if you elements Family Symbol.

Family Symbol: Returns all Family Types (placed or not) - use this to access type Parameters for all family types.

Family Instance: All instances of families placed in the model (use this to access Instance Parameters)

I know it is a very old post. But I have similar issue selecting certain family types.

Could anyone can help me with my issue posing here : How to retrieve revi’s default families