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.
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.
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 ). 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)
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.
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.
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.
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.
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).