How to split/cut objects in scene using a plane as reference?

I’m looking for any solution that I can use to split the objects of a scene based on a reference plane. I know there are a couple of ways to split objects (knife tool, bisect, ctrl + r in edit mode, boolean) but none really seems to work perfectly when you have a scene with a lot of objects.

When you look at the image my goal is to split all the red objects into two halfs using the yellow plane.

The best solution I’ve found so far is this:

  • create a plane
  • go into edit mode, extrude along Z with 0.000001
  • select all objects you want to cut
  • add a boolean modifier and select the plane, change threshold to 1e-13
  • ctrl + l > modifiers
  • apply the modifer on the active object
  • f3 > convert to > mesh …
  • f3 > separate > loose parts.

Sadly this doesn’t always work; sometimes the plane that I use as the boolean object gets triangulated and merged with some arbitrary mesh. I found that when removing vertices by distance and applying a decimate modifier first seems to help.

I’m wondering if there maybe is an addon that can split multiple objects using a reference plane as described above. Or maybe you know a better/alternative solution that I can try.

Thanks

TBH, there at least, I’d make a cube large enough to slice through the whole thing and then do an intersect or difference. IF you wanted both, just make a copy of everything before you do the first boolean. Or, if you have HardOps, just do a CSlash action.

Thanks @colkai. The solution you describe using booleans would work, but that would be more work than my current solution. Also (I should have mentioned this), Blender is barely able to handle the 3D scene I’m working with; duplicating the scene is not really an option.

Is CSlash/HardOps a solid option? Also tested with large/huge scenes?

I haven’t tested it on huge scenes, but Hops and BoxCutter are pretty much part of my everyday tooolkit.