Issue with replacing floor-based families with face-based families

Hello all,

I am posting here because I need some help.

The firm I work at, we create a lot of as-built drawings/models. and we have decided to go from wall/ceiling/floor/etc. hosted families to face-based. We are now faced with the task of updating our models.

I thought I could use dynamo to quickly replace all of the floor-hosted families with the face-based ones, but it is proving difficult. I am able to pull all of the existing elements (floor-based) by their points (X,Y,Z) but when I go to place the new (face-based) families by points, it places them correctly by their X,Y but their Z axis always comes in at 0.

I have tried FamilyInstance.ByPoint and FamiliyInstance.ByCoordinates to no avail, and also Springs.HostedInstance.ByPoints. I’m guessing it is something to do with the family wanting to inserted at a vertical face, and when the floor isn’t vertical, it just disregards the Z-value and it comes in at (X,Y,0).

Has anyone had any issues with this or any solutions?

Thank you for reading this. Any help / ideas would be appreciated.

Thank you!



Can you manually place the family horizontally? If so check out the springs.hostedinstancebypoints node in the springs package.

Thanks for the suggestion JacobSmall.

I will try placing it horizontally; I think it defaults to be placed on a vertical face.

I tried the springs.hostedinstancebypoints node but it didn’t work. I am thinking maybe I have to go host by host or level by level.

Host by face - harder to get a face than an element in the api.

I figured it out; will post workflow soon. OOTB Dynamo Nodes.

By filtering the old family’s host, I was able to go host by host and replace them by using FamilyInstance.ByFace using a location and a reference direction perpendicular to the face.

Because it defaults to being placed on a vertical face, make sure the reference direction is parallel to the face you would like to place. It is essentially placing it parallel (the families vertical) to the floor.

1 Like

Workspace:

1 Like

I think this graph will also solve your issue. Composed in 1.34

1.34_Replace Floor Based Families with Face-Based Families.dyn (19.6 KB)

1 Like