8.7.6.1 IfcCorrectLocalPlacement
8.7.6.1.1 Semantic definition
The function checks that a relative placement (i.e. relative to another local placement, and not grid placement) of a 3D local placement has to be relative to a 3D parent placement (and not to a 2D parent placement).
HISTORY: New function in Release IFC2x Edition 2.
8.7.6.1.2 Formal representation
FUNCTION IfcCorrectLocalPlacement (AxisPlacement:IfcAxis2Placement; RelPlacement : IfcObjectPlacement):LOGICAL; IF (EXISTS(RelPlacement)) THEN IF ('IFC4X3_DEV_738df036.IFCGRIDPLACEMENT' IN TYPEOF(RelPlacement)) THEN RETURN(?); END_IF; IF ('IFC4X3_DEV_738df036.IFCLOCALPLACEMENT' IN TYPEOF(RelPlacement)) THEN IF ('IFC4X3_DEV_738df036.IFCAXIS2PLACEMENT2D' IN TYPEOF(AxisPlacement)) THEN RETURN(TRUE); END_IF; IF ('IFC4X3_DEV_738df036.IFCAXIS2PLACEMENT3D' IN TYPEOF(AxisPlacement)) THEN IF (RelPlacement\IfcLocalPlacement.RelativePlacement.Dim = 3) THEN RETURN(TRUE); ELSE RETURN(FALSE); END_IF; END_IF; END_IF; ELSE RETURN(TRUE); END_IF; RETURN(?); END_FUNCTION;