Intersecting circles without duplication of surfaces

Im trying to filter out intersecting geometry into a list without duplicates.

When i create a list of intersecting geometry it makes ‘human readable’ sense but i cant manipulate the lists properly. I know that {0,0] is circle 0 intersecting itself and {0,1} is circle 0 intersecting circle 1 but the geometry created by [0,1] and {1,0} is the same - how can i remove duplicates?

Circle Intersection Trial2.dyn (5.4 KB)

Any suggestions gratefully received - is there a way to do this with geometry or should i be manipulating lists?

Do “flatten” and" unique elements" work?


You need to Repeat, then shift the list, and drop an item. If you notice the list coming out of List.DropItems the first list does not contain 1 the second list does not contain 2 and so on.

Hope it helps

The most appropriate solution kind of depends on what you’re looking to accomplish, I think? Do you just want no overlapping surfaces, only the intersecting bits (once), the intersections trimmed out of the originals, or something else?

@GregX sadly no, List.UniqueItems does not work for surfaces :confused: Geometry.IsAlmostEqualTo works reasonably well, though.

I tested it because I was curious and wondered if with some information, such as PerimeterCurves I could trick dynamo into using list.uniqueItems, but I had to end up doing this horrible script just for fun:

Oh man I’m kind of having fun now:

Please excuse me if this is ridiculous but it could help being more creative when facing an issue!


Thanks all - i would never have thought of some of that lot - there is plenty there for me to think about!

What i am actually trying to achieve is to create surfaces representing areas served by a thing at their center point. When an item is placed on an intersection surface it has a choice of which center point it is associated with.