IfcCurveDim

Natural language names
Curve Dimension
Semantic definitions at the function
Function Definition

NOTE  Definition according to ISO/CD 10303-42:1992
This function checks the dimensionality of various subtypes of curve. It returns the dimensionality of the basic points and directions used at the instance of curve.
NOTE  This specification allows for mixed dimensionality within the same geometric representation context.
HISTORY  New function in IFC2x

Formal representations
EXPRESS Specification

FUNCTION IfcCurveDim
(Curve : IfcCurve)
       : IfcDimensionCount;

  IF ('IFCGEOMETRYRESOURCE.IfcLine' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcLine.Pnt.Dim);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcConic' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcConic.Position.Dim);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcPolyline' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcPolyline.Points[1].Dim);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcTrimmedCurve' IN TYPEOF(Curve))
    THEN RETURN(IfcCurveDim(Curve\IfcTrimmedCurve.BasisCurve));
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcCompositeCurve' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcCompositeCurve.Segments[1].Dim);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcBSplineCurve' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcBSplineCurve.ControlPointsList[1].Dim);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcOffsetCurve2D' IN TYPEOF(Curve))
    THEN RETURN(2);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcOffsetCurve3D' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcOffsetCurveByDistances' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcCurveSegment2D' IN TYPEOF(Curve))
    THEN RETURN(2);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcAlignmentCurve' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcPcurve' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFCGEOMETRYRESOURCE.IfcIndexedPolyCurve' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcIndexedPolyCurve.Points.Dim);
  END_IF;
RETURN (?);
END_FUNCTION;

Link to this page  Link to this page