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.
You could convert the mesh to a polysurface and try to intersect
This might help …
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?
@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
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 firstname.lastname@example.org. 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