Place and Set Family with Excel

Hi Everyone,

I hope somebody can help me with this!
I am placing families in revit at certain coordinates from an excel sheet with a dynamo script. But I do not want them to be the same family type all the time. I have made an column in my excel sheet listing what Family Type I want, but do not know how I let my family know which type it should be

Example I have an adaptive Family with an adaptive point which will be filled with coordinates with an excel sheet:
Family Name: Example_Family
Family Types: Example_Family_A; Example_Family_B

Excel Sheet lists:
X-Kord. | Y-Kord- | Z-Kord | Type
12 | 10 | 1 | A
15 | 1 | 1 | B
16 | 17 | 1 | A

My Dynamo places the Example_Family at each Point, but I want point 1 and 3 to be Family Type A and point 2 be Family Type B.

Do I need to set the type bevor putting it to the “AdaptiveComponent.ByPoints” node, or try to change the type after by adding nodes?

i have tried to create a list and connect it to the familyType… it ended up creating both types at every coordinate and not the one I wanted!

Maybe somebody knows an answer.
Thank you in advance for possibly taking the time!

From the image i would state that you are only giving him one familytype, so his only option is the place this one at all three points. Give him 3 familytypes and he will place each one at one point.

@hannah.salzgeber_stu you need to input 2 family types to the AdaptiveComponent.ByPoints with some lists leveling, it should work.


in this direction ?



This is what I figured, my problem is how i can list Family Types is a specific order.

In Excel I would create a IF function =if(D3:D11=“A”;“Type A”; “Type B”) don’t quite know how to get there with dynamo yet

This is a great solution if you know in advance which point will have which family type.
My problem is though there going to be over 1000 points to set families so i wanna be able to read the type from the excel and input.

I just don’t know how i can create a list listing my types and not just A and B.

you can always go Family.ByName and then using Family.Types. Then you just need to create Boolean filter by using Type name and names from Excel.

When you have list of elements you need to set your leves on AdaptiveComponent.ByPoints.

Since your points should be list of lists and your family types will be list of elements you need to use Level 3 on points and Level 2 on elements.
Your result will be first Type on first set of points, second Type on second set of points, etc…


@hannah.salzgeber_stu if you are working with 2 types of families, you need 2 lists of points, even if you have 1000 adaptive components to create, so on and so forth, so sorting your family by order should not be a big issue, while sorting your points based on which list of points should receive which type of family is really up to your intent, if you are having trouble there, try to share more information with the community;
Regarding how to create adaptive components based on more than one family type, this should be done associatively, meaning all of your family types should be there, alongside all of your list(s) of points, and Dynamo will do it in one shot, hope it makes sense:


This was a very good suggestion and i have tried it!
It works to an extend!

I have also tried @Elie.Trad suggestion with the normalize depth but not really getting result I need!

I wanted to share my dynamo skript and excel file but the site does not allow me to do so,so i made screenshots of them.

I simplified my Family to an adaptive Family with 2 points. Family A is a Zylinder Family B is a Box basically.

My current dynamo script:

i left out the import excel path, it is the same as a previous picture i posted, to make the other nodes visible and am showing the output of the lists before the adapitvecomponent.bypoint node.

I wanted to share my excel file here but lets me only use one picture

And right now my outcome is:
So it places 2 types now - Awesome.
But at each point it places both, and both several times ^^
I have tried to flatten, chop, … either the points (where i end up with only one family at the first point) or the family type (where I end up with 1 family type) so no success.

Maybe somebody knows how to solve this.

@hannah.salzgeber_stu if you only have 2 types of families to be placed, you should have only 2 unique family types as an input to the AdaptiveComponent.ByPoints node, not 18 duplicates.


I found a workaround if somebody is interested!
I am basically placing my family with 1 type, then just change the family instances after with the list i created of the desired arrangement of family types

1 Family beetween my coordinates with the desired type!

Thank you to everyone who has taken the time to help!!! I really apprechiate it!!

Have fun modelling!
Cheers Hannah

1 Like