From 37bddc25ca1a28cb522864f99b328f819c71ea03 Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Wed, 22 Sep 2021 10:34:19 +0200 Subject: [PATCH] #1734 fix inv attr population on entity addition --- src/ifcparse/IfcParse.cpp | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/ifcparse/IfcParse.cpp b/src/ifcparse/IfcParse.cpp index a0018836a6..cccfeb48b4 100644 --- a/src/ifcparse/IfcParse.cpp +++ b/src/ifcparse/IfcParse.cpp @@ -2393,11 +2393,9 @@ std::pair IfcFile::getUnit(const std::string& un } void IfcParse::IfcFile::build_inverses_(IfcUtil::IfcBaseClass* inst) { - aggregate_of_instance::ptr entity_attributes(new aggregate_of_instance); - - std::function fn = [this](IfcUtil::IfcBaseClass* inst, int idx) { - if (inst->declaration().as_entity()) { - unsigned entity_attribute_id = inst->data().id(); + std::function fn = [this, inst](IfcUtil::IfcBaseClass* attr, int idx) { + if (attr->declaration().as_entity()) { + unsigned entity_attribute_id = attr->data().id(); auto decl = inst->declaration().as_entity(); while (decl) { byref[{entity_attribute_id, decl->index_in_schema(), idx}].push_back(inst->data().id()); @@ -2405,6 +2403,8 @@ void IfcParse::IfcFile::build_inverses_(IfcUtil::IfcBaseClass* inst) { } } }; + + apply_individual_instance_visitor(&inst->data()).apply(fn); } void IfcParse::IfcFile::build_inverses() {