Product occurrences can be placed in 3D space relative to where they are contained. Placement is defined by a relative position (X, Y, Z coordinates), a horizontal reference direction, and a vertical axis direction. At the outermost level, relative directions are defined according to representation context; for example, +X may point east, +Y may point north, and +Z may point up.
Placement follows aggregation and containment relationships as follows:
If a containing spatial structure contains a grid, then placement may also be based relative to grid coordinates. In certain use cases, an absolute placement may be used by omiting the IfcObjectPlacement. In this case, the shape representation is defined within the world coordinate system.
Figure 259 illustrates an instance diagram.
Figure 259 — Product Local Placement |
<?xml version="1.0" encoding="utf-8"?>
<ConceptTemplate xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" uuid="cbe85b5f-7912-4a43-8bb7-1e63bf40b26d" name="Product Local Placement" applicableSchema="IFC4" applicableEntity="IfcProduct">
<Rules>
<AttributeRule RuleID="HasPlacement" AttributeName="ObjectPlacement">
<EntityRules>
<EntityRule EntityName="IfcLocalPlacement">
<AttributeRules>
<AttributeRule AttributeName="RelativePlacement">
<EntityRules>
<EntityRule EntityName="IfcAxis2Placement3D" />
</EntityRules>
</AttributeRule>
<AttributeRule AttributeName="PlacementRelTo">
<EntityRules>
<EntityRule EntityName="IfcLocalPlacement">
<AttributeRules>
<AttributeRule RuleID="RelativeToElement" AttributeName="PlacesObject">
<EntityRules>
<EntityRule EntityName="IfcElement">
<AttributeRules>
<AttributeRule RuleID="ElementName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
<EntityRule EntityName="IfcSpatialElement">
<AttributeRules>
<AttributeRule RuleID="SpatialElementName" AttributeName="Name">
<EntityRules>
<EntityRule EntityName="IfcLabel" />
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</AttributeRules>
</EntityRule>
</EntityRules>
</AttributeRule>
</Rules>
</ConceptTemplate>