- Take better care of inverse cardinalities and respect more CoordinationView agreements in IfcOpenHouse

- Track inverse relationships in an IfcWrite context as well
- Fix for lists of SELECT types
This commit is contained in:
Thomas Krijnen
2014-05-05 16:17:28 +00:00
parent 1b54ba039d
commit 948d7675f0
7 changed files with 375 additions and 111 deletions
+4 -2
View File
@@ -77,7 +77,8 @@ public:
template <class U>
typename U::list::ptr as() {
typename U::list::ptr r(new typename U::list);
for ( it i = begin(); i != end(); ++ i ) if ((*i)->is(U::Class())) r->push((U*)*i);
const bool all = U::Class() == IfcSchema::Type::ALL;
for ( it i = begin(); i != end(); ++ i ) if (all || (*i)->is(U::Class())) r->push((U*)*i);
return r;
}
};
@@ -101,7 +102,8 @@ public:
template <class U>
typename U::list::ptr as() {
typename U::list::ptr r(new typename U::list);
for ( it i = begin(); i != end(); ++ i ) if ((*i)->is(U::Class())) r->push(*i);
const bool all = U::Class() == IfcSchema::Type::ALL;
for ( it i = begin(); i != end(); ++ i ) if (all || (*i)->is(U::Class())) r->push(*i);
return r;
}
};