IFC 4.3.2.20240423 (IFC4X3_ADD2) under development

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

END_FUNCTION;

8.9.6.8.3 References

Edit on Github


Is this page difficult to understand? Let us know!

8.9.6.8.4 Changelog

8.9.6.8.4.1 IFC4

  • ,

8.9.6.8.4.2 IFC4.1

  • ,

8.9.6.8.4.3 IFC4.3_DEV_4f9461d

  • ,