FUNCTION IfcCurveDim

(* SCHEMA IFC4; *)
FUNCTION IfcCurveDim
(Curve : IfcCurve)
       : IfcDimensionCount;

  IF ('IFC4.IFCLINE' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcLine.Pnt.Dim);
  END_IF;
  IF ('IFC4.IFCCONIC' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcConic.Position.Dim);
  END_IF;
  IF ('IFC4.IFCPOLYLINE' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcPolyline.Points[1].Dim);
  END_IF;
  IF ('IFC4.IFCTRIMMEDCURVE' IN TYPEOF(Curve))
    THEN RETURN(IfcCurveDim(Curve\IfcTrimmedCurve.BasisCurve));
  END_IF;
  IF ('IFC4.IFCGRADIENTCURVE' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFC4.IFCSEGMENTEDREFERENCECURVE' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFC4.IFCCOMPOSITECURVE' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcCompositeCurve.Segments[1].Dim);
  END_IF;
  IF ('IFC4.IFCBSPLINECURVE' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcBSplineCurve.ControlPointsList[1].Dim);
  END_IF;
  IF ('IFC4.IFCOFFSETCURVE2D' IN TYPEOF(Curve))
    THEN RETURN(2); 
  END_IF;
  IF ('IFC4.IFCOFFSETCURVE3D' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFC4.IFCOFFSETCURVEBYDISTANCES' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFC4.IFCCURVESEGMENT2D' IN TYPEOF(Curve))
    THEN RETURN(2);
  END_IF;
  IF ('IFC4.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 ('IFC4.IFCPCURVE' IN TYPEOF(Curve))
    THEN RETURN(3);
  END_IF;
  IF ('IFC4.IFCINDEXEDPOLYCURVE' IN TYPEOF(Curve))
    THEN RETURN(Curve\IfcIndexedPolyCurve.Points.Dim);
  END_IF;
RETURN (?);

END_FUNCTION;

Referenced By

Defintion IfcCurveDim is references by the following definitions:
DefinitionType
 IfcCurve ENTITY


[Top Level Definitions] [Exit]

Generated by STEP Tools® EXPRESS to HTML Converter
2023-12-22T16:31:10-05:00