Take into account Position is optional in IFC4 when processing layersets on slabs

This commit is contained in:
Thomas Krijnen
2017-08-09 17:01:10 +02:00
parent 132e5d5f6e
commit ebfe8f9c54
+10 -3
View File
@@ -1554,9 +1554,16 @@ bool IfcGeom::Kernel::convert_layerset(const IfcSchema::IfcProduct* product, std
IfcSchema::IfcExtrudedAreaSolid* extrusion = *extrusions->begin();
gp_Trsf extrusion_position;
if (!convert(extrusion->Position(), extrusion_position)) {
Logger::Message(Logger::LOG_ERROR, "Failed to convert placement for extrusion of:", product->entity);
return false;
bool has_position = true;
#ifdef USE_IFC4
has_position = extrusion->hasPosition();
#endif
if (has_position) {
if (!convert(extrusion->Position(), extrusion_position)) {
Logger::Message(Logger::LOG_ERROR, "Failed to convert placement for extrusion of:", product->entity);
return false;
}
}
gp_Dir extrusion_direction;