diff --git a/src/ifcgeom/kernels/opencascade/boolean_result.cpp b/src/ifcgeom/kernels/opencascade/boolean_result.cpp index 146264683b..1deaf49cf7 100644 --- a/src/ifcgeom/kernels/opencascade/boolean_result.cpp +++ b/src/ifcgeom/kernels/opencascade/boolean_result.cpp @@ -175,6 +175,10 @@ bool OpenCascadeKernel::convert_impl(const taxonomy::boolean_result::ptr br, Con } r = C; } else { + if (br->operation != taxonomy::boolean_result::SUBTRACTION && a.IsNull()) { + a = b.First(); + b.RemoveFirst(); + } valid_result = util::boolean_operation(bst, a, b, op_to_occt(br->operation), r); }