Union solids if they intersect

Hi,

Using the Solid.ByUnion node, I can join several solids into one. However, I would like to only union solids that intersect with each other. For example, if I have 2 solids that do not intersect with each other, I would like the node to return 2 solids rather than 1. Any thoughts on how to do this?

Many thanks.

Hey,

So there is a DoesIntersect node, but it doesn’t work with a single list, like your union node…

Someone must have made one?! I can’t find it…

So it’s a bit of a pain to remove the self intersections of running a single list through both inputs… I also couldn’t find a node which gives the index of an item, but I’m sure someone has one of those or there’s an easy design script way… Mind is blank!

image

Hope that’s useful,

Mark

Hi @Mark.Ackerley,

Thank you very much for your kind response.
With the script that you proposed, I managed to get the lists of geometry that intersect with the others and does not intersect with the others. Next, I need to figure out how to get the elements (where the geometry comes from).

Hey, no worries, maybe it’s almost the same graph?

Hi @Mark.Ackerley,

Thanks again. I am using “Element.IntersectsSolid” node from BimorphNodes to get the elements where the geometry comes from. My script is shown below:

Hey, do you mind putting some more notes on to help me understand what you’re after? I’ve got a bit lost, sorry!

Hi @Mark.Ackerley,

You suggested an additional “List.FilterByBoolMask” node to get the elements where the geometry comes from, while I am using “Element.IntersectsSolid” node from BimorphNodes to get the same elements. Obviously, your way is much simpler. Thank you! :slight_smile:

1 Like