Represent Trimmed Curve
Overview
Identifies the information requirements for the provision of a trimmed curve.
A trimmed curve (IfcTrimmedCurve) is a bounded curve which is created by taking a selected portion, between two identified points, of an associated basis curve. The basis curve itself is unaltered and more than one trimmed curve may reference the same basis curve. Trimming points for the curve may be identified by:
- parametric value
- geometric position
- both of the above
At least one of these is specified at each end of the curve.
Results
Specification of a trimmed curve with end points and trim conditions specified.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Select the curve that is to form the basis of the trimmed curve.
A basis is a curve that is a line or conic subtype of IfcCurve. For further information, refer to the functional parts describing representation of such curves namely:
|
IfcTrimmedCurve.BasisCurve::IfcCurve (subtypes IfcLine, IfcPolyline, IfcConic) | |||
| Specify the first trimming point for the curve | IfcTrimmedCurve.Trim1::IfcTrimmingSelect | |||
| Specify the second trimming point for the curve | IfcTrimmedCurve.Trim2::IfcTrimmingSelect | |||
| Selection of the trimming points may be either Cartesian points or parameter values or a mixture of the two.
A parameter value is a REAL number defining a value within the parametric range of the curve |
IfcCartesianPoint.Coordinates IfcParameterValue |
|||
| The space dimensionality for a Cartesian point is derived from the number of coordinates specified. | IfcCartesianPoint.Dim | |||
| Identify whether the trimmed curve has the same sense (direction) as the basis curve.
The value is set to TRUE or FALSE. Sense is used to indicate whether the direction of the trimmed curve agrees with or is opposed to the direction of the basis curve. |
IfcTrimmedCurve.SenseAgreement::BOOLEAN | |||
| Where both parameter and point are present at either end of the curve, indicates the preferred form.
Values may be set as:
|
IfcTrimmedCurve.MasterRepresentation::IfcTrimmingPreference | |||
| The space dimensionality for the trimmed curve is derived from its 2 or 3 dimensional context. | IfcTrimmedCurve.Dim |
IFC Entities Required
- IfcBoundedCurve
- IfcCartesianPoint
- IfcCurve
- IfcGeometricRepresentationItem
- IfcPoint
- IfcRepresentationItem
- IfcTrimmedCurve
IFC Datatypes Required
- IfcDimensionCount
- IfcLengthMeasure
- IfcParameterValue
- IfcTrimmingPreference
- IfcTrimmingSelect
IFC Functions Required
- -
IDM Functional Parts Required
- -
EXPRESS-G
EXPRESS Schema
SCHEMA FP_REPRESENT_TRIMMED_CURVE;
TYPE IfcDimensionCount = INTEGER;
WHERE
WR1 : { 0 < SELF <= 3 };
END_TYPE;
TYPE IfcLengthMeasure = REAL;
END_TYPE;
TYPE IfcParameterValue = REAL;
END_TYPE;
TYPE IfcTrimmingPreference = ENUMERATION OF
(CARTESIAN,
PARAMETER,
UNSPECIFIED);
END_TYPE;
TYPE IfcTrimmingSelect = SELECT
(IfcCartesianPoint,
IfcParameterValue);
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 IfcTrimmedCurve
SUBTYPE OF(IfcBoundedCurve);
BasisCurve : IfcCurve;
Trim1 : SET [1:2] OF IfcTrimmingSelect;
Trim2 : SET [1:2] OF IfcTrimmingSelect;
SenseAgreement : BOOLEAN;
MasterRepresentation : IfcTrimmingPreference;
WHERE
WR41 : (HIINDEX(Trim1) = 1) OR (TYPEOF(Trim1[1]) <> TYPEOF(Trim1[2]));
WR42 : (HIINDEX(Trim2) = 1) OR (TYPEOF(Trim2[1]) <> TYPEOF(Trim2[2]));
WR43 : NOT('IFC2X2_FINAL.IFCBOUNDEDCURVE' IN TYPEOF(BasisCurve));
END_ENTITY;
END_SCHEMA;