IFC4.3.x-development icon indicating copy to clipboard operation
IFC4.3.x-development copied to clipboard

IfcAxis2Placement3D

Open leobasement opened this issue 3 years ago • 5 comments

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!

leobasement avatar Jun 26 '22 10:06 leobasement

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.

TLiebich avatar Jun 27 '22 11:06 TLiebich

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.

aothms avatar Jun 27 '22 12:06 aothms

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

TLiebich avatar Jun 27 '22 12:06 TLiebich

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!

leobasement avatar Jun 29 '22 10:06 leobasement

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.

aothms avatar Jul 03 '22 12:07 aothms