Best way to intersect solids with a mesh

Hi everyone,
I need to intersect multiple Dynamo Solids with an imported mesh from a Revit Topography to calculate the excavation volume. I faced some difficulties here. The mesh Toolkit is not working with my mesh, converting the mesh to a Dynamo mesh by using the Vertices and FaceIndices also didn’t work. Has anyone an idea how to do this?
I’m using Revit 2016/Dynamo 1.0.0/MeshToolkit 1.0.0. I can update any of this if this solves the problem.
Thanks, Fabian

You could convert the mesh to a polysurface and try to intersect
This might help …

1 Like

Thanks @Vikram_Subbaiah. Now I have converted the mesh into a Solid.ByJoinedSurfaces(). When I now want to intersect my generated solids with the terrain solid, Geometry.IntersectAll results in an empty list´. I also tried Solid.DifferenceAll getting an error saying “cannot Difference two solids”.

@Fabian_Ritter You will need to provide some visual clues and/or files.

Isn’t the Revit method of doing that is with Topo, Pads, and Phases?

1 Like

@truevis: More or less, yes. But I need to create the second topo somehow. All I have is the imported mass of the terrain and my basements. I create the excavation volumes using a working space and the angle of embankment for the basements. I can then also import the new topo in Revit and use this method, but right now I cannot create the new surface.

@Vikram_Subbaiah: Here’s a screen shot.


If I use the Intersect method, it works, but IntersectAll isn’t working. I also tried filtering first, because some of my solids do not intersect the geometry.

btw: DoesIntersect returns around 250 times true :slight_smile:

Geometry.Intersect will also work with multiple geometry.
Try replacing Geometry.IntersectAll with it. Change Lacing, if necessary.

First didn’t work either. But update Dynamo to version 1.1.0 helped a lot. Thanks for the help.
Now the only problem left is that with intersect I get a lot of seperate solids. I have 5 groups of solids intersecting each other (you can also see it in the image) and I union them seperatly. For 4 groups everything works fine but for one of them I get the error message: “Warning:Solid.ByUnion failed. Unable union two Solids : INCONS_COIN – coincident intersection edge previously non-coincident”. Any idea why this happens?

@Fabian_Ritter You really need to provide files for us to look at.

First I load the foundation in the 5 groups (grey group), then I get the base plane of every foundation and create a excavation volume (green group). This results in 5 lists of all the volumes. Now I like to join the volumes to 5 solids (they are all overlaping) to get the 5 intersection volumes to calculate the mass (red group). But the Solid.ByUnion operation fails for one List of solids with the error message described above


As you can see, I have found a work around for this. Nevertheless I like to know the reason for the error to avoid it in future projects…

Its difficult to say why its failing since I dont have the files. Please feel free to email them to me
at monika.prabhu@autodesk.com. Alternatively if this was a case with large dimension you can test them in 1.2.3.xxxx builds on DynamoBIM.org as we have fixed ASM scaling issue(https://github.com/DynamoDS/Dynamo/pull/6991). Please retest and let us know.

Hello @Monik_Prabhu, I have sent you an email with the geometry and script. Thanks, Fabian