Based in Portland, or brettshowersdesign is a portfolio blog that explores the design projects and bim/revit endevours of brett showers

Rotational Components that don't Suck

I might catch some flack for sharing this method from users that know way more about this than me because I'm using angular dimensions, but Revit is all about choices and I'm going to share one.  This method for handling rotational components in Revit and allows the use of angular dimensions to rotate components in families without breaking the rotation at 0 and 360 degrees.  BTW, there are some really great alternatives to this method out there, specifically one provided by therevitcomlex.  Truth be told, I had this working before reading his post, but he gave me the great idea for bulletproofing it. Problem Statement: Using angular dimensions for rotational components causes the angular dimension to "break" when the user wants to place the component at 0 or 360 degrees.

Solution:  Incorporate an angular correction factor so that the true angle of the rotation never falls at 0 or 360 degrees.

Step One: Start with the Generic Model Template (I always do, unless the family needs to be hosted).  Change the family category to whatever is appropriate for what you are building.

Step Two:  Create a reference line to host your correction factor angle from.  Draw the reference line from the intersection of the Front/Back and Left/Right reference planes provided in the generic model template, being sure that both reference planes are highlighted when you start.  Set the end point of the reference line in the quadrant adjacent and clockwise from the quadrant that you want to have as your base or start angle.  In the example below, 3 o'clock is 0 degrees.

Step Three:  Create another reference line to host your rotational geometry.   Draw the referene line from the intersection of the Front/Back and Right/Left reference planes, being sure that the end point of your correction factor reference line is highlighted when you start.  Set the end point of the reference line in the quadrant that is adjacent and counterclockwise from your correction factor reference line.

Step Three:  Add the angular dimensions that will rotate your reference lines.  The first will serve as your correction factor dimension and will be drawn from the Front/Back reference plane, or more specifically 3 o'clock in this case, to your correction factor reference line.  The second will be from your correction factor reference line to your geometry hosting reference line.

Step Four: Add the parameters that will drive your rotational component.  You will need to add three parameters: one for the user to input their desired angle, one for the correction factor angle, and one for the angle from the correction factor to the hosting reference line that will end up at the angle the user input.

Step Five:  Add logic!  In the first iteration of this method, I used a static correction factor angle, like 1.2345 degrees, which works just fine unless for some reason you're dealing with an eccentric manufacturer that might actually place a nozzle at 1.2345 degrees.  Now, as unlikely as that would be, it still bugged me that the solution had that vulnerability.  So after having read the method provided by therevitcomplex, it gave me an idea of how to bullet proof my solution, and guess what, it worked!  Back to to step three.  Add some logic statements to the parameters that you created in step four that will drive your correction factor line to always be 91 degrees less than your host line.  So, what if the host angle is at 91 degrees.  Add some logic to your logic.  If the host angle ends up being at 91 degrees, take one away in the correction factor and add it back in at the nozzle rotation angle.  But what if the angle is 451 (360 + 91)?  Hrmf, lets be reasonable.

And there you have it, the skeleton of a rotational component family.

Sustainable Problem Solving in Revit

Ideate Sticky and Client CAD Replication