From f089d03dc613bf908c32947cc86fabcf6261a7ee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Christian=20Mart=C3=ADnez=20de=20la=20Rosa?= <36189169+christt105@users.noreply.github.com> Date: Tue, 29 Mar 2022 16:23:18 +0200 Subject: [PATCH] [ifcConvert] Add related objects in tasks --- .../schema_dependent/XmlSerializer.cpp | 21 +++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/src/serializers/schema_dependent/XmlSerializer.cpp b/src/serializers/schema_dependent/XmlSerializer.cpp index ca3f9fdbc3..904132c921 100644 --- a/src/serializers/schema_dependent/XmlSerializer.cpp +++ b/src/serializers/schema_dependent/XmlSerializer.cpp @@ -407,6 +407,27 @@ void format_tasks(IfcSchema::IfcTask* task, ptree& node) { format_tasks(task2, *ntask); } } + +#ifdef SCHEMA_IfcProcess_HAS_OperatesOn + auto operates = task->OperatesOn(); + if (operates->size() > 0) + { + ptree noperates_on; + for (auto i = operates->begin(); i != operates->end(); ++i) + { + auto objects = (*i)->RelatedObjects(); + for (auto it2 = objects->begin(); it2 != objects->end(); ++it2) + { + auto object = (*it2); + ptree nobject; + nobject.put(".id", object->GlobalId()); + noperates_on.add_child("Object", nobject); + } + } + + ntask->add_child("OperatesOn", noperates_on); + } +#endif } } #endif