@Moult I want to improve some of the work done in ifc2ca and set some more stable base on some aspects, especially the geometry and orientation of structural members and structural connections. As of now, I have not really considered at all object placements and stuff, treating all coordinates as global and orientations as global or default as well, but I feel I have to cope with this well, above all for defining then correctly the implementation in Code_Aster. I will be taking a more offensive approach (I am not good in asking questions but I have to improve) providing my interpretation here and asking if that is correct, hopefully this can be a more efficient way to go forward.
Of course anybody that will be able to verify my interpretation or guide me in the correct direction is welcomed to help.
So, let's start with the geometry coordinates of the objects, members and connections.
My understanding is that I have to consider two transformations (where each transformation can have translation and rotation in 3D) to get the global coordinates from the coordinates I read from the representations:
The SharedPlacement property of IfcStructuralAnalysisModel (sth similar to WorldCoordinateSystem of IfcGeometricRepresentationContext)
The ObjectPlacement property of IfcStructuralItem or IfcStructuralConnection
Would that be correct in your opinion? Or there can be other transformations possibly to consider?
For the SharedPlacement the documentation states "Per informal proposition, this attribute is not optional as soon as at least one IfcStructuralItem is grouped into the instance of IfcStructuralAnalysisModel."
My understanding is that it is a mandatory property. What's your take? If not provided should I relate to the WorldCoordinateSystem or just ignore it overall?