Search filters
Search in title
Search in content
Exact matches only
Filter by Categories
Select all
Academy
AI
Automation
Blog
BPMN
Classification and Standardisation
Common Data Environment (CDE)
Dictionary
Digital Twin
Electrical
Fire
How To
Level of
Management
Organization of information
Procurement
Requirements
Standards
State
Sustainability
Uncategorized

How To
guidance

Most of the workflows which comprise repetitive tasks can be optimised by the application of workflow management systems.

Read more…

How to Rotate Revit Face-Based Families in Any Direction with Tiltable Geometry Placeholders

Discover how to create tiltable geometry placeholders for face-based families in Revit, enabling full 3D rotation in any direction.

This is a family agnostic tool- that works with all face-based families

Rotation axis parameters

Axis angles used are based on Euler Angle names adapted to match Revit environment.

Rotations in Three-Dimensions

Yaw (rotation)

A yaw rotation is a movement around the yaw axis of a rigid body that changes the direction it is pointing, to the left or right of its direction of motion.

Location of Revit Templates:

PD_GENc_Rotation_Y

To rotate a family in three different planes (X, Y, and Z), you need to control each rotation action separately. To do this, you must nest each rotation parameter within the next family, creating at least three levels of nesting. Each level has a host 3D object that is responsible for driving/enabling the rotation. To make this work, each family must be face-based. By using a face-based family as a host and rotating it, your object will move along with it, as it is attached to its face.

💡
We used three levels of nesting,

Create a generic model (face-based) named PD_GENc_Rotation_Y

create PD_DIM_Rotate_Y (shared) instance type parameters:

Discipline: Common | Type: Angle | Group parameter under: Dimensions

In Elevations/Front, create a reference line and lock one end to both X & Y reference lines – lock the end point of the line

In Elevations/Front, create a Sweep and Pick Path – the newly created reference line. Once Path is picked, accept the selection by clicking the green tick.

Then still in Modify | Sweep select Load Profile

Navigate to the profile file of your choice – I am using the PD_Profile_PDio10mm.rfa

PD_Profile_PDio10mm

now select the reference line used as a profile and add the Angular dimension

💡
it may be easier to temporarily hide the Sweep so you can see the reference line better

Now associate the new dimension with PD_DIM_Rotate_Y parameter

 

That’s all you created the first nested family needed to create the rotation base, save it but do not close just yet

PD_GENc_Rotation_YZ

Create a new generic model (face-based) named PD_GENc_Rotation_YZ

create PD_DIM_Rotate_Y and PD_DIM_Rotate_Z (shared) instance type parameters:

Discipline: Common | Type: Angle | Group parameter under: Dimensions

add rotation parameters Y & Z
💡
Now go back you your previously selected family PD_GENc_Rotation_Y and load it to PD_GENc_Rotation_YZ

Once loaded go to Ref.Level Floor Plan, and manually rotate it so its easier to add dimension

add the Angular dimension and associate the new dimension with PD_DIM_Rotate_Z parameter

Rotation Z axis

Now select the nested family and associate PD_DIM_Rotate_Y parameters with the PD_DIM_Rotate_Z parameters

That’s all you create the second nested family needed to create the rotation base; save it but do not close it just yet

 

PD_GENc_Rotation_XYZ

Create a new generic model (face-based) named PD_GENc_Rotation_XYZ

💡
Now go back you your previously selected family PD_GENc_Rotation_YZ and load it to PD_GENc_Rotation_XYZ

 

create PD_DIM_Rotate_X PD_DIM_Rotate_Y and PD_DIM_Rotate_Z (shared) instance type parameters:

Discipline: Common | Type: Angle | Group parameter under: Dimensions

 

Here you need to create a void sweep object. This will become host to your PD_DIM_Rotate_YZ, and it will allow you to rotate the void third X direction.

💡
It will be easier if you temporarily hide the nested PD_GENc_Rotation_YZ

 

Repeat the steps from PD_GENc_Rotation_Y and create the sweep, but this time it is going to be Sweep Void

First, go to the left elevation and create a Reference line.

 

Now go to Create > Void Forms > Void Sweep > Pick Path > Pick 3D Edges > Pick your reference line

create void sweep

Now associate the end of the reference plane with X and Y reference lines; best to hide Ref. Level and the Void Sweep so it’s easier to select

 

In the left elevation, add the angled dimension and assign to PD_GENc_Rotation_X.

 

The sweep is used to control the X angle of the PD_GENc_Rotation_YZ, which is hosted on the void face.

 

Now, unhide all, select your PD_GENc_Rotation_YZ family and Pick New Host; best to do this in 3D; select the TOP Face of the void

 
PD_Tiltable Family Host

Now select the nested family and associate the parameters

💡
Note: the X parameter PD_GENc_Rotation_X is going to be associated at the next level when the PD_GENc_Rotation_XYZ family is loaded to your target family to be used as rotating host.

 

Last step, Now change the family type to Site, this way you can ensure its hidden and does not mix with any other family types

This is it, you created a geometry placeholder which you can load to a non-hosted model and then use it to host other face based families to rotate them any direction.

Leave a Reply

share this page