The documentation for IfcAlignment describes the supported representations of the Axis attribute as IfcGradientCurve, IfcCompositeCurve, IfcOffsetCurveByDistances, IfcSegmentedReferenceCurve, or IfcPolyline. The IfcOffsetCurveByDistances representation is “as a 2D or 3D curve defined relative to an IfcAlignmentCurve or another IfcOffsetCurveByDistances”. IfcAlignmentCurve is not a type in the 4x3 rc3 specification.
Looking through the IFC4x3_RC3.exp file, IfcAlignment does not have an Axis attribute. The Axis attribute isn’t defined in IfcLinearPositioningElement and therefore IfcAlignment doesn’t inherit it. The change log for IfcLinearPositioningElement does not indicate Axis has been deleted.
Review of the unit test files, such as Alignment-12d-1, shows the IfcAlignment entity only has 8 attributes, not the 9 listed in the documentation.
#26 = IFCALIGNMENT('06CwQ1pbT8Nv9pM2sdAsYi', #2, 'RS01 no VG', '12d Alignment String', 'clothoid', #15, $, $);
The Cardinality of the Axis attribute is blank in the table which seems to mean 1 and required (though the documentation is silent on these details). In the unit tests there are not any instances of IfcGradientCurve, IfcCompositeCurve, IfcOffsetCurveByDistances, IfcSegmentedReferenceCurve, or IfcPolyline.
I haven’t been able to find any online discussions that would clue me into the developers’ intent so I hesitate to create a pull request and offer a solution. My best guess is the unit test examples are the intent because they are consistent with the EXP file and its the documentation that is out of sync - but I don’t know.