Create Revit Floors from Rhino Meshes

Dear Speckle Team,

would it be possible to create Revit floors from Rhino meshes as well? Currently we can only use surfaces as input:

1 Like

Hi Marius,
We are using outline of the surface as the boundary of the floor element in Revit. Getting outlines from a mesh is not as straightforward as a brep geometry (correct me if im wrong @clrkng ). We will need to consider mesh to bim in more detail. Therefore, there may not be a quick solution here.

But you can do it through Grasshopper if you want.

Thanks @gokermu. To retrieve mesh boundaries in Rhinocommon you could get all naked edges:

1 Like

Another request: it seems that only planar surfaces can be converted to Revit floors. Would it be possible to allow for non-planar input as well?

1 Like

Do non-planar floors exist in Revit? The Revit API has always (to my memory) created horizontal floors (which you could then slope)

Is your expectation that a non-planar surface (or mesh) would create multiple sloped floors with multiple split lines and slopes?

1 Like

Hey @mariuszhermansdorfer ,

Yeah, we don’t support it atm. Its gonna be a bit tricky tho as mentioned by @jonathon, Revit doesn’t do it by default so we have to edit the shape of the created floor element. I believe we’ll do it eventually Its just a matter of resources :wink:. You can create an issue on Github if you want so we don’t forget it :sweat_smile:.

I guess this could be one way of approaching this:

  1. Take a Rhino mesh
  2. Convert it to Topo
  3. Convert Topo to a Floor object

Thanks @mariuszhermansdorfer. This will make the development easier hopefull :slight_smile: I’ll let you know once we implement it.


Sorry to pitch in late to this conversation. I’ve been doing something like this, but not like this quite successfully with Revit and dynamo to create floors that aren’t flat for a landscape client who wanted a 2D DWG with levels made into landscape model built out of floors.

I have take a slightly different route to using a mesh. I have created meshes in a survey package I use and then elevated and created areas of mesh for different materials. This is then exported as 3D coordinate points which I first used to draw the perimeter of the meshes, and then used to the heights to elevate the points.

I was able to create lot of these floors, some with hundreds of points composing them, really quite quickly.

I used speckle to pipe the points into dynamo, which worked nicely because if you use the csv tools everything is a string whereas speckle supplies data at numbers or text depending on what is in a column.

My starting point was to try to use the meshes directly, but as pointed out the challenge was to identify the edge as a line string. I think I will probably try to do some experiments with the mesh tools and obj files. That might work for you.

1 Like