diff --git a/src/ifcparse/IfcHdf5File.h b/src/ifcparse/IfcHdf5File.h index e92cbfa59a..64238cc1f1 100644 --- a/src/ifcparse/IfcHdf5File.h +++ b/src/ifcparse/IfcHdf5File.h @@ -48,7 +48,8 @@ namespace IfcParse { instance_enumerator(IfcSpfHeader* header, T begin, T end) { std::map map; std::for_each(begin, end, [&map](IfcUtil::IfcBaseClass* inst) { - map.insert(std::make_pair(inst->data().id(), inst)); + // Use an incrementing id here in order not to fold distinct instances from different files with the same identifier + map.insert(std::make_pair(map.size(), inst)); }); map_ = std::make_pair(header, map); }