diff --git a/src/ifcconvert/ColladaSerializer.cpp b/src/ifcconvert/ColladaSerializer.cpp index 1347aa4f5e..6191f2136d 100644 --- a/src/ifcconvert/ColladaSerializer.cpp +++ b/src/ifcconvert/ColladaSerializer.cpp @@ -313,6 +313,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::ColladaEffects::write { std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES) ? material.original_name() : material.name()); + + if (material_name.empty()) { + material_name = "missing-material-" + material.name(); + } + collada_id(material_name); openEffect(material_name + "-fx"); COLLADASW::EffectProfile effect(mSW); @@ -360,6 +365,11 @@ void ColladaSerializer::ColladaExporter::ColladaMaterials::write() { BOOST_FOREACH(const IfcGeom::Material& material, materials) { std::string material_name = (serializer->settings().get(SerializerSettings::USE_MATERIAL_NAMES) ? material.original_name() : material.name()); + + if (material_name.empty()) { + material_name = "missing-material-" + material.name(); + } + std::string material_name_unescaped = material_name; // workaround double-escaping that would occur in addInstanceEffect() IfcUtil::sanitate_material_name(material_name_unescaped); collada_id(material_name); diff --git a/src/ifcgeom/IfcGeomFunctions.cpp b/src/ifcgeom/IfcGeomFunctions.cpp index 53013da932..d33c48e267 100644 --- a/src/ifcgeom/IfcGeomFunctions.cpp +++ b/src/ifcgeom/IfcGeomFunctions.cpp @@ -1455,6 +1455,9 @@ IfcGeom::BRepElement
* IfcGeom::Kernel::create_brep_for_representation_and_pro } } } + else { + Logger::Notice("Object '" + product->Name() + "' (guid " + product->GlobalId() + " ) has no material!"); + } if (material_style_applied) { representation_id_builder << "-material-" << single_material->entity->id();