Meshes from Blender to Revit

I’ve been making some low poly rocks that I can kind of semi-randomly adjust the shape of so that they look more natural for a landscape client, but I am strugglign bringing these meshes into Revit with the connector.

Most methods seem to fail, and I can never get to a point that I have anything I can do even simple operations on in Revit, such as adding a material.

1 Like

Do you have a sample stream you can share?

1 Like

Yes, is this link below adequate or do I need to do anything?

https://speckle.xyz/streams/2d5a3b5750/commits/1e1b44c1a8

1 Like

If you’re interested in assigning materials to received geometry, then i suggest you receive them in family environment. Hopefully they should come as freeform elements.
When you receive it in project environment, it will be received as Direct shapes. Which means, you can’t assign/edit materials. This is a limitation of Revit API. And not all materials from Blender will be visible in Revit, again, a limitation of how Revit handles mesh geometry.
Also, with a really simple dynamo script, you can achieve what you want. I am afk atm but I’ll share a sample script tomorrow morning.

2 Likes

I believe I have tried this, and had errors at the Revit end.

With the default setting pulling the rock into a family I get this error.

I’m wondering if I need to do something more at the blender before I send the rock.

I also get the same result if I set the mesh import method to DXF or to Family DXF inside a family.

The only successful imports I get are into a project using mesh import set to DXF or Family DXF. Then if I explode the result it disappears. The result also appears to be using feet as a unit.

I’m using an up to date Revit 2021.

1 Like

Oh ok, receiving in family environment fails because of us. That’s a known regression and we’ll solve that issue in the next releases (hopefully :crossed_fingers:). In the meantime you can use Dynamo. You can achieve what you want with a simple definition. Something like this​:point_down::
MeshDirectShape.dyn (15.3 KB)

2 Likes

That is really useful thank you. Does this bring the rock mesh into a family or a project? I’ll try it with families.

And thank you for the news about the next release. I think this is a really positive workflow, because its so unreliable and mixed what you can achieve through more conventional means.

2 Likes

This works for me. So I think this means that my rocks, which in this version of things is a direct mesh inside a family. Is looking as it should and I can apply a material, but it would appear that I have to do this with dynamo, because I can’t see what material is applied (no visible attribute), other than by the appearance.

Looking forward to see how this develops.

1 Like

Yes, exactly. That’s how DirectShapes are handled in Revit. You can try to convert that mesh into a Solid and add it as a FreeForm element into the Family environment. But this means you need to recreate the geometry from scratch. And Dynamo’s way of working with solids is not so reliable. Take a look at the following thread if you are interested in that.

Next releases, not the coming release😀.

1 Like

Thank you again. There is definitely more to explore here, but for now I have something that works.

While hands-off imports are good with many of the applications of this type of data transfer using dynamo to define more precisiely what one wants to do with what may be a beneficial route of exploration.

I wonder whether it would be worth thinking about what speckle could do to serve filtered data from meshes and perhaps offer information on the type of mesh. For example with my rocks the meshes are always closed/solid (apologies if that is the wrong terminology), but the sort of meshes that I think a few of us in the community are working with to create floors or topographic surfaces are effectively a surface, with points and a linestring around the perimeter, and interior points, but the mesh is not closed.

Being able to pull the perimeter, or all the points on the surface could be really valuable.

1 Like

Starts sounding like BReps

You can still do it. But you need to process received geometry in Dynamo. I’ve converted a Blender mesh into a Dynamo topography in the past. Take a look at this thread👇:

You can do the same for floors. You need to get the external boundary of the floor and use that to generate native Revit floors. Or you can do what you did with rocks, receive them as DirectShapes categorized as Floors.

1 Like

Most of my experience is working with topography (toposurfaces) this way, but I am transitioning to working with floors for survey topography, or landscape design. The main issue is that my clients want programmatically created objects that behave like native Revit objects as a starting point, that they then adjust themselves as the design develops.

The post in the other thread on civil 3D contains dozens of floors all programmatically placed with Dynamo from points that are extracted from 3D meshs created in an engineering survey package (not 3D Civils).

Ha yes. Meshes - its complicated!

1 Like

Yeah, i feel you. Feel free to ping us if you get stuck in any step.

1 Like