From 51409aff8fbb583073bfb1ba29882cba15885731 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Fri, 9 Dec 2016 16:33:06 +0100 Subject: [PATCH] Fix #87 --- src/ifcexpressparser/templates.py | 1 + src/ifcparse/Ifc2x3-latebound.cpp | 1 + src/ifcparse/Ifc4-latebound.cpp | 1 + 3 files changed, 3 insertions(+) diff --git a/src/ifcexpressparser/templates.py b/src/ifcexpressparser/templates.py index 25aa667907..ae086da59e 100644 --- a/src/ifcexpressparser/templates.py +++ b/src/ifcexpressparser/templates.py @@ -321,6 +321,7 @@ std::set Type::GetInverseAttributeNames(Enum t) { } void Type::PopulateDerivedFields(IfcWrite::IfcWritableEntity* e) { + if (derived_map.empty()) ::InitDerivedMap(); std::map >::const_iterator i = derived_map.find(e->type()); if (i != derived_map.end()) { for (std::set::const_iterator it = i->second.begin(); it != i->second.end(); ++it) { diff --git a/src/ifcparse/Ifc2x3-latebound.cpp b/src/ifcparse/Ifc2x3-latebound.cpp index 9db5ca19c3..d4e0874d8b 100644 --- a/src/ifcparse/Ifc2x3-latebound.cpp +++ b/src/ifcparse/Ifc2x3-latebound.cpp @@ -4297,6 +4297,7 @@ std::set Type::GetInverseAttributeNames(Enum t) { } void Type::PopulateDerivedFields(IfcWrite::IfcWritableEntity* e) { + if (derived_map.empty()) ::InitDerivedMap(); std::map >::const_iterator i = derived_map.find(e->type()); if (i != derived_map.end()) { for (std::set::const_iterator it = i->second.begin(); it != i->second.end(); ++it) { diff --git a/src/ifcparse/Ifc4-latebound.cpp b/src/ifcparse/Ifc4-latebound.cpp index b4221ded95..7f7a6627bb 100644 --- a/src/ifcparse/Ifc4-latebound.cpp +++ b/src/ifcparse/Ifc4-latebound.cpp @@ -5014,6 +5014,7 @@ std::set Type::GetInverseAttributeNames(Enum t) { } void Type::PopulateDerivedFields(IfcWrite::IfcWritableEntity* e) { + if (derived_map.empty()) ::InitDerivedMap(); std::map >::const_iterator i = derived_map.find(e->type()); if (i != derived_map.end()) { for (std::set::const_iterator it = i->second.begin(); it != i->second.end(); ++it) {