Represent Point Based Surface Model
Overview
Identifies the information requirements for a surface representation through the provision of points and, optionally, breaklines.
A point based surface model may be obtained from:
- the results of a survey
- a sample set of points derived from an existing map
- other point based representation of a spatial region
Points may be simple geometric points identified in terms of their coordinates or they may be qualified annotation points that have a unique identifier for reference (in which case they have an underlying simple geometric point). In this functional part, only the underlying point representation is considered.
Breaklines are restricted to only connect points given in the set of survey points. Breaklines, if given, are used to constrain the triangulation
Results
A point based representation is provided from which a surface model may be derived. The representation may contain breaklines.
The following table describes representing a point based surface model in IFC 2x2
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Determine the set of points and their location coordinates.
Points are given as 3D cartesian points within the coordinate system of the spatial region concerned. |
IfcCartesianPoint.Coordinates::IfcLengthMeasure | |||
| Derive dimensionality of points
Note that the dimensionality of the points is determined by the number of coordinates given (2 or 3) |
IfcCartesianPoint.Dim::IfcDimensionCount | |||
| Determine the set of break lines between Cartesian points.
Breaklines should be specified by occurrences of IfcPolyline. The points defining the breakline polyline should already exist as occurrences of the set of points identified. Dimensionality of break lines should be set to 3. |
IfcPolyline.Points::IfcCartesianPoint | |||
| Create a geometric set
Collect together the occurrences of cartesian points and break lines into a geometric set |
IfcGeometricSet.Elements::IfcCartesianPoint | |||
| Derive dimensionality of the geometric set
The value of the dimensionality of the geometric set is derived from the value of the dimensionality of the first item in the set of elements within the geometric set. This is determined by the WHERE rule on the entity IfcGeometricSet. It should default to a value of 3 (for a 3 dimensional geometric set) |
IfcGeometricSet.Dim::IfcDimensionCount | |||
| Identify a shape representation for the point model.
Specific values of the identifier for the representation are given in exchange requirements. |
IfcShapeRepresentation.RepresentationIdentifier::IfcLabel | |||
| Identify a shape type for the point model.
Specific values of the type for the representation are given in exchange requirements. |
IfcShapeRepresentation.RepresentationType::IfcLabel | |||
| Assign the geometric set of points and break lines to the shape representation. | IfcShapeRepresentation.Items::IfcGeometricSet |
The following table describes modifications that enable an alternative (and recommended) way representing a point based surface model in IFC 2x3 and above
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Establish the annotation points Each annotation point is uniquely identified and established. |
||||
|
IfcAnnotation.GlobalId::IfcGloballyUniqueId | |||
|
IfcAnnotation.OwnerHistory::fp_apply_owner_history | |||
|
IfcAnnotation.Name::IfcLabel | |||
|
IfcAnnotation.Description::IfcText | |||
| Get the set of points | ||||
|
IfcAnnotation.Representation::fp_represent_annotation[point] | |||
|
IFC Entities Required
- IfcAnnotation (** IFC 2x3 and above only)
- IfcBoundedCurve
- IfcCartesianPoint
- IfcCurve
- IfcGeometricRepresentationItem
- IfcGeometricSet
- IfcPoint
- IfcPolyline
- IfcRepresentationItem
IFC Datatypes Required
- IfcDimensionCount
- IfcGeometricSetSelect
- IfcGloballyUniqueId (** IFC 2x3 and above only)
- IfcLabel
- IfcLengthMeasure
- IfcText (** IFC 2x3 and above only)
IFC Functions Required
- -
IDM Functional Parts Required
- fp_apply_owner_history (** IFC 2x3 and above only)
- fp_represent_annotation[point] (** IFC 2x3 and above only)
EXPRESS-G
The graphical notation corresponds to the IFC 2x2 release only at this point
EXPRESS Schema
The schema corresponds to the IFC 2x2 release only at this point
SCHEMA FP_REPRESENT_POINT_BASED_SURFACE_MODEL;
TYPE IfcDimensionCount = INTEGER;
WHERE
WR1 : { 0 < SELF <= 3 };
END_TYPE;
TYPE IfcLengthMeasure = REAL;
END_TYPE;
TYPE IfcGeometricSetSelect = SELECT
(IfcPoint,
IfcCurve);
END_TYPE;
ENTITY IfcGeometricRepresentationItem
ABSTRACT SUPERTYPE OF (ONEOF(IfcCurve, IfcPoint))
SUBTYPE OF(IfcRepresentationItem);
END_ENTITY;
ENTITY IfcRepresentationItem
ABSTRACT SUPERTYPE;
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 IfcPolyline
SUBTYPE OF(IfcBoundedCurve);
Points : LIST [2:?] OF IfcCartesianPoint;
WHERE
WR41 : SIZEOF(QUERY(Temp <* Points | Temp.Dim <> Points[1].Dim)) = 0;
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 IfcGeometricSet;
Elements : SET [1:?] OF IfcGeometricSetSelect;
DERIVE
Dim : IfcDimensionCount := Elements[1].Dim;
WHERE
WR21 : SIZEOF(QUERY(Temp <* Elements | Temp.Dim <> Elements[1].Dim)) = 0;
END_ENTITY;
END_SCHEMA;