Translate relative to local family

Hey everyone,

There must be an easier way to do this.

Generally I am trying to create new families relative to existing families. The offset is always the same in the local coordinate system, (x / y relative to the family’s origin) - but the family can have any facing direction.

Currently, I have the X and Y offsets, and create x = Xcos( r )+Ysin( r ), y = -Xsin( r )+Ycos( r ) and add these to the x & y points of the base family, where r comes from the angle between facing orientation of the family and X axis vector. I then rotate if necessary.

This works, but is really unwieldily and takes a load of blocks and small python snippets. As this is a pretty basic geometry exercise, I figure there must be an easier way.

Any ideas?

You can use FamilyInstance.FacingOrientation out of the box to get the family orientation as a vector. Wombat also has a great node, FamilyInstance.Orientation, that will get you the location, rotation, and plane.