Table of Contents

Class IfcProductGeometry

Namespace
GeometryHelper.IfcConvert.Models
Assembly
GeometryHelper.IfcConvert.dll

Represents the complete converted geometry of an IFC product. Holds both closed solid bodies and open surface meshes, along with placement and bounding box. Does not expose any xBIM types in its public API.

public sealed class IfcProductGeometry
Inheritance
IfcProductGeometry
Inherited Members

Constructors

IfcProductGeometry(string, string, string, IEnumerable<GeoSolid3>, IEnumerable<GeoFace3>, GeoTransform3, string, IEnumerable<string>)

Initializes a new instance of IfcProductGeometry with explicit identifiers and geometry.

Properties

BoundingBox

Gets the total bounding box enclosing all converted solids and open surfaces.

GlobalId

Gets the GlobalId (GUID) of the IFC product.

HasOpenSurfaces

Gets whether this product has open surface meshes.

HasSolids

Gets whether this product has at least one closed solid body.

HasWarnings

Gets whether any problem was met while converting this product. See Warnings.

IfcType

Gets the IFC entity type name (e.g. "IfcWall", "IfcBeam", "IfcColumn").

IsEmpty

Gets whether this product has no solid bodies and no surface meshes.

Name

Gets the name of the IFC product.

OpenSurfaces

Gets any open surface faces that could not form a closed solid (e.g. thin shells, surface models).

Placement

Gets the transformation applied to this product.

Solids

Gets the sequence of closed solid bodies converted for this product.

Tag

Gets the user-defined tag of the IFC product, if available.

TotalVolume

Gets the sum of volumes of all converted solid bodies.

Warnings

Gets the problems met while converting this product: representation items that failed or produced no solid, faces that had to be left out, solids that are not closed, openings that could not be cut. Messages about a representation item start with its STEP entity label (e.g. "#123 IfcExtrudedAreaSolid: ...") so it can be found in the IFC file. Empty when the conversion was clean.

Methods

ToString()

Returns a formatted string summarizing the product geometry.

TransformBy(GeoTransform3, Tolerance?)

Returns a copy of this geometry carried by a transformation: bodies, open surfaces and placement, with the same GlobalId, name, type, tag and warnings. This instance and its bodies are left unchanged.

Use it rather than TransformBy(GeoTransform3) on each body. Conversion builds faces with a finer area threshold than Global (EqualPoint squared rather than EqualVector), so the thin sliver faces a triangulated or cut body can carry are valid here, while TransformBy(GeoTransform3), given a transformation that stretches or shears, checks every face against Global again and throws on the whole body; a move that keeps every length it carries over as it is. This method rebuilds the faces with the tolerance of the conversion, keeps a face that lands a rounding off flat as triangles on its own corners, and leaves out only what the transformation itself collapses, saying so in Warnings.