Place Family - Face based vs. Host based

Hello Dynamo Friends :slight_smile:

I have some trouble placing families.

I place face based families, this works perfect, I use faces, points and directions. I can control everything so there are no troubles:

Method:

place = doc.Create.NewFamilyInstance(face,point,vector,family)

But now i want to place a family that is not face based:

place = doc.Create.NewFamilyInstance(point,family,wall,level,Structure.StructuralType.NonStructural)

image

OneLevelBasedHosted - The family is placed referencing a single level and host.

And there are the following problems:

  1. The family is sometimes placed correct, sometimes into the wrong “direction”

  1. The family is sometimes even placed on the wrong side of the wall:

  1. The family is placed at a wrong hight, have to set the offset to -95cm to get it right.

so we are talking about a family thats making this wall “opening”:

Any advice?

If this is a hosted family, try family instance by host point and level from springs package. Works well for doors and windows in my experience.

1 Like

Thanks Gavin, I´m going to try that.

Problem 3 is solved, that was an additional offeset parameter.

What is really confusing me, placing that family manually in revit gives always the same result, the famiy is placed on the back side of the wall, depending on my view direction…

Edit:

Springs node uses the exact same method as I do:

doc.Create.NewFamilyInstance(p,ftype[j],host[k],level,strt)

So i think wall based families are there to make openings through the whole wall, like doors and windows. My family makes a hole with 15cm depth. I think it is just not possible to use a wall based family for this purpose. I need a face based family?! Right?

After a little more testing in Revit, these wall based families definitely have a placing side.
I have a family that places always on the front and one that places always on the back (regarding the view direction).

So the key seems to be the view direction, but how can i bring that in to my python placing method.

UP

So anyone has an idea how i can define the placing side where the host based family will be placed?