LEVLIN · FIELD NOTE

How to get Rhino and Grasshopper geometry into Revit as a Mass family, through 3ds Max

Published 15 September 2026

Rhino users have been asking the same question on the McNeel forum for years: how do I get this into Revit® as something I can build on? The direct routes answer with a bare DirectShape, and a bare DirectShape is where Wall by Face stops, where there is no family to dimension to, and where the next update deletes the element. There is a longer route that ends somewhere better: through 3ds Max®, into a Mass family.

What the direct routes leave you with

A Rhino user who had just pushed a mass into Revit through Rhino.Inside asked why “the wall by face command is not allowing me to select any surfaces”. The reply from McNeel: DirectShapes are not real Revit families and are not eligible for hosting. Another user gave up on the DirectShape route because it “wouldn’t let me pick walls by face”, built a family per mass by hand, and then had to “manually locate the family in the project by aligning it with something”. A third, sending Grasshopper meshes through a different connector, could not dimension them at all — Revit cannot dimension mesh geometry created through the API.

McNeel forum: Mass created by DirectShape not allowing Wall by Face

McNeel forum: How to simplify Brep to Revit Mass transfer

Speckle Community: Cannot dimension generic models brought into Revit

The pattern is the same every time. The geometry arrives; the Revit tools do not see it. Why a Mass family and not a DirectShape.

Getting Rhino geometry into 3ds Max

3ds Max does not open a 3DM file. It does not need to. Rhino exports the formats 3ds Max imports natively, and two of them cover almost every case:

Export from Rhino asArrives in 3ds Max asUse it for
FBX or OBJMesh objects, one per Rhino object, at the tolerance you chose on exportThe default. This is the object class Levlin Bridge reads directly
SAT or STEPBody Objects — exact BREP solids, which 3ds Max meshes for display. Collapse them to Editable Mesh or Editable Poly before pushingWhen the surfaces must be exact and you want to set the mesh density in 3ds Max rather than in Rhino
DWGMesh or spline objects depending on the import optionsMixed 2D and 3D content

McNeel: Rhino import and export file formats

Autodesk Help: SAT files in 3ds Max (Body Objects; sources include Rhino)

Grasshopper geometry is Rhino geometry once it is baked. Bake, name the objects, export. If a definition produces a hundred panels, bake them as a hundred objects — not one joined mesh — and each becomes its own element in Revit.

Then the same route as any 3ds Max scene

  1. Import into 3ds Max.
  2. Push from 3ds Max with Levlin Bridge.
  3. Pull in Revit.

Every 3ds Max object becomes its own Mass family in Revit, whether or not it sits in a group. Instances of the same object share one family type, one instance each. A model joined into a single object in Rhino returns as one element. Planar surfaces and curved primitives return as solid faces; freeform surfaces — the doubly curved, subdivided or sculpted ones Rhino is good at — return as a mesh residual inside the same Mass family, grounded by ten reference planes so they can still be dimensioned and tagged. How the solid-or-mesh decision is made.

What that means for a Rhino model in particular

Rhino is a NURBS modeller. On export to FBX or OBJ, every surface is meshed, and the export dialog asks how finely. That setting decides what Revit gets:

So the practical advice is: export planar and primitive geometry at any density, and export freeform geometry at the density you want to see in Revit sections, because that is the mesh Revit will keep.

What you get that the direct routes did not give

Through a DirectShapeThrough 3ds Max and Levlin Bridge
Wall by Face: no selectable surfacesWall by Face on any solid face
No family, no reference planes to dimension toDimension to solid faces, or to the reference planes on freeform parts
Manual alignment after placementLands at the correct position and scale
Update deletes and recreates; annotations lostPull again; the same ElementId is updated in place, annotations kept
One or many elements, by the tool’s choiceOne element per object, by yours

The honest boundary

What was measured is the 3ds Max side: mesh objects, groups, instances, render proxies and a SketchUp import, pulled into Revit 2026 from 3ds Max 2024. A Rhino export to FBX or OBJ produces the same object class in 3ds Max — an editable mesh — and that is why the route holds; we have not run a Rhino model through it as a separate case, and we say so. The basis of the route is a 3ds Max object collapsed to Editable Mesh or Editable Poly; Body Objects from SAT or STEP should be collapsed before pushing. If you run a Rhino model through it, we want to hear what came back — face counts, what stayed a mesh, what did not — at hi@levlin.net. What the architect can do with the result.

Frequently asked

Can 3ds Max open a Rhino 3DM file?

No. Export from Rhino as FBX or OBJ for mesh objects, or SAT or STEP for exact Body Objects. All of these are native 3ds Max import formats.

Why won’t Wall by Face work on the mass I sent from Rhino?

Because it arrived as a DirectShape, which Revit does not treat as a real family and does not allow hosting on. A Mass family with solid faces is what Wall by Face needs.

How should I bake Grasshopper geometry before export?

As separate objects, named. Each 3ds Max object becomes its own Mass family in Revit; a joined mesh returns as one element.

Does the mesh density I choose on export matter?

Not for planar or primitive surfaces, which return as solid faces at any density. For freeform surfaces it sets what the mesh residual looks like in Revit sections.

What happens to doubly curved Rhino surfaces?

They return as a mesh residual inside the Mass family, positioned exactly and grounded by ten reference planes, so they can be dimensioned and tagged but not hosted on.

Was a Rhino model measured through this route?

The 3ds Max side was measured on mesh objects, groups, instances, proxies and a SketchUp import. A Rhino FBX or OBJ export produces the same object class in 3ds Max — collapse to Editable Mesh or Editable Poly before pushing. We have not run a separate Rhino case yet; if you do, send what you got to hi@levlin.net.


Related field notes

Levlin Bridge

Levlin Bridge is a Windows plug-in that moves geometry between Autodesk Revit and Autodesk 3ds Max in both directions. Push the model from Revit, pull it into 3ds Max, and push the geometry you changed back into Revit as real elements. Only the difference ever moves, so materials, modifiers and UVW stay exactly where you left them. Any Revit 2022–2027 works with any 3ds Max 2024–2027.

Levlin Bridge is in final testing and is not released. There is nothing to download yet. Leave your email and you get the 30-day trial the day it ships.