Skip to main content

Module authoring

Module authoring 

Source
Expand description

Author IFC geometry entities from plain numbers.

The write direction of this bridge (ADR 0011). Everything here is kernel-free: arguments are f64, [f64; 3], and index buffers, no signature names an axiolid type, and the module compiles with --no-default-features. That is what lets an application compute with CGAL, OCCT, or Axiolid and still author through one API – the kernel is a source of numbers, never a dependency of the writer.

IFC geometry entities are exact descriptions, not evaluations, so writing them needs no evaluator. A cut is stored as an unevaluated IfcBooleanResult: this module never tessellates, matching the standing invariant of the read direction.

Slot positions are not restated here. Each writer indexes the same pub(crate) mod slot constants its reader uses, so a layout correction lands once and serves both directions.

Values follow the declared attribute type (#200): a defined type such as IfcParameterValue is written bare, and only a SELECT slot carries the typed parameter of its member. Where a slot changes kind between releases (the directrix sweeps’ trims), a *_in writer takes the model and binds its declared release.

Structs§

AsymmetricIDims
The required dimensions of an asymmetric I-section.
AsymmetricIExtras
The optional attributes an asymmetric I-section may carry.
CShapeDims
The required dimensions of a C-section.
FlangedDims
The required dimensions of a T, U or Z section.
IShapeDims
The four required dimensions of an I-section.
IShapeExtras
The optional radii and slope an I-section may carry.
KnotVector
The knot vector of a B-spline curve.
LShapeExtras
The optional radii and slope an L-section may carry.
PolynomialCoefficients
The per-axis coefficient lists of an polynomial_curve.
ProfileHeader
The two attributes every parameterized profile carries.
RectangleHollowDims
The required dimensions of a rectangular hollow section.
RectangleHollowFillets
The two optional fillet radii of a rectangular hollow section.
SurfaceBasis
Everything a B-spline surface states apart from its control grid.
SurfaceKnots
A knot vector along one surface direction.
SweepTrim
Optional trim parameters shared by the directrix-driven sweeps.
TShapeExtras
The optional radii and slopes a T-section may carry.
Transform
The axes and scale shared by every transformation operator.
TrapeziumDims
The required dimensions of a trapezium.
TriangulatedExtras
The optional parts of an IfcTriangulatedFaceSet.
UShapeExtras
The optional radii and slope a U-section (channel) may carry.
ZShapeExtras
The optional radii a Z-section may carry.

Enums§

BareTopology
Stage a bare IfcLoop or IfcVertex.
BrepKind
Which brep flavour to author.
ConnectionKind
Which connection geometry form to author.
CurveMeasure
A length along a curve, or a parameter in its own space.
OnSurfaceKind
Which composite-curve-on-surface flavour to author.
PolyCurveSegment
One member of an IfcSegmentIndexSelect.
ProfileType
IfcProfileTypeEnum: whether the profile bounds an area or is a bare curve.
SectionedKind
Which sectioned entity to stage.
ShellKind
Which shell kind a face set forms.
SpiralKind
Which spiral to stage, with its defining terms.
SurfaceCurveKind
Which surface curve flavour to author.
SurfaceCurveRepresentation
Which representation of a surface curve is authoritative.

Functions§

arbitrary_closed_profile
Stage an IfcArbitraryClosedProfileDef from an outer curve.
arbitrary_open_profile
Stage an IfcArbitraryOpenProfileDef.
arbitrary_profile_with_voids
Stage an IfcArbitraryProfileDefWithVoids.
asymmetric_i_shape
Stage an IfcAsymmetricIShapeProfileDef.
axis1_placement
Stage an IfcAxis1Placement: a point and an optional axis direction.
axis2_placement_2d
Stage an IfcAxis2Placement2D.
axis2_placement_3d
Stage an IfcAxis2Placement3D.
bare_topology
Stage an attribute-less topological item.
block
Stage an IfcBlock: a box with a corner at position.
boolean_clipping_result
Stage an IfcBooleanClippingResult.
boolean_result
Stage an IfcBooleanResult.
bounding_box
Stage an IfcBoundingBox.
boxed_half_space
Stage an IfcBoxedHalfSpace.
bspline_curve_with_knots
Stage an IfcBSplineCurveWithKnots.
bspline_surface_with_knots
Stage an IfcBSplineSurfaceWithKnots.
c_shape
Stage an IfcCShapeProfileDef.
cartesian_point
Stage an IfcCartesianPoint.
cartesian_point_list_2d
Stage an IfcCartesianPointList2D.
cartesian_point_list_3d
Stage an IfcCartesianPointList3D.
center_line_profile
Stage an IfcCenterLineProfileDef.
circle
Stage an IfcCircle.
circle_hollow_profile
Stage an IfcCircleHollowProfileDef.
circle_profile
Stage an IfcCircleProfileDef.
composite_curve
Stage an IfcCompositeCurve over existing segments.
composite_curve_on_surface
Stage a composite curve lying on a surface.
composite_curve_segment
Stage an IfcCompositeCurveSegment.
composite_profile
Stage an IfcCompositeProfileDef.
cone
Stage an IfcRightCircularCone.
connection_geometry
Stage a connection geometry.
connection_point_eccentricity
Stage an IfcConnectionPointEccentricity.
csg_solid
Stage an IfcCsgSolid over a tree root.
curve_bounded_plane
Stage an IfcCurveBoundedPlane: a plane cut to an outline.
curve_bounded_surface
Stage an IfcCurveBoundedSurface.
curve_segment
Stage an IfcCurveSegment.
cylinder
Stage an IfcRightCircularCylinder.
cylindrical_surface
Stage an IfcCylindricalSurface.
derived_profile
Stage an IfcDerivedProfileDef: a parent profile plus a transform.
direction
Stage an IfcDirection.
directrix_derived_reference_swept_area_solid
Stage an IfcDirectrixDerivedReferenceSweptAreaSolid.
edge
Stage an IfcEdge between two vertices.
edge_curve
Stage an IfcEdgeCurve: an edge with curve geometry.
edge_loop
Stage an IfcEdgeLoop over oriented edges.
ellipse
Stage an IfcEllipse.
ellipse_profile
Stage an IfcEllipseProfileDef.
extruded_area_solid
Stage an IfcExtrudedAreaSolid.
extruded_area_solid_tapered
Stage an IfcExtrudedAreaSolidTapered.
face
Stage an IfcFace from its bounds.
face_based_surface_model
Stage an IfcFaceBasedSurfaceModel.
face_bound
Stage an IfcFaceBound.
face_outer_bound
Stage an IfcFaceOuterBound: the bound enclosing the face’s area.
face_surface
Stage an IfcFaceSurface or IfcAdvancedFace.
fixed_reference_swept_area_solid
Stage an IfcFixedReferenceSweptAreaSolid, in the IFC4X3 form.
fixed_reference_swept_area_solid_in
Stage an IfcFixedReferenceSweptAreaSolid in model’s declared release.
geometric_set
Stage an IfcGeometricSet or IfcGeometricCurveSet.
gradient_curve
Stage an IfcGradientCurve.
grid
Stage an IfcGrid: the U/V/W axis system a plan is dimensioned against.
grid_axis
Stage an IfcGridAxis.
grid_placement
Stage an IfcGridPlacement: a placement located on a grid.
grid_with_owner_history
grid in the model’s declared release, with a caller-supplied IfcOwnerHistory, which IFC2X3 requires on every IfcRoot.
half_space
Stage an IfcHalfSpaceSolid: everything on one side of a surface.
i_shape
Stage an IfcIShapeProfileDef.
indexed_poly_curve
Stage an IfcIndexedPolyCurve over a point list.
indexed_polygonal_face
Stage an IfcIndexedPolygonalFace.
indexed_polygonal_face_with_voids
Stage an IfcIndexedPolygonalFaceWithVoids.
l_shape
Stage an IfcLShapeProfileDef.
line
Stage an IfcLine through a point along a vector.
local_placement
Stage an IfcLocalPlacement.
manifold_solid_brep
Stage a manifold solid brep, with or without voids.
mapped_item
Stage an IfcMappedItem: one placed instance of a mapped shape.
mirrored_profile
Stage an IfcMirroredProfileDef.
offset_curve_2d
Stage an IfcOffsetCurve2D.
offset_curve_3d
Stage an IfcOffsetCurve3D.
offset_curve_by_distances
Stage an IfcOffsetCurveByDistances.
open_cross_profile
Stage an IfcOpenCrossProfileDef.
oriented_edge
Stage an IfcOrientedEdge over an existing edge.
path
Stage an IfcPath: an ordered run of oriented edges.
pcurve
Stage an IfcPcurve: a curve in a surface’s parameter space.
plane
Stage an IfcPlane.
point_on_curve
Stage an IfcPointOnCurve.
point_on_surface
Stage an IfcPointOnSurface.
poly_loop
Stage an IfcPolyLoop through an ordered point list.
polygonal_bounded_half_space
Stage an IfcPolygonalBoundedHalfSpace.
polygonal_face_set
Stage an IfcPolygonalFaceSet over existing faces.
polyline
Stage an IfcPolyline.
polynomial_curve
Stage an IfcPolynomialCurve.
profile_def
Stage a bare IfcProfileDef.
rational_bspline_curve_with_knots
Stage an IfcRationalBSplineCurveWithKnots.
rational_bspline_surface_with_knots
Stage an IfcRationalBSplineSurfaceWithKnots.
rectangle_hollow_profile
Stage an IfcRectangleHollowProfileDef.
rectangle_profile
Stage an IfcRectangleProfileDef.
rectangular_pyramid
Stage an IfcRectangularPyramid.
rectangular_trimmed_surface
Stage an IfcRectangularTrimmedSurface.
reparametrised_composite_curve_segment
Stage an IfcReparametrisedCompositeCurveSegment.
representation_map
Stage an IfcRepresentationMap: a reusable shape and its origin.
revolved_area_solid
Stage an IfcRevolvedAreaSolid.
revolved_area_solid_tapered
Stage an IfcRevolvedAreaSolidTapered.
rounded_rectangle_profile
Stage an IfcRoundedRectangleProfileDef.
sectioned
Stage an IfcSectionedSolidHorizontal or IfcSectionedSurface.
sectioned_spine
Stage an IfcSectionedSpine.
segmented_reference_curve
Stage an IfcSegmentedReferenceCurve.
shape_aspect
Stage an IfcShapeAspect: a named part of a product shape.
shell
Stage a shell over a set of faces.
shell_based_surface_model
Stage an IfcShellBasedSurfaceModel.
sphere
Stage an IfcSphere.
spherical_surface
Stage an IfcSphericalSurface.
spiral
Stage a transition spiral.
subedge
Stage an IfcSubedge.
surface_curve
Stage a surface curve.
surface_curve_swept_area_solid
Stage an IfcSurfaceCurveSweptAreaSolid, in the IFC4X3 form.
surface_curve_swept_area_solid_in
Stage an IfcSurfaceCurveSweptAreaSolid in model’s declared release.
surface_of_linear_extrusion
Stage an IfcSurfaceOfLinearExtrusion: a surface, not a solid.
surface_of_revolution
Stage an IfcSurfaceOfRevolution.
swept_disk_solid
Stage an IfcSweptDiskSolid: a disk swept along a curve.
swept_disk_solid_polygonal
Stage an IfcSweptDiskSolidPolygonal.
t_shape
Stage an IfcTShapeProfileDef.
topology_representation
Stage an IfcTopologyRepresentation.
toroidal_surface
Stage an IfcToroidalSurface.
transformation_operator_2d
Stage an IfcCartesianTransformationOperator2D.
transformation_operator_2d_non_uniform
Stage an IfcCartesianTransformationOperator2DnonUniform.
transformation_operator_3d
Stage an IfcCartesianTransformationOperator3D.
transformation_operator_3d_non_uniform
Stage an IfcCartesianTransformationOperator3DnonUniform.
trapezium_profile
Stage an IfcTrapeziumProfileDef.
triangulated_face_set
Stage an IfcTriangulatedFaceSet over an existing point list.
triangulated_irregular_network
Stage an IfcTriangulatedIrregularNetwork.
trimmed_curve
Stage an IfcTrimmedCurve.
u_shape
Stage an IfcUShapeProfileDef.
vector
Stage an IfcVector: a direction with a magnitude.
vertex_loop
Stage an IfcVertexLoop: a degenerate loop at a single vertex.
vertex_point
Stage an IfcVertexPoint.
virtual_grid_intersection
Stage an IfcVirtualGridIntersection.
z_shape
Stage an IfcZShapeProfileDef.