diff --git a/src/ifcgeom/Converter.cpp b/src/ifcgeom/Converter.cpp index 15a4584088..98de970b03 100644 --- a/src/ifcgeom/Converter.cpp +++ b/src/ifcgeom/Converter.cpp @@ -205,8 +205,10 @@ IfcGeom::BRepElement* ifcopenshell::geometry::Converter::create_brep_for_represe if (opening_items.empty()) { opened_shapes = shapes; - } else { - kernel_->convert_openings(product, opening_items, shapes, *place, opened_shapes); + } else if (!kernel_->convert_openings(product, opening_items, shapes, *place, opened_shapes)) { + // A clean `false` return is a failure just like a thrown exception. + logger_.Message(Logger::LOG_ERROR, "GEO", 34, "Error processing openings for:", product); + caught_error = true; } } catch (const std::exception& e) { logger_.Message(Logger::LOG_ERROR, "GEO", 33, std::string("Error processing openings for: ") + e.what() + ":", product);