Why isn't Solid intersection commutative?

A+B=B+A, right ?
Well why isn’t it the case with Solid Intersection ?
230315_PROG_Why not commutative.gh (42.9 KB)


I don’t even understand why the second component fails completely.
Do Booleans in Rhino HAVE to be shitty or else they wouldn’t be Rhino booleans ?

Weird. However grafting the input B on the failing native component helps…

230315_PROG_Why not commutative.gh (58.3 KB)

1 Like

Hi Martin,
Thanks for the tests.
Something’s up with the GH component it seems.

1 Like

My guess would be that the Brep.CreateBooleanIntersection method taking two sets as input did not exist when the component was created, and thus it uses another strategy to loop through breps and cutters that fails in some situations.

Because this simple line of code in a C# script works both ways :man_facepalming:

private void RunScript(List<Brep> x, List<Brep> y, ref object A)
  {
    A = Brep.CreateBooleanIntersection(x, y, Rhino.RhinoDoc.ActiveDoc.ModelAbsoluteTolerance);
  }
3 Likes

thanks @osuire for reporting, I added RH-73695 Boolean Intersection component fails in certain order

1 Like