Upon removal, empty aggregates prioritise null if possible.

This commit is contained in:
Dion Moult
2021-10-03 11:36:24 +11:00
committed by Thomas Krijnen
parent 6cc7d7963a
commit adf784236c
+6 -3
View File
@@ -2031,10 +2031,13 @@ void IfcFile::process_deletion_() {
case IfcUtil::Argument_AGGREGATE_OF_ENTITY_INSTANCE: {
aggregate_of_instance::ptr instance_list = *attr;
if (instance_list->contains(entity)) {
instance_list->remove(entity);
IfcWrite::IfcWriteArgument* copy = new IfcWrite::IfcWriteArgument();
copy->set(instance_list);
instance_list->remove(entity);
if (!instance_list->size() && related_instance->declaration().as_entity()->attribute_by_index(i)->optional()) {
copy->set(boost::blank());
} else {
copy->set(instance_list);
}
related_instance->data().setArgument(i, copy);
} }
break;