IFC 4.3.x development

8.9.3.71 IfcSurfaceOfRevolution

8.9.3.71.1 Semantic definitions at the entity

The IfcSurfaceOfRevolution is a surface derived by rotating a curve about an axis.

NOTE  Definition according to ISO/CD 10303-42:1992
A surface of revolution is the surface obtained by rotating a curve one complete revolution about an axis. The data shall be interpreted as below.

The parameterization is as follows where the curve has a parameterization λ(u):

C = AxisPosition.Location
V = AxisPosition.Z

Image In order to produce a single-valued surface with a complete revolution, the curve shall be such that when expressed in a cylindrical coordinate system (r,φ ,z) centred at C with an axis V, no two distinct parametric points on the curve shall have the same values for (r, z). For a surface of revolution the parametric range is 0 < u < 360 degree. The parameterization range for v is defined by referenced curve.

NOTE  Entity adapted from surface_of_revolution defined in ISO 10303-42.

HISTORY  New entity in IFC2x.

Informal Propositions:

  1. The surface shall not self-intersect
  2. The swept curve shall not be coincident with the axis line for any finite part of its legth.

8.9.3.71.1 Attributes

# Attribute Type Description
IfcRepresentationItem
LayerAssignmentSET [0:1] OF IfcPresentationLayerAssignment FOR AssignedItemsAssignment of the representation item to a single or multiple layer(s). The LayerAssignments can override a LayerAssignments of the IfcRepresentation it is used within the list of Items.

> IFC2x3 CHANGE  The inverse attribute LayerAssignments has been added.

> IFC4 CHANGE  The inverse attribute LayerAssignment has been restricted to max 1. Upward compatibility for file based exchange is guaranteed.
StyledByItem SET [0:1] OF IfcStyledItem FOR Item Reference to the IfcStyledItem that provides presentation information to the representation, e.g. a curve style, including colour and thickness to a geometric curve.



> IFC2x3 CHANGE  The inverse attribute StyledByItem has been added.
IfcGeometricRepresentationItem
IfcSurface
Dim INVALID The space dimensionality of IfcSurface. It is always a three-dimensional geometric representation item.

> IFC4 CHANGE Derived attribute promoted from subtypes.
IfcSweptSurface
1 SweptCurve IfcProfileDef The curve to be swept in defining the surface. The curve is defined as a profile within the position coordinate system.
2 Position OPTIONAL IfcAxis2Placement3D Position coordinate system for the swept surface, provided by a profile definition within the XY plane of the Position coordinates. If not provided, the position of the profile being swept is determined by the object coordinate system. In this case, the swept surface is not repositioned.

> IFC4 CHANGE  The attribute has been changed to OPTIONAL with upward compatibility for file-based exchange.
IfcSurfaceOfRevolution
3 AxisPosition IfcAxis1Placement A point on the axis of revolution and the direction of the axis of revolution.
AxisLine INVALID The line coinciding with the axis of revolution.

8.9.3.71.2 Entity inheritance

dot_inheritance IfcSurfaceOfRevolution IfcSurfaceOfRevolution IfcSweptSurface IfcSweptSurface IfcSurfaceOfRevolution->IfcSweptSurface IfcSurfaceOfLinearExtrusion IfcSurfaceOfLinearExtrusion IfcSurfaceOfLinearExtrusion->IfcSweptSurface IfcSurface IfcSurface IfcSweptSurface->IfcSurface IfcSurface_children 3 more... IfcSurface_children->IfcSurface IfcGeometricRepresentationItem IfcGeometricRepresentationItem IfcSurface->IfcGeometricRepresentationItem IfcGeometricRepresentationItem_children 24 more... IfcGeometricRepresentationItem_children->IfcGeometricRepresentationItem IfcRepresentationItem IfcRepresentationItem IfcGeometricRepresentationItem->IfcRepresentationItem IfcRepresentationItem_children 3 more... IfcRepresentationItem_children->IfcRepresentationItem

8.9.3.71.3 Formal representations

ENTITY IfcSurfaceOfRevolution
 SUBTYPE OF (IfcSweptSurface);
	AxisPosition : IfcAxis1Placement;
 DERIVE
	 AxisLine : IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(AxisPosition.Location, 
  IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(AxisPosition.Z,1.0));
END_ENTITY;