Revit Curtain Wall Mullions not importing into Rhino

I exported some Revit model geometry. It includes the curtainwall and its mullions.

When I go to the stream in the web, I see the 3d mullions showing up:

But when i import that stream into Rhino, the mullions don’t come in (those black lines you are seeing is the glass cw panel edges):

Hi @RJCoolpix880, Nice catch!

As for why this is happening,
I notice in our Revit converter, Mullions are added to the elements property, where panels are added to the displayMesh property.

I’m guessing that, for walls, our Rhino converter only takes the displayMesh.

I’m currently working on a PR that would allow displayValue (the replacement for displayMesh) to contain multiple meshes. One solution might be to add both mullions and panels to the displayValue of walls.

Another would be to add an explicit Wall converter to Rhino that uses both the elements and the displayMesh property.

A question open to anyone, Is there a reason why we might want to keep wall panels and mullions separate in the Wall class?
I’m not really an expert on how people are using Walls from Revit, so there may be a reason to not have them all in the same list of meshes

I’d be curious about what @teocomi and @clrkng think.

This would probably be the most straightforward fix, I don’t think we should change the conversion routine in Rhino (plus the above would fix this issue for all other connectors that rely on DisplayMesh on the parent object)

1 Like

Not sure if this is what you are asking, but from a users perspective if I import Revit geometry into Rhino (or any CAD program) ideally Walls, Curtain panels, and Mullions would all be on their own separate layers. This is because its how Revit classifies it, its also how nearly everyone I know categories them in RHino/Shetchup. So would be a nice quality of life improvement.

Daylight modeling use case: Everything that is a wall and a mullion - I would assign to be shading in the modeling program. Anything that is glass i would run a grasshopper script to remove the thickness of the glass so that its just one single plane and then assign glazing properties to it. Having them on separate layers would drastically speed up this process and could be automated using grasshopper to pull in entire layers instead of specific objects or selections.

General Rhino Workflow use case: if I’m doing a quick study of something, i generally will turn off all the glass to speed up working and its also generally accurate in how the project will look without assigning materials or worrying about how they will display in rhino. So if all the CW panels are on a layer it would be nice to have that option.

Rhino visualization use case: I could assign glass to that entire layer and then manually change the panels that are not glass. I also could assign a material to all the mullions globally as well.

Side note on how I use wall:
When I bring Speckle model into Rhino, the first thing I do is run
‘MergeAllCoplanarFaces’ command on everything to clean up the geometry to make it cleaner looking.

Ideally they would already be nurbs - but i dont run the ‘MeshToNURB’ command on everything because its too slow. ill just do that on objects as needed.

1 Like

Hi @RJCoolpix880,
Thank you for your patience.
I have created an issue for mullions not being converted in rhino
We’ll keep you updated on a solution.


Just closed this issue so mullions and any other children elements (for revit families like walls, floors, and roofs) should now be received correctly as meshes in Rhino! This will be available in our next beta release.

Currently, all children elements (like mullions) will be sorted into their own elements::displayMesh sublayer within the parent family category. This is what a basic curtain wall with mullions would look like, where the panels are in Walls::displayMesh and the mullions are in Walls::displayMesh::elements:displayMesh:

Let us know if this generally works for your process!