Fast multiple solid intersections

Nice, glad to here you figured out a solution for it!

Where is the performance bottleneck now? The MInc component or elsewhere?

1 Like

Well… It is indeed slow… I would say the Mesh Intersect and Volume calculation… The full run time of my .gh file seems to be quite higher than what the profiler widgets per gh component indicate. A few ideas I’m planning on checking for performance:

A) Is the way I’m converting the objects to mesh the most efficient?


B) To Join Mesh or Not to Join Mesh? I added a gate filter to allow or disallow this option. This seems to be outputting different intersecting volumes, not of which is quite alright.


C) I use all this green block to build a matrix of combinations between pipes and compartments. This generates a tree which is the basis of all calculations and is tested for clashes prior to Mesh Intersect. However, since pipes (layer 5501-321-04 in the file attached) cross more than one compartment, calculations such as volume of pipes and meshing are being performed ā€œNcompartmentā€ times, unnecessarily I think.

Finally, with regards to current bottlenecks, I noticed discrepancies between the full pipe volume calculated in Rhino (9.02E9 m3 for layer 5501-321-04) and the final values when summed up by compartment (~7.26E9 m3). It seems there are a few negative volumes even though the original objects are not corrupted or open. All in all I’m missing about 20% of intersecting volume. Coming back to point B) above, this percentage also varies a bit if I activate/disable the merge mesh components option. This is my main concern at the moment.

Volume discrepancies.3dm (6.4 MB)
Volume Discrepancies.gh (40.8 KB)