IFC4.3.x-development
IFC4.3.x-development copied to clipboard
IfcAxis2Placement3D
Hello everyone,
regarding to the "Difficult to understand - Let us know" I am making a frist try:
The information provided at the attributes section of IfcAxis2Placement3D says, that if Axis/RefDirection is not ommited, the direction is taken from "geometric coordinate system".
http://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcAxis2Placement3D.htm
Does this mean, that it is taken from the geometric context of ifcProject (like PlacementRelTo in localPlacement f.e.)?
Best Regards!
there are actually two explanations provided in the semantic definition of IfcAxis2Placement3D that could be improved and unified:
at the entity definition: "If the attribute values for Axis and RefDirection are not given, the placement defaults to P[1] (x-axis) as [1.,0.,0.], P[2] (y-axis) as [0.,1.,0.] and P[3] (z-axis) as [0.,0.,1.]."
at the attribute definition: "If Axis and/or RefDirection is omitted, these directions are taken from the geometric coordinate system."
correct is, that the the IfcAxis2Placement3D is defined within its parent object coordinate system, in most cases it is esablished by the IfcObjectPlacement using the IfcAxis2Placement3D and linking to the parent object coordinate system by the attribute PlacementRelTo. If the IfcAxis2Placement3D is used by an geometric representation item directly, its coordinate system is the object placement within which the geometric representation item is founded.
Some more points:
(a)
If Axis and/or RefDirection is omitted
[emphasis mine]
This is a bit vague in conjunction with the where rule:
AxisAndRefDirProvision: Either both, Axis and RefDirection are not given and therefore defaulted, or both shall be given.
(b)
correct is, that the the IfcAxis2Placement3D is defined within its parent object coordinate system, in most cases it is esablished by the IfcObjectPlacement using the IfcAxis2Placement3D and linking to the parent object coordinate system by the attribute PlacementRelTo. If the IfcAxis2Placement3D is used by an geometric representation item directly, its coordinate system is the object placement within which the geometric representation item is founded.
This doesn't explain IfcRepresentationMaps yet. Maybe it's easiest to see them as matrix multiplications being applied to the items and we can just list the order. What would be the best place to document all of this though?
I would also eliminate the references to X-axis, because it might be confused with the global X-axis.
a) correct and the sentence should be corrected in regard to the later introduced where rule b) I subsumed in under "If the IfcAxis2Placement3D is used by an geometric representation item..." - but an explicit list is preferable
Asking myself how I missed the information at the entity definition.. Anyways, your replies helped a lot already. Thanks for that!
However, I am still kind of struggeling with the localplacement for ifcSite f.e.
#159= IFCSITE('17grpJczrEiR9nl9VC2WpP',#42,'Default',$,$,#158,$,$,.ELEMENT.,(48,8,15,359802),(11,34,47,783432),0.,$,$);
#158= IFCLOCALPLACEMENT($,#157);
#157= IFCAXIS2PLACEMENT3D(#6,$,$);
#6= IFCCARTESIANPOINT((0.,0.,0.));
Is it the case, that now the Axis/RefDirection take the default values as described at the entity definition?
Sorry if my questions are kind of newbe.. Thanks and Regards!
Yes, it's the equivalent of an identity matrix. No rotation and no translation (because (0 0 0)). The placement position is not optional so (0 0 0) has to be provided for the translation.