mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-12 10:33:20 +00:00
bf5548f8f6
OCCT's Standard_Failure hierarchy does not derive from std::exception, so any raw OCCT exception escaping convert_openings() lands in the generic catch (...) handler rather than catch (const std::exception&). That handler logged the error but never set caught_error, so the safety check right after (which exists precisely to keep the product's unopened geometry when opening processing fails) was bypassed and the incomplete/empty opened_shapes silently replaced the product's solid geometry. The element ends up with zero faces and disappears entirely from the viewport, matching "walls disappear when a project is opened" (recalculating the wall regenerates a clean representation that doesn't hit the same exception, which is why that "fixes" it for the reporter). Generated with the assistance of an AI coding tool.