Rhino to Revit coordinates issue

This problem is happening specifically with the plugin by Proving Grounds called Conveyor, which leverages rhino.inside but is an additional plugin.
Although the problem is also somewhat with rhino.inside. (explanation incoming)

When I take an OBJ format mesh, and bring it into Rhino my coordinates are kept in tact. If I use rhino.inside “direct mesh” I can send this OBJ straight to Revit and it keeps the coordinates in tact inside of Revit, however the mesh is completely unusable (seems to be voxelised with large voxels)

So I tried this import to Revit using Conveyor and behold the mesh is beautiful - BUT - it seems at the point of creating the revit family, Conveyor drops the mesh into a family, which it then drops into the project using the family insertion point and placing it by default onto the Revit internal origin. It has kept the Z elevation, but X and Y are being removed through this process.

Part of the problem is that this happens right at the point of processing to Revit, so I can not (and actually dont need to anyway) manipulate the coordinates before it gets sent to revit (trust me I tried).

So now I thought, what if I use rhino.inside to get the resulting Conveyor family once its built, and send it to a known vector (I created a point on the mesh and used it as a target vector)

But when I try to do this, Rhino throws an exception at me

The total grasshopper script is pretty simple, but I cant for the life of me resolve this issue. I just need this OBJ to create in the right place…

In the revit image, you can see the Z elevation kept (its around 1600m) and the revit internal origin below it (its in a perspective view but its smack in the middle of the resulting geometry on X, Y) The geometry should arrive near the top of the image but coordinates are just being set to 0,0 at insertion.

Any help would be appreciated

1 Like

You are trying to move a Revit Element with the Rhino Move Geometry component. You will need use the Element Location component to move a Revit Elements location.

Hi Japhy,
thanks this (kind of) resolved my problem.
The operation worked BUT - because I have a “shared site” in Revit it causes a massive error in coordinates.

Rhino seems to take my Revit internal origin as 0,0. Technically the Revit internal origin is reading 0,0 which I can see by getting this base point and checking it with Rhino however actually its at the following coordinates (in the image).


Unfortunately Rhino then confounds these origins with its own origin (I guess) so rather than moving it to the coordinate, its just moving it that total distance of the vector rather than pushing it to a desired coordinate location…

Any idea how to deal with this?

So I answered my own question, but I thought I would post the solution for other users.

It seems that when a shared coordinate system is used, there is a mismatch between revit coordinates and Rhino coordinates because the act of acquiring the coordinates in Revit moves your Internal Origin point, which Rhino sees as 0,0.

If I extract the coordinates of the internal origin using Grasshopper, it shows me 0,0,0 however in reality it is 2667958.7586, 1159228.5800, 0

I had to use “Construct Point” using these X,Y,Z values (I just input them as numbers in grasshopper)
Once I had this point I could use a known point which I created using “point on mesh” in rhino.

Once I had these two points, I need to move from the revit coordinate only the resulting vector between my internal origin and the point on the mesh.

I used create “vector from 2 points” node and used my two created points to find the resulting vector.

This works perfectly…