8.9.6.8 IfcCurveDim
8.9.6.8.1 Semantic definition
8.9.6.8.2 Formal representation
FUNCTION IfcCurveDim (Curve : IfcCurve) : IfcDimensionCount; IF ('IFC4X3_DEV_738df036.IFCLINE' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcLine.Pnt.Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCCONIC' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcConic.Position.Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCPOLYLINE' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcPolyline.Points[1].Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCTRIMMEDCURVE' IN TYPEOF(Curve)) THEN RETURN(IfcCurveDim(Curve\IfcTrimmedCurve.BasisCurve)); END_IF; IF ('IFC4X3_DEV_738df036.IFCGRADIENTCURVE' IN TYPEOF(Curve)) THEN RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCSEGMENTEDREFERENCECURVE' IN TYPEOF(Curve)) THEN RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCCOMPOSITECURVE' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcCompositeCurve.Segments[1].Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCBSPLINECURVE' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcBSplineCurve.ControlPointsList[1].Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCOFFSETCURVE2D' IN TYPEOF(Curve)) THEN RETURN(2); END_IF; IF ('IFC4X3_DEV_738df036.IFCOFFSETCURVE3D' IN TYPEOF(Curve)) THEN RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCOFFSETCURVEBYDISTANCES' IN TYPEOF(Curve)) THEN RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCCURVESEGMENT2D' IN TYPEOF(Curve)) THEN RETURN(2); END_IF; IF ('IFC4X3_DEV_738df036.IFCPOLYNOMIALCURVE' IN TYPEOF(Curve)) THEN IF ( NOT EXISTS(Curve\IfcPolynomialCurve.CoefficientsZ) AND (Curve\IfcPolynomialCurve.Position.Dim = 2 )) THEN RETURN(2); END_IF; RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCPCURVE' IN TYPEOF(Curve)) THEN RETURN(3); END_IF; IF ('IFC4X3_DEV_738df036.IFCINDEXEDPOLYCURVE' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcIndexedPolyCurve.Points.Dim); END_IF; IF ('IFC4X3_DEV_738df036.IFCSPIRAL' IN TYPEOF(Curve)) THEN RETURN(Curve\IfcSpiral.Position.Dim); END_IF; RETURN (?); END_FUNCTION;