Sloped Revit Floor with Rhynamo

Hi all,
I’m pretty new with Dynamo and his interoperability with Rhino to create Revit objects.
I’m wondering if there is a way to get a sloped Revit floor from a Rhino model. I did a test using “floor by outline” but it doesn’t work with lines on different planes and i have this error: _" Warning: Floor.ByOutlineTypeAndLevel operation failed. Input normal vector is not perpendicular with the face constructed from input curves."
Any ideas how to solve it?

Thank you all!

Depends what you mean by “sloped floor”.

The ways that floors are created and can be modified in Revit limit the geometry you can create.

Some limitations are:

  • Floors are sketch-based, and the sketch must be planar, perpendicular to the Z-Axis (on a level). So, to create it from Dynamo, you’ll have to project the curves from the Rhino solid onto a plane and feed those into the sketch.
  • Within the sketch itself, the slope can be controlled two ways: a slope arrow (a single line that defines the elevations at the start and end of the line, and all the other floor geometry is “pushed” to align with those. This can only create a single-plane slope.
  • if there is not a slope arrow in the sketch, each line can individually define a constant height, and then how the floor slopes from there. (this is how roofs are created in Revit.) You can create a single floor with multiple planar faces this way, but the slopes are always perpendicular to the edge sketch lines.

So, if you can project the edges and calculate the slope(s) based on the geometry you get from Rhino, you can use the Floor.ByOutlineTypeAndLevel nodes (one accepts a polycurve, the other, a list of curves) to create the floor. Of course, the floor thickness itself is defined by the floor type, so if a type with the thickness you want does not exist, you’ll have to create that, too. (And sloped floor thickness are based on perpendicular, top-face-to-bottom-face thicknesses, so the “vertical” thickness will vary based on the slope)

The other way to define floor slope in Revit is using the shape editing tools. The first step is the same- you’d still have to project the outline to a plane. If you want to know more about how to handle the shape editing tools in Dynamo, there are plenty of posts in the forum. It will probably still require some math.

Of course, the easiest thing would be to just grab the geometry and plop it into Revit using an in-place family, but you can’t do that via the API, and therefore can’t do it in Dynamo.

Hope this helps.


Thank you Joe.
I think in my case I’ll do a flat geometry in Rhino and then control its slope with the Revit point.

Thank you again.