Annotate Geometry
Overview
Annotation can provide for geometry that can have globally unique identification and that can also have attached property sets. This can be useful in a number of cases where geometric representation items are used to describe particular ideas within a model that require such identification and that may have additional properties but for which it may not be appropriate at this time to include fully semantically defined entities.
Operationally, annotation geometry provides similar features to those found in generalised CAD systems whereby a geometric item is qualified by extended data (as opposed to the more general semantic definition within IFC that defines an entity first and considers shape representation to be a property).
In IFC, annotation geometry can provide specific 0D, 1D, 2D, and 3D geometric items as annotation points, curves, surfaces and volumes. Guidance on the usage of each of these types is shown below. More specific detail of values that should be assigned to attributes and property sets that may be attached to annotation geometry are given in the exchange requirements that use the services of this functional part. Within the exchange requirements, reference to particular dimensional usage of annotation geometry is given as a parameter to the functional part request as:
- fp_annotate_geometry[representation] where representation stands for the specific geometric representation used and identified from other functional parts
Examples of the usage of annotation geometry that may be further elaborated in exchange requirements include:
- Datum points for sites, buildings etc.
- Survey points
- Lines of constant value for contours
- Sightlines
Results
Representation of annotation geometry that is qualified through the provision of a globally unique identifier and to which property sets can be attached.
| Description | Entity/Pset/Functional Part | MAN | REC | OPT |
|---|---|---|---|---|
| Define the placement for the annotation. Placement may be specifically referenced or it may be considered in terms of the coordinates of the underlying geometric representation |
fp_place_object | |
||
| Define the particular geometric representation item that is to form the basis of the annotation geometry. | |
|||
| For a 0D geometric representation that is a point. | fp_represent_cartesian_point | |||
| For a 1D geometric representation that is a line | fp_represent_line | |||
| For a 1D geometric representation that is a polyline | fp_represent_polyline | |||
| For a 1D geometric representation that is a trimmed curve | fp_represent_trimmed_curve | |||
| For a 1D geometric representation that is a composite curve | fp_represent_composite_curve | |||
| For a 1D geometric representation that is a b sline curve | fp_represent_b_spline_curve | |||
| For a 2D geometric representation that is a face based surface model | fp_represent_face_based_surface_model | |||
| For a 2D geometric representation that is a shell based surface model | fp_represent_shell_based_surface_model | |||
| For a 3D geometric representation that is a facetted boundary representation. | Fp_represent_facetted_brep_solid_model | |||
| Assign the geometric representation item as the shape representation. Note that for annotation geometry, the set of representation items that form the shape representation shall contain only one member. |
IfcShapeRepresentation.RepresentationItems::<representation as selected> | |
||
| Set the geometric representation context of the shape representation. The representation context identifier may be specified. Then representation context type should be specified according to the circumstances in which the functional part is being used. Context type should be established by agreement between implementers. |
IfcRepresentation.ContextOfItems::fp_geometric_representation_context | |
||
| Set the representation identifier for the annotation For annotation geometry, the value of the shape representation identifier must be asserted and should be set to 'Annotation' |
IfcShapeRepresentation.RepresentationIdentifier where RepresentationIdentifier = 'Annotation' |
|
||
| Set the representation type for the annotation The type of the shape representation must be asserted and should be set according to the type of geometric representation used. These are further defined in exchange requirements |
IfcShapeRepresentation.RepresentationType | |
||
| Assign the shape representation as a product representation. Note that for annotation geometry, the set of representations that form the product representation shall contain only one member. |
IfcProductRepresentation.Representations | |
||
| Additional information for the product representation may be given through the name and description attributes. | IfcProductRepresentataion.Name IfcProductRepresentation.Description |
|
||
| Assign the geometric representation item to an annotation occurrence | IfcAnnotation.Representation ::IfcProductRepresentation | |
||
| Identify the object type to be used for the annotation. Specific values for the object type attribute are specified in particular exchange requirements. Note that this value is used to denote the semantic meaning of the annotation geometry. |
IfcAnnotation.ObjectType | |
||
| Apply the owner history information | IfcAnnotation.OwnerHistory::fp_apply_owner_history | |
||
| An informative name and description may be given to the annotation if required. This can be valuable in further qualifying the role and purpose of the annotation geometry. |
IfcAnnotation.Name IfcAnnotation.Description |
|
||
| Note that annotation may be related to a particular spatial structure Although reference to this functional part is shown as optional, it is expected that it will be asserted in most cases. |
fp_contains_in_spatial_structure | |
IFC Entities Required
- IfcAnnotation
- IfcGeometricRepresentationItem
- IfcObject
- IfcObjectDefinition
- IfcProduct
- IfcProductRepresentation
- IfcRepresentationItem
- IfcRepresentation
- IfcRoot
- IfcShapeRepresentation
IFC Datatypes Required
- IfcGloballyUniqueId
- IfcLabel
- IfcText
IFC Functions Required
- -
IDM Functional Parts Required
- fp_apply_owner_history
- fp_place_object
- fp_repesent_b_spline_curve
- fp_represent_cartesian_point
- fp_represent_composite_curve
- fp_represent_face_based_surface_model
- fp_represent_faceted_brep_solid_model
- fp_represent_line
- fp_represent_polyline
- fp_represent_shell_based_surface_model
- fp_represent_trimmed_curve
- fp_set_geometric_representation_context
EXPRESS-G
EXPRESS Schema
SCHEMA FP_ANNOTATE_GEOMETRY;
TYPE IfcGloballyUniqueId = STRING (22) FIXED;
END_TYPE;
TYPE IfcLabel = STRING;
END_TYPE;
TYPE IfcText = STRING;
END_TYPE;
ENTITY IfcGeometricRepresentationItem
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcRepresentationItem);
END_ENTITY;
ENTITY IfcRepresentationItem
ABSTRACT SUPERTYPE;
END_ENTITY;
ENTITY IfcRepresentation;
RepresentationIdentifier : OPTIONAL IfcLabel;
RepresentationType : OPTIONAL IfcLabel;
SET \[1:?\] OF IfcRepresentationItem;
ContextOfItems : fp_set_geometric_representation_context;
INVERSE
OfProductRepresentation : SET \[0:1\] OF IfcProductRepresentation FOR Representations;
END_ENTITY;
ENTITY IfcShapeRepresentation
SUBTYPE OF(IfcRepresentation);
WHERE
WR21 : 'IFC2X2_FINAL.IFCGEOMETRICREPRESENTATIONCONTEXT'
IN TYPEOF(SELF\IfcRepresentation.ContextOfItems);
WR22 : SIZEOF(QUERY(temp <\* Items \|
('IFC2X2_FINAL.IFCTOPOLOGICALREPRESENTATIONITEM' IN TYPEOF(temp))
AND (NOT(SIZEOF(
['IFC2X2_FINAL.IFCVERTEXPOINT',
'IFC2X2_FINAL.IFCEDGECURVE',
'IFC2X2_FINAL.IFCFACESURFACE'\] * TYPEOF(temp)) = 1))
)) = 0;
WR23 : EXISTS(SELF\IfcRepresentation.RepresentationType);
WR24 : IfcShapeRepresentationTypes(SELF\IfcRepresentation.RepresentationType, SELF\IfcRepresentation.Items);
END_ENTITY;
ENTITY fp_set_geometric_representation_context;
INVERSE
RepresentationsInContext : SET OF IfcRepresentation FOR ContextOfItems;
END_ENTITY;
ENTITY IfcProductRepresentation;
: OPTIONAL IfcLabel;
: OPTIONAL IfcText;
Representations : LIST \[1:?\] OF IfcRepresentation;
END_ENTITY;
ENTITY IfcProduct
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObject);
Representation : OPTIONAL IfcProductRepresentation;
WHERE
WR1 : (EXISTS(Representation) AND EXISTS(ObjectPlacement))
OR (EXISTS(Representation) AND
(NOT('IFC2X2_FINAL.IFCPRODUCTDEFINITIONSHAPE' IN TYPEOF(Representation))))
OR (NOT(EXISTS(Representation)));
END_ENTITY;
ENTITY IfcObject
ABSTRACT SUPERTYPE
SUBTYPE OF(IfcObjectDefinition);
ObjectType : OPTIONAL IfcLabel;
WHERE
WR1 : SIZEOF(QUERY(temp <\* IsDefinedBy \| 'IFC2X2_FINAL.IFCRELDEFINESBYTYPE' IN TYPEOF(temp))) <= 1;
END_ENTITY;
ENTITY IfcObjectDefinition
SUBTYPE OF(IfcRoot);
END_ENTITY;
ENTITY IfcRoot
ABSTRACT SUPERTYPE;
GlobalId : IfcGloballyUniqueId;
Name : OPTIONAL IfcLabel;
Description : OPTIONAL IfcText;
OwnerHistory : fp_apply_owner_history;
UNIQUE
UR1 : GlobalId;
END_ENTITY;
ENTITY fp_apply_owner_history;
END_ENTITY;
ENTITY IfcAnnotation
SUBTYPE OF(IfcProduct);
END_ENTITY;
ENTITY fp_place_object;
END_ENTITY;
ENTITY fp_represent_line;
END_ENTITY;
ENTITY fp_represent_polyline;
END_ENTITY;
ENTITY fp_represent_trimmed_curve;
END_ENTITY;
ENTITY fp_represent_composite_curve;
END_ENTITY;
ENTITY fp_represent_b_spline_curve;
END_ENTITY;
ENTITY fp_represent_cartesian_point;
END_ENTITY;
ENTITY fp_represent_face_based_surface_model;
END_ENTITY;
ENTITY fp_represent_shell_based_surface_model;
END_ENTITY;
ENTITY fp_represent_faceted_brep_solid_model;
END_ENTITY;
ENTITY fp_contains_in_spatial_structure;
END_ENTITY;
END_SCHEMA;