Replace Family by another Family

Hey guys,

I’m searching for a method to replace familyinstances (of the same category). I don’t want to change the type! I want to change the whole family using dynamo.

I’ve tried to get the points of the existing instances and place the new instances by this information. But I’m not able to get the reference plane or face for placing the new instances correctly.

Any better ideas around here?

Thanks in advance,


Was there a reason that you weren’t using familyinstance.bypoint?

If you are needing to place a face based family, perhaps this topic is of interest…

Hope that helps,


1 Like

Which kind of host has it? If it is hosted in a wall, you can’t input a face (I have just tried it)

Is it completely impossible in Dynamo to replace a family with another one???

Thanks for your reply!

If I use familyinstance.bypoint, I can’t change the families host. So I can’t move it later (or set it to a refPlane).

Thanks for the hint of using familyInstance.byFacePoints. I’ll give it a try later.


In the most cases, the host should be a ceiling. The Family itself was created using the face-based template.


In that case you can try to use Element.Faces to get the face of the ceiling and feed FamilyInstance.ByFace with it

1 Like

Thanks for your help! I’ve tried it yesterday: If i delete the “first” family, the host of the “second” family changes to “not associated”. In case of moving the ceiling, the second family won’t move with it.

I’ve also tried to set the parameter “host” by the value of the first family (familyInstance.getHost). Unfortunately it is a read-only Parameter.

edit: I read your post again… If i use element.faces of the host (ceiling) of the first family, the elevation is set to “0” … I keep trying :slight_smile:

As long as the hosting is the same you just need to use SetParameterByName node to set the family. If you’re changing from say a point-and-place family to a face based family you will have to create a new instance with the appropriate hosting in mind.

1 Like

Thanks everyone!

I got it. I had to pick the “right” surface. I don’t know wheter thats the best solution but it works fine for me. See Picture below


Hi MrMinister,
Can I have your full image of this script? Cause I also do some stuff relate to your idea.
Thank you.

Hi Peter,

I couldn’t find the script for now. But imho there is nothing important missing.

Input of the FamilyInstance.GetHost node is the list of the “old” instances.
Input of the FamilyInstance.ByFace node is the list of the “new” instances.