Tuesday, April 7, 2015

How to keep north arrow symbol aligned with project true north in Revit using DynamoBIM

If you have rotated True North in Revit and you want your North Arrow Symbol to always point to True North when displaying PROJECT NORTH in your plan view then use DynamoBIM!
The True North angle is stored in the project base point....simply access it and set it to the angle on the north arrow symbol. Its easy!

Follow the steps below 
1. create  a north arrow family that has an angle parameter called "Angle to True North"
2. Place the north arrow family on a plan view that has the Project North orientation displayed
3. Turn on the Project Base Point on the plan view
2. open DynamoBIM and place the following nodes shown in the image below
This is a "simple" method to get one north arrow to align with one plan view.
If you wanted to perform this on multiple sheets then you would have to select the north arrows by family type not by "select model element" and same is true for the project basepoint.
If you dont like the method above then you could always rotate the north arrow manually.
Good luck!


Anonymous said...

Marcello, I like it. It reminds me of the Parameter Linker: https://www.youtube.com/watch?v=WhCrUYw3o_U

Thanks for sharing.
-David Rushforth

Danny Jones said...

Marcello, in the clockwork package they have a Document.ProjectPosition node that will report the angle without having to select the PBP. The hang up I'm having is that it's using python and wont continually update the rotation values, it only pulls it on the initial script load. Any thoughts? djones@clarkpatterson.com appreciate the help!

Marcello Sgambelluri said...

Contact andreas he is the author of the clockwork package

Unknown said...

Thank you, Marcello, for your work.
I have a question concerning this code. I created a North Arrow with Rotation parameter and Visible parameter, that gives me the possibility to shut it down on plans where's not needed. Then I placed my arrow in title blocks because that's the place I need my NA. Will your code manage it globally or only on each sheet separately? As I understand you have to mark it on each sheet. Is there any way to do it globally?