Having trouble getting Grasshopper's Solid Difference to work in some cases

I’m having some trouble getting Solid Difference to work, it works in areas of the brep and doesn’t on other areas
image
in the image above, i have the main complex brep that i’m trying to subtract 4 smaller breps from, for some reason it works on the lower area, but not the top.
(the red breps are the ones that are not being subtracted)
image
all the small lofted breps are capped
and i also tried connecting them as 4 separate solid differences in sequence to the same result

the big brep is composed of 2 breps; a base and a tower, each were created through complex processes of rotating, scaling, tweening and union.

thanks.

If you bake the elements that you are trying to Boolean, and then try to do the Boolean in Rhino, does it work? If it doesn’t, the problem then is the core Rhino geometry engine. We find many situations in breps where definitions stop working because of this limitation. Mostly fillets and booleans, sometimes even trims.

You can see if you can move the difficult areas away from the intersections of the different breps. I know this si not a good solution if you have to change the design to make it work with the current way Booleans work, but it might be an acceptable workaround sometimes.

thank you for the quick reply
I just tried baking the elements, and doing Boolean in rhino and it failed.
so there no way to fix this, except changing the design ?
or is there any plug-ins that can do more complex Boolean operations ?
thanks for your help

Maybe you can intersect the shapes, extend the curves on surface and use these curves to split the geometry and stitch the pieces back together to form a solid

You can try to fix the intersections by seeing where they fail once you are happy with your design, like Gijs says.

But of you are still exploring and you just want to see a boolean result (without all the cleanup work) you can try to see if MeshBoolean or even Voxel boolean (using the Dendro Plugin) works.

Mesh Boolean approach:

Voxel Boolean approach:

boolean_mesh_and_voxel_workarounds_gf_190323.gh (69.5 KB)