IfcLocalPlacement
documented here states that:
For IfcGrid and IfcAnnotation the convention applies that it shall be placed relative
- to the local placement of its container, either IfcSite, IfcBuilding, or IfcBuildingStorey
- it should be the same container element that is referenced by the IfcRelContainedInSpatialStructure containment relationship,
There is also the implementation agreement here which states:
The spatial containment of IfcSpatialStructureElement forms a tree, and the local relative placement of IfcSpatialStructureElement forms another tree - both trees should be identical (i.e. if an IfcBuildingStorey is contained in #201=IFCBUILDING, then the IfcBuildingStorey.ObjectPlacement.PlacementRelTo shall point to the same instance #201=IFCBUILDING.
Here is a sample composition tree:
IfcProject
- (
IfcRelAggregates
)IfcSite
- (
IfcRelContainedInSpatialStructure
)IfcGrid
- (
IfcRelAggregates
)IfcBuilding
- (
IfcRelAggregates
)IfcBuildingStorey
- (
IfcRelContainedInSpatialStructure
)IfcWall
- (
- (
- (
- (
Can I confirm with others here that the IfcWall
is allowed to have an IfcGridPlacement
, but the IfcBuilding
is not allowed to have an IfcGridPlacement
? (It must have an IfcLocalPlacement
relative to the IfcSite
’s placement as per the implementation agreement)
If so, it strikes me as odd that the origin of the building, which is often a grid intersection, cannot have an IfcGridPlacement
.