Construct a geometry extraction from an IFC step model and conway model
The ConwayGeometry instance to use for geometry operations.
The IfcStepModel instance representing the IFC model.
Whether to limit the depth of CSG operations.
The maximum depth for CSG operations when limit CSG depth is used, or the maximum level for CSG memoization if it is not.
Whether to enable low memory mode for geometry extraction.
ReadonlycsgReadonlycurvesReadonlygeometryCount of newly-extracted representation items by IFC entity type name (e.g. IFCEXTRUDEDAREASOLID, IFCFACETEDBREP, IFCBOOLEANCLIPPINGRESULT) — the geometry breakdown for the load report (issue #301 follow-up). Copied into Statistics by the loader/proxies after extraction.
ReadonlymaterialsReadonlymodelThe IfcStepModel instance representing the IFC model.
ReadonlysceneReadonlyvoidReadonlyvoidOptionalmaterialOverrideId: numberExtract a placement, adding it to the scene.
The transform to extract.
The parent's local ID.
Extract a placement (no memoization/scene creation)
The transform to extract.
The parent's local ID.
{true} Only extract, don't memoize and add to the scene
The extracted placement.
Extract a placement, adding it to the scene.
The transform to extract.
The parent's local ID.
Extract a placement (no memoization/scene creation)
The transform to extract.
The parent's local ID.
{true} Only extract, don't memoize and add to the scene
The extracted placement.
Extract a placement, adding it to the scene.
The transform to extract.
The parent's local ID.
Extract a placement (no memoization/scene creation)
The transform to extract.
The parent's local ID.
{true} Only extract, don't memoize and add to the scene
The extracted placement.
Extract geometry for an IfcBlock primitive by constructing a rectangular extruded solid.
The IfcBlock instance to extract.
Whether the geometry is temporary.
Is the geometry part of a relative void subtraction?
Extract a boolean operand from a boolean result.
The operand to extract.
OptionalrepresentationItem: IfcRepresentationItemExctact a BSpline Curve
The bspline curve, potentially with knots/rational.
OptionalparametersTrimmedCurve: ParamsGetIfcTrimmedCurveThe constructed curve object.
Extracts a 2D Cartesian transformation operator from an IFC Cartesian transformation operator definition. The transformation can be uniform or non-uniform.
The IFC Cartesian transformation operator definition, which can be either uniform or non-uniform.
The resulting transformation operator parameters.
Extracts the curve for a circle with a hollow hole from an IFC circle hollow profile definition.
The IFC circle hollow profile definition to extract the curve from.
A CurveObject representing the hollow circle curve.
Extracts a C-shape curve from an IFC C-shape profile definition.
The IFC C-shape profile definition to extract the curve from.
A CurveObject representing the C-shape curve, or undefined if not extractable.
Extracts the curve for an ellipse from an IFC ellipse profile definition.
The IFC ellipse profile definition to extract the curve from.
A CurveObject representing the ellipse curve, or undefined if not extractable.
Extract the geometry data from the IFC
Synchronous driver over extractIFCGeometryDataIncremental — see extractIFCGeometryDataAsync for the cooperative (repaint-friendly) variant.
OptionalonProgress: CountProgressCallbackOptional per-product progress callback (completed, total). The heavy per-product work (tessellation, CSG, weld) happens inside single wasm calls, so ticks land between products — a hang localizes to one product. Issue #301.
Cooperative variant of extractIFCGeometryData: identical extraction (same generator body), but periodically awaits a macrotask between products so the event loop can run — browsers repaint progress UI and watchdog timers fire during a large extraction. Issue #301 §2.
OptionalonProgress: CountProgressCallbackOptional per-product progress callback (completed, total).
Minimum ms between event-loop yields.
Extract a IfcLine curve
IfcLine
sense agreement
is curve an edge curve
OptionalparametersTrimmedCurve: ParamsGetIfcTrimmedCurvetrimmed curve parameters
The constructed curve object.
Extracts an I-shape curve from an IFC I-shape profile definition.
The IFC I-shape profile definition to extract the curve from.
A CurveObject representing the I-shape curve, or undefined if not extractable.
Extracts an L-shape curve from an IFC L-shape profile definition.
The IFC L-shape profile definition to extract the curve from.
A CurveObject representing the L-shape curve, or undefined if not extractable.
Extract a mapped item to add its transform to instance an item.
The mapped item to extract.
Extract one product's geometry into the scene: placement, material / style extraction, representation items (including mapped items) and rel-void application. The deduplicated body of the whole-model walk's two product loops (plain products + rel-aggregates), shared with the per-product demand path.
The product to extract.
OptionalprecomputedRelVoids: [NativeVectorGeometry, number[]]Optional caller-owned rel-voids (the rel-aggregates "master" case): when supplied the caller retains ownership and this method does not delete the mesh vector; when omitted, voids are extracted per product and freed here.
Extract one product's geometry into the scene by local ID — the demand path's entry (Phase B2). Requires prepareDemandExtraction (or a prior whole-model walk) so the shared maps exist.
Note: products that are targets of IfcRelAggregates whose relating object carries rel-voids get those master voids only on the whole-model walk; the demand path extracts the product's own voids. The parity gate for this seam is the whole-model digest CI.
The product's local ID.
True if the local ID was an IfcProduct and was extracted; false if it wasn't a product.
Extract a canonical profile from a profile definition.
The profile definition to extract from.
The extracted profile, or undefined if one cannot be extracted.
Extract a representation item, including its geometry if necessary, adding it to the current scene walk.
Note - memoized result for instancing.
The representation to extract from.
OptionalowningElementLocalID: numberExtracts a T-shape curve from an IFC T-shape profile definition.
The IFC T-shape profile definition to extract the curve from.
A CurveObject representing the T-shape curve, or undefined if not extractable.
Extracts a U-shape curve from an IFC U-shape profile definition.
The IFC U-shape profile definition to extract the curve from.
A CurveObject representing the U-shape curve, or undefined if not extractable.
Extracts a Z-shape curve from an IFC Z-shape profile definition.
The IFC Z-shape profile definition to extract the curve from.
A CurveObject representing the Z-shape curve, or undefined if not extractable.
Efficiently flatten the points into a Float64Array while skipping consecutive points with the same localID.
Array of IfcCartesianPoint
Number of coordinates per point (e.g. 3 for x,y,z)
Flatten the points into WASM memory (skipping consecutive duplicates). Reuses an existing WASM buffer if provided and large enough.
Array of IfcCartesianPoint
Number of coordinates per point (e.g. 3 for x,y,z)
OptionalexistingPtr: number(Optional) Pointer to an existing WASM buffer
OptionalexistingCapacity: number(Optional) Capacity of that buffer in Float64 elements
pointer, length used, total capacity
Free the native indexed polygon face.
The native item to free.
OptionalrepresentationItem: IfcRepresentationItemOptionalrepresentationItem: IfcRepresentationItemOptionalinitializeSize: numberCreate a native vector of indexed polygonal faces uint vector.
OptionalinitialSize: numbernumber - initial size of the vector (optional)
Create a native vector of segments.
Optionalinitialize: numbernumber - initial size of the vector (optional)
Create a native 32bit uint vector.
OptionalinitialSize: numbernumber - initial size of the vector (optional)
Create a native 32bit size_t vector.
OptionalinitialSize: numbernumber - initial size of the vector (optional)
Create a native vector of geometry collections.
A newly initialised native vector of geometry collections
OptionalinitialSize: numbernumber - initial size of the vector (optional)
OptionalinitialSize: numbernumber - initial size of the vector (optional)
OptionalinitialSize: numbernumber - initial size of the vector (optional)
OptionalinitialSize: numbernumber - initial size of the vector (optional)
Create a native vector profile to pass across the boundary.
OptionalinitialSize: numbernumber - initial size of the vector (optional)
Checks if a given point is not present in a collection of points.
The point to check for presence.
A collection of points to compare against.
A boolean indicating whether the point is not present in the collection.
Prepare for per-product demand extraction (Phase B2) without running the whole-model walk: populates the shared extraction maps so extractProductGeometryByLocalID can extract any single product. Idempotent; the whole-model walk shares the same preparation.
Staticextract
Handles Geometry data extraction from a populated IfcStepModel Can export to OBJ, GLTF (Draco), GLB (Draco)