IfcGeometricRepresentationContext
has WorldCoordinateSystem
. This WorldCoordinateSystem
attribute looks suspiciously to me like a predecessor to the IFC4 geolocation entities. Evidence:
8.18.3.3 IfcGeometricRepresentationContext
In addition it can be used to offset the project coordinate system from a global point of origin, using the WorldCoordinateSystem attribute
The problem is when WorldCoordinateSystem
has a value, see quote:
The TrueNorth attribute should be provided, if the y axis of the WorldCoordinateSystem does not point to the global northing. Direction of the true north, or geographic northing direction, relative to the underlying project coordinate system as established by the attribute WorldCoordinateSystem .
In my other thread describing the complexities of grid, true, and magnetic north in IFC this creates a further complication. This sounds like the first attempt to specify grid north, but it also kinda describes itself as a replacement for true north, which is not correct.
Finally, there is this very strange quote which suggests that even if the new geolocation entities are used, it still has a purpose of some kind (emphasis mine):
If an geographic placement is provided using IfcMapConversion then the WorldCoordinateSystem atttibute is used to define the offset between the zero point of the local engineering coordinate system and the geographic reference point to which the IfcMapConversion offset relates. In preferred practise both points (also called “project base point” and “survey point”) should be coincidental. However it is possible to offset the geographic reference point from the local zero point.
I’ve read it a few times and I still don’t get it.
There is an interesting aspect of product placement, suggesting that it is used for absolute placement.
4.8.1.1 Product Local Placement
In certain use cases, an absolute placement may be used by omiting(sic) the IfcObjectPlacement. In this case, the shape representation is defined within the world coordinate system.
This is some real trippy stuff. Since local placements basically jump up the local placement tree until you hit the end, and then to go to global (i.e. real world coordinates) you apply IfcMapConversion. Grid placements are relative to a grid, and then to go global, again, you apply IfcMapConversion. But … absolute placements are … well, not actually absolute, they are relative to the WorldCoordinateSystem, which is kinda already an “offset from a global point of origin” (quoted from the docs) … and then apply IfcMapConversion on top? It … just … what?
My conclusion: WorldCoordinateSystem is superseded by IfcMapConversion.
Proposal: delete WorldCoordinateSystem. Make absolute positions actually absolute.
I hope someone can help clarify this for me. Or if my conclusion seems correct, hopefully this can be deleted sooner rather than later because geolocation and “where is north” is a really important aspect of BIM.