You are here: FME Workbench > FME Architecture (Reference) > 3D Support > IFMESolids

IFMESolids

In FME, solids have two possible orientations, where the surface normals of each surface that comprise the solid either:

  1. Point out from the solid
  2. Point into the solid

Visually, the first case is the expected one in which the outside of the solid is seen, and the second case is equivalent to turning the solid inside-out, such that what is visible is the back of each surface. This may be useful for solids which are intended to be voids within a larger solid. Solids that contain surfaces inherit their orientation from the underlying surfaces.

IFMEBRepSolid

A solid is a solid volume in 3D space, defined by a collection of connected surfaces. The exterior surface is represented by an IFMECompositeSurface, with the additional requirement that this composite surface must be closed, in order to form a volume.

An IFMEBRepSolid can contain spatial voids. Each spatial void is represented by an IFMECompositeSurface, representing an interior surface. This definition is analogous to the inner boundaries that define donut holes.

In general, an IFMEBRepSolid must contain one exterior surface and zero or more interior surfaces.

Contains: IFMECompositeSurface (0..n)

Contained by: IFMECompositeSolid, IFMEMultiSolid, IFMECSGSolid

IFMEExtrusion

An extrusion is a solid volume in 3D space, defined by a planar face (IFMEFace) and an extrusion vector. This solid is defined by the prism generated by extruding the face in the direction and magnitude described by the extrusion vector.

For example, a triangular face, extruded in the direction of the surface normal of that face, yields an IFMEExtrusion that represents a triangular prism.

Contains: IFMEFace (1)

Contained by: IFMECompositeSolid, IFMEMultiSolid, IFMECSGSolid

IFMEBox

A box is a rectangular prism in 3D space. An IFMEBox is defined by a minimum corner and a maximum corner, but unlike IFMERectangularFace, these two coordinates must not share identical x-, y-, or z-values. The two corner points unambiguously represent a unique rectangular prism, in which all faces are parallel to the coordinate planes.

If the first point is the minimum point, then the surface normal points out from the box; otherwise, the box has been flipped inside-out and the surface normal points into the box.

With conjunction of a 4×4 transformation matrix, an IFMEBox can be used to represent boxes that are not parallel to the coordinate planes. This matrix can store affine transformations.

Contains: None

Contained by: IFMECompositeSolid, IFMEMultiSolid, IFMECSGSolid

IFMECSGSolid

A constructive solid geometry (CSG) solid is a solid volume in 3D space. These solids are defined by the resultant volume constructed by two operand solids, and a Boolean operator. The supported Boolean operators include union, intersection, and difference.

The following diagram shows a solid defined by the Boolean difference of a cube with a sphere.

 

An IFMECSGSolid supports multiple operations, such that a solid can be constructed from a tree of operators and operands. A example of such a tree is shown in the following diagram.

 

1Images originally from wikipedia.org.

Contains: IFMESimpleSurface (n), IFMECSGSolid (n)

Contained by: IFMECompositeSolid, IFMEMultiSolid, IFMECSGSolid

IFMECompositeSolid

A composite surface is a collection of connected solids. The components can be simple solids (boxes, boundary-representation solids, and extrusion solids), constructive solid geometry (CSG) solids, or other composite solids.

The topological requirement of a composite surface is that the collection must share faces, so that the collection can represent a contiguous solid.

Contains: IFMESolid (0..n)

Contained by: IFMECompositeSolid, IFMEMultiSolid

IFMEMultiSolid

A multi-solid is a collection of solids. These solids need not have any spatial or topological relationship between each other.

Contains: IFMESolid (0..n)

Contained by: None