Cull trimmed brep/surface fragments intersecting context geometry

I feel like the solution to this should be way easier than what I’m making it. Basically, I want to do what the trim solid command does, but I also want the geometry to split up, to keep all geometry except what’s inside or touching any other breps. Please see attached images of what I’m after. I’ve attached my definition which make use of of the ‘populate geometry’ component to achieve this, but this doesn’t work every time. I’ve also experimented using the ‘area’ component and taking the centroid as a collider, but this doesn’t work it every scenario again, as the centroid isn’t always inside the geometry.

For context, this script is part of a larger ladybug script, and needs to be able to work in a variety of situations with a multitude of different geometries. Is there a cleaner way to cull the intersecting surfaces without the use of a ‘random’ component? I’ve attached the cut out portion of this definition for reference, with different ‘sample’ situations (Analysis Geometries) which I’ve been using to debug. Analysis and context can also be swapped if necessary. Any help would be greatly appreciated.

NOTE: Please tell me if this is possible natively, if I don’t have to install any additional plugins that would be ideal as I am distributing this script to others.

Test Culling Intersecting Surface & (40.6 KB)

You said you have a problem with Trim Solidbut you use Split Brep Multiple instead in your definition.
And it appears to me that the result is exactly the same as what you desired…

Let me clarify. ‘Trim Solid produces’ the undesirable result (Picture B), and this definition is my best attempt at getting the behavior I want (Picture C) and would have expected from Trim Solid. My problem is that I’m using ‘Populate Geometry’, which is dependent on a random seed, which doesn’t work every time, hence the slider to shuffle through the seeds.

In other words, while it works in this situation (or situations), it may not in another. In the context of this definition, I need to find a way to generate a point inside each trimmed brep without touching any breps with 100% certainty (no ‘Populate Geometry’), or I need to find an alternate method to achieve my desired result.

I can’t generate the points on the edge of the breps, as it then conflicts with the ‘collision one|many’ component. I can’t use the centroid from the ‘Area’ component, as the center isn’t always inside the brep. I am trying to find a better solution than what I have come up with, because what I did feels very unprecise. I hope this makes it clear.

Maybe, this method produce more reliable results? Not quite sure…

Test Culling Intersecting Surface & (44.5 KB)