Concept

Objects in an IFC model that seem directly connected are actually connected through other objects. A window for example is not directly related to an opening in a wall, however they are connected through the IfcRelFillsElement entity.

Currently BimQL is able to retrieve the IfcRelFillsElement entity.

Select ?Var1
Where ?Var1.EntityType = “IfcWindow”
Select ?Var2 := ?Var1.Attribute.FillsVoids

The query can be extended so it is also able to retrieve the related openings.

Select ?Var1
Where ?Var1.EntityType = “IfcWindow”
Select ?Var2 := ?Var1.Attribute.FillsVoids
Select ?Var3 := ?Var2.Attribute.RelatedBuildingElement

This method looks quite complicated and considering the presence of the IfcRelFillsElement entity, this process might be simplified.

Select ?Var1
Where ?Var1.EntityType = “IfcWindow”
Select ?Var2 := ?Var1.FillsElement

The BimQL query above first selects all windows and then the second line selects all openings which are filled by those windows. The same result has been achieved while the query is shorter.

Implementation

Many IfcRelationship entities exist. They should all be integrated into BimQL. The process of integration should be automated to prevent mistakes and to save time. Keep in mind that most BimQL code has also been automatically generated and that this feature can be implemented in approximately the same way. Please contact me if you are interested in making this happen!