IfcElement—inverse attribute
I found the IfcElement::setInverseCounterparts() miss the inverse operations. IfcElement in the IFC4 include the following attributes: INVERSE FillsVoids : SET [0:1] OF IfcRelFillsElement FOR RelatedBuildingElement; ConnectedTo : SET [0:?] OF IfcRelConnectsElements FOR RelatingElement; IsInterferedByElements : SET [0:?] OF IfcRelInterferesElements FOR RelatedElement; InterferesElements : SET [0:?] OF IfcRelInterferesElements FOR RelatingElement; HasProjections : SET [0:?] OF IfcRelProjectsElement FOR RelatingElement; ReferencedInStructures : SET [0:?] OF IfcRelReferencedInSpatialStructure FOR
The inverse attributes are linked from the counterparts, where the inverse attribute corresponds to an actual attribute. For example, IfcRelFillsElement has an attribute that points to IfcElement. In the method void IfcRelFillsElement::setInverseCounterparts(...), this inverse link is set. It can not be set in the class IfcElement, because IfcElement has no direct link to IfcRelFillsElement. Let me know in case you are missing any inverse links. Or were you just wondering how it is done?
Thanks. I may not know about the mechanism