Log In   View a printable version of the current page.
Represent B Spline Curve (FP)
Added by Janice Wix, last edited by Janice Wix on Feb 11, 2007  (view change)
Labels: 
(None)


Represent B Spline Curve

Overview

NOT YET DEFINED

Results

xxx

Description Entity/Pset/Functional Part MAN OPT

IFC Entities Required

  • IfcBezierCurve
  • IfcBSplineCurve
  • IfcBoundedCurve
  • IfcCartesianPoint
  • IfcCurve
  • IfcGeometricRepresentationItem
  • IfcPoint
  • IfcRepresentationItem

IFC Datatypes Required

  • IfcBSplineCurveForm
  • IfcDimensionCount
  • IfcLengthMeasure

IFC Functions Required

  • -

IDM Functional Parts Required

  • -

EXPRESS-G

EXPRESS Schema

SCHEMA FP_REPRESENT_BSPLINE_CURVE;

  TYPE IfcDimensionCount = INTEGER;
    WHERE
      WR1 : { 0 < SELF <= 3 };
  END_TYPE;

  TYPE IfcLengthMeasure = REAL;
  END_TYPE;

  TYPE IfcBSplineCurveForm = ENUMERATION OF
    (POLYLINE_FORM,
     CIRCULAR_ARC,
     ELLIPTIC_ARC,
     PARABOLIC_ARC,
     HYPERBOLIC_ARC,
     UNSPECIFIED);
  END_TYPE;

  ENTITY IfcGeometricRepresentationItem
    ABSTRACT SUPERTYPE OF (ONEOF(IfcCurve, IfcPoint))
    SUBTYPE OF(IfcRepresentationItem);
  END_ENTITY;

  ENTITY IfcRepresentationItem
    ABSTRACT SUPERTYPE;
  END_ENTITY;

  ENTITY IfcCartesianPoint
    SUBTYPE OF(IfcPoint);
      Coordinates : LIST [1:3] OF IfcLengthMeasure;
    DERIVE
      Dim         : IfcDimensionCount := HIINDEX(Coordinates);
    WHERE
      WR1 : HIINDEX(Coordinates) >= 2;
  END_ENTITY;

  ENTITY IfcPoint
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcGeometricRepresentationItem);
  END_ENTITY;

  ENTITY IfcCurve
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcGeometricRepresentationItem);
    DERIVE
      Dim : IfcDimensionCount := IfcCurveDim(SELF);
  END_ENTITY;

  ENTITY IfcBoundedCurve
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcCurve);
  END_ENTITY;

  ENTITY IfcBSplineCurve
    ABSTRACT SUPERTYPE
    SUBTYPE OF(IfcBoundedCurve);
      Degree                    : INTEGER;
      ControlPointsList         : LIST [2:?] OF IfcCartesianPoint;
      CurveForm                 : IfcBSplineCurveForm;
      ClosedCurve               : LOGICAL;
      SelfIntersect             : LOGICAL;
    DERIVE
      ControlPoints             : ARRAY [0:255] OF IfcCartesianPoint := IfcListToArray(ControlPointsList,0,UpperIndexOnControlPoints);
      UpperIndexOnControlPoints : INTEGER := (SIZEOF(ControlPointsList) - 1);
    WHERE
      WR41 : SIZEOF(QUERY(Temp <* ControlPointsList |
             Temp.Dim <> ControlPointsList[1].Dim))
             = 0;
  END_ENTITY;

  ENTITY IfcBezierCurve
    SUBTYPE OF(IfcBSplineCurve);
  END_ENTITY;

END_SCHEMA;

Powered by Atlassian Confluence, the Enterprise Wiki. (Version: 2.1.3 Build:#408 Jan 23, 2006) - Bug/feature request - Contact Administrators