IfcSurfaceOfRevolution

Definition from ISO/CD 10303-42:1992: A surface of revolution (IfcSurfaceOfRevolution) 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 l(u):

> > C = AxisPosition.Location
> > V = AxisPosition.Z

In order to produce a single-value surface the a complete revolution, the curve shall be such that when expressed in a cylindrical coordinate system 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: Corresponding STEP entity: surface_of_revolution. Please refer to ISO/IS 10303-42:1994, p.76 for the final definition of the formal standard.

> HISTORY: New entity in IFC Release 2x.

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.

EXPRESS specification:

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;

Attribute definitions:

AxisPosition | : | A point on the axis of revolution and the direction of the axis of revolution.
AxisLine | : | The line coinciding with the axis of revolution.

Inheritance graph

ENTITY IfcSurfaceOfRevolution;
ENTITY IfcRepresentationItem;
INVERSE
LayerAssignments | : | SET OF IfcPresentationLayerAssignment FOR AssignedItems;
StyledByItem | : | SET [0:1] OF IfcStyledItem FOR Item;
ENTITY IfcGeometricRepresentationItem;
ENTITY IfcSurface;
ENTITY IfcSweptSurface;
SweptCurve | : | IfcProfileDef;
Position | : | IfcAxis2Placement3D;
DERIVE
Dim | : | IfcDimensionCount := Position.Dim;
ENTITY IfcSurfaceOfRevolution;
AxisPosition | : | IfcAxis1Placement;
DERIVE
AxisLine | : | IfcLine := IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcCurve() || IfcLine(AxisPosition.Location, IfcRepresentationItem() || IfcGeometricRepresentationItem () || IfcVector(AxisPosition.Z,1.0));
END_ENTITY;