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.