@agron Although 2 units can be written in the IFC file, only the CRS defined system is considered authoritative (@Hans_Lammerts, this also answers your question). See this statement in my blog post:
In addition to ordinary coordinates, the
RefLongitutde , and
RefElevation attributes. As the prefix “Ref” suggests, this is the latitude and longitutde for the reference point. It was introduced as a way for vendors to easily migrate between IFC2X3 and IFC4. This is because the concept of map conversions did not exist in IFC2X3. In the case of IFC4, it is in fact a duplication of data. If there is a discrepancy between the
IfcMapConversion and the data provided in
IfcSite , the
IfcMapConversion takes priority.
As you can see, the lat/longs were only there for a 2X3 fallback, and should not be used. If they both exist, the lat/longs should be ignored. In addition:
After all of this information is recorded, it’s interesting to note that the IfcGeometricRepresentationContext additionally has a TrueNorth attribute. Assuming the IfcMapConversion is already provided, there is actually no need for a TrueNorth attribute, and so if it is provided, it is merely duplicate data and there for convenience. IFC readers should not parse it and should not apply the same rotation twice. The IfcMapConversion takes priority over the TrueNorth attribute.
Also, you state that “On the IfcProject level the coor…” - this statement is not that accurate. It is defined at the
IfcGeometricRepresentationContext level. Therefore, this statement in my article should be emphasized:
I would like to emphasize that the inheritance of coordinate transformation is not done due to spatial containment, but instead due to the selection of
IfcRepresentationContext . This allows different
IfcSite elements to have a different
IfcRepresentationContext , and therefore have a different
MapConversion . This is useful if you are working on a small town or any geographically large projects, as different sites will likely require different Helmert transformations.
In conclusion, IFC only defines one authoritative unit and one authoritative location for georeferencing, through the map conversion and target CRS (exact unit, e.g. metres, feet, etc, depends on the CRS definition). Here is an example output implementation by Blender BIM:
Hope it helps and clarifies things!