create_shape - raise the same error for representations and rep items

To be consistent with how it's handled when product+representation is passed, previously it would fail silently.
This commit is contained in:
Andrej730
2024-06-28 17:23:42 +05:00
parent dcc568f5a3
commit d1be0e8c1c
2 changed files with 9 additions and 2 deletions
+3 -1
View File
@@ -389,7 +389,9 @@ IfcGeom::ConversionResults ifcopenshell::geometry::Converter::convert(IfcUtil::I
IfcGeom::ConversionResults results;
if (geom_item) {
std::clock_t geom_start = std::clock();
kernel_->convert(geom_item, results);
if (!kernel_->convert(geom_item, results)) {
throw std::runtime_error("Failed to convert item");
}
std::clock_t geom_end = std::clock();
total_map_time += (geom_start - map_start) / (double) CLOCKS_PER_SEC;
total_geom_time += (geom_end - geom_start) / (double) CLOCKS_PER_SEC;
+6 -1
View File
@@ -844,7 +844,12 @@ struct ShapeRTTI : public boost::static_visitor<PyObject*>
// https://github.com/IfcOpenShell/IfcOpenShell/issues/1649
instance->declaration().is(Schema::IfcProfileDef::Class())
) {
IfcGeom::ConversionResults shapes = kernel.convert(instance);
IfcGeom::ConversionResults shapes;
try {
shapes = kernel.convert(instance);
} catch (...) {
throw IfcParse::IfcException("Failed to process shape");
}
IfcGeom::Representation::BRep brep(settings, instance->declaration().name(), to_locale_invariant_string(instance->data().id()), shapes);
try {