Rhino.Inside.Revit Project North True North

Hello

I can’t find another thread on this topic, which surprised me. If there is one that I missed, please let me know.

When working in Revit, the model is aligned to “true north” but then a Project North is established by rotation in relation to the Project Base point. This Project North allows the views of the architecture to be parallel and perpendicular to the view.

In Rhino, we have tended to model in “Project North”, ignoring “true north”, because it facilitates modeling.

However, now that we are combining these two workflows in Rhino.Inside.Revit, what is the best practice?

We certainly can’t model in Rhino rotated to true north. Should we rotate the Rhino model to true north and then use a Universal CPlane to model in a “Project North” orientation? This seems ideal because the Rhino and Revit models, it seems, need to have the same True North orientation for the geometry to translate properly.

I can see an alternative where the Rhino model orientation is Project North, not “true north”, and I use a grasshopper script to rotate the model in the process of porting it into Revit via Rhino.Inside. But this seems questionable.

What is the correct/intended workflow?

Thanks!

1 Like

Correct. Rhino is always going to 0,0 in the xyz, where Revit Elements can be oriented by different methods, particularly when working with linked documents. Translations can be done by Plane to Plane Transforms (Orient3D GH component). Similar to this earlier site orientation video below.

Here is a View that is oriented to Project north, casting the view to a plane you can see the change of direction compared to Rhino XYZ

1 Like

You can open a synchronized viewport by ctnl+Click the Open Viewport button

image

Note the plane orientation as well, to return geometry to Revit you would then Plane Plane transform to the Project north (geometry coming from Rhino will always be from the default 0,0,0)

Dear Japhy

Thanks very much for the detailed replies. I will followup on these ideas and the video.

However, in the meantime, could you help me understand a behavior I have identified in my testing?

I set up a rotated Project North in Revit, prior to connecting the Revit model with Rhino.Inside.
When I opened Rhino.Inside and sent geometry from Rhino to Revit as a direct shape, the incoming Rhino geometry was oriented in the Revit model to Project North, not to True North. This is the desired behavior, with no additional Orient3D grasshopper script required.

In other words, my Rhino model was modeled without regard for True North, which is our intended practice, and the Revit model was set up with a True North and a Project North, and when the Rhino model was sent into the Revit model, in fact the Rhino model was rotated in relation to True North. This means that in Project North plans in Revit the Rhino geometry is shown in the same orientation it had in Rhino.

This is the desired behavior, but I want to be sure I understand why it is happening, and how I can be sure it will always happen. Can I depend on this? Do you know why Rhino.Inside is making the choice to orient the sent geometry to Project North not True North?

Additionally, I tested an alternative sequence, where I sent the Rhino geometry to Revit, and only then rotated Project North. In this case, the Rhino geometry remained oriented to the True North coordinate system, which is a different behavior than the one I have documented above.

Thank you very much for your time.

Brian

I can go deeper into this tomorrow, but Direct Shapes will always come into their Rhino 0,0,0 location in relation to Revit’s internal origin - Revit 0,0,0. Direct Shape Types can be placed to a location.

Thank you Japhy. I will wait for your deeper explanation. Meanwhile, I’ll study these materials.

Rhino to Revit is always a going to be from the Rhino origin to the Revit Internal Origin, unless you transform it. If that’s not what you are seeing please post a small example. Thanks.

I’m not fully sure I understand your problem. Revit has several coordinate systems but the model has only one origin and one Y vector. I would always assure that Rhino and Revit are using the same origin point (on the site) and that the Y axis is pointing to Grid North (i.e. Revit true north, which is actually not true “true north”) Once this is set up, in Rhino you can set as many CPlanes as you like to match the articulation of your project and assign the CPlanes to Orthogonal named views to align your viewports.

Hi @Japhy

Why does your Project Location component, in screenshot above, have an Internal Origin output, while mine does not? Mine is missing some other ports too…

image

Thanks so much

Brian

Hi @brianorser,

Rhino.Inside Revit use Grasshopper Zoom-able UI on components.
We use it to allow to remove those inputs or outputs that that are not used by the user.
This improve performance, because removed outputs are not computed, and also makes components as small as possible on canvas, to keep the Grasshopper workflow as readable as possible.


Grasshopper INTERFACE | learn visual programming

Hi @kike

Thank you for your reply. This was an oversight on my part.

Best

Brian

Hi Japhy and Kike,

Is there a RiR component available to display the angle of True North in relation to the model’s world coordinates? Among the three most fundamental points in Revit—Internal Origin, Project Base Point, and Survey Point—the Survey Point is the sole point that can undergo rotation. It is more of a plane than a fixed point. Having convenient access to information about this point (or plane) in Grasshopper would be very beneficial for coordination of project models.

If i understand things correctly, the shared site rotation will give you the true north & cast to a plane

2 Likes

Yes, this is exactly what I was looking for. Sorry, Japhy, sometimes I forget that the data holder can influence the output in Grasshopper.

1 Like

There are a few hiddens gems if you right click on the output before connecting to anything.

You can cast to any of these components.

image

3 Likes

@brianorser
When you start a project in Revit, the Project North and True North are aligned and coincident with the Internal Origin Point (0,0,0 WCS xyz). If you start modeling and it’s orthogonal to this default, but then realize your True North for your site sheets needs to be rotated 5 degrees to the East, you would go to a Site Plan View, change orientation to True North, then rotate the project accordingly.
This keeps the Internal Origin in the same orthogonal orientation to you’re building as you started modeling it orthogonal to the Internal Origin.

If you were to rotate the Project North… it seems to do the same as Rotate True North, but what you are really doing is Rotating the project around the Internal Origin Point.

Do not confuse these two rotations with one another, they have a subtle difference, and it gets compounded when using Rhino Inside Revit…

Hi Japhy,
I am facing the same problem as Brian. I create the model in rhino first and put it into revit by direct shape. However when I set a project north in my revit file, the direct shape in revit floated away since the project north has been created.


What should i do in rhino and grasshopper so i can make the direct shape match with the revit file?
I have try the orient 3d in grasshopper. However it seems that it doesn’t do much of change the cplane or change the rhino view to true north or anything like that. I am so confused. Could you please help with this? Really appreciate that!
Screenshot 2024-08-13 000139

Its hard to tell exactly how this isn’t working for you.

A small example file would be helpful.

Its also helpful to know what version of Revit you are using as well as Rhino during any file exchanges. Thanks

(@Japhy, @Sijie_Xia)
When starting a model in Rhino and/or Revit (prior to rotating for True North) both Rhino and Revit are synchronized in orientation: The world XY is the same location as the INTERNAL Origin Point in Revit (not the Shared Coordinate point or the Project Base Point).
Modeling like this works and translates geometry into the same point in space from Rhino to Revit, and from Revit to Rhino.

Typically, in Revit, your Project North is orthogonal to a sheet, but your True North is rotated to a certain degree. This will give you an accurate representation of orientation in a site plan. If you turn on your Internal Origin point in Revit while in a True North Site Plan view, you’ll see that your Internal Origin Point remains orthogonal to the geometry but will show as rotated on the screen (it remains in a “Project North” orientation). This is necessary in Revit for documentation and shared sites.

In Rhino, if you have your model and site set up in a True North orientation (typical with importing Site or Civil CAD files as backgrounds in Rhino where the Y-axis is North) then there is a rotation that needs to occur around the World XY origin point to resolve your geometry back to the Project North direction in Revit…

This rotation will need to be a negative degree of your True North to Project North deviation (if Rhino is modeled in a True North orientation). This will rotate the Rhino geometry clockwise and should place it in the “Project North” location in Revit.