mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-22 05:10:53 +00:00
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:
@@ -389,7 +389,9 @@ IfcGeom::ConversionResults ifcopenshell::geometry::Converter::convert(IfcUtil::I
|
|||||||
IfcGeom::ConversionResults results;
|
IfcGeom::ConversionResults results;
|
||||||
if (geom_item) {
|
if (geom_item) {
|
||||||
std::clock_t geom_start = std::clock();
|
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();
|
std::clock_t geom_end = std::clock();
|
||||||
total_map_time += (geom_start - map_start) / (double) CLOCKS_PER_SEC;
|
total_map_time += (geom_start - map_start) / (double) CLOCKS_PER_SEC;
|
||||||
total_geom_time += (geom_end - geom_start) / (double) CLOCKS_PER_SEC;
|
total_geom_time += (geom_end - geom_start) / (double) CLOCKS_PER_SEC;
|
||||||
|
|||||||
@@ -844,7 +844,12 @@ struct ShapeRTTI : public boost::static_visitor<PyObject*>
|
|||||||
// https://github.com/IfcOpenShell/IfcOpenShell/issues/1649
|
// https://github.com/IfcOpenShell/IfcOpenShell/issues/1649
|
||||||
instance->declaration().is(Schema::IfcProfileDef::Class())
|
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);
|
IfcGeom::Representation::BRep brep(settings, instance->declaration().name(), to_locale_invariant_string(instance->data().id()), shapes);
|
||||||
try {
|
try {
|
||||||
|
|||||||
Reference in New Issue
Block a user