#[non_exhaustive]pub enum ProfileParameters {
Show 22 variants
#[non_exhaustive] Rectangle {
x_dim: f64,
y_dim: f64,
},
#[non_exhaustive] RoundedRectangle {
x_dim: f64,
y_dim: f64,
rounding_radius: f64,
},
#[non_exhaustive] RectangleHollow {
x_dim: f64,
y_dim: f64,
wall_thickness: f64,
inner_fillet_radius: Option<f64>,
outer_fillet_radius: Option<f64>,
},
#[non_exhaustive] Circle {
radius: f64,
},
#[non_exhaustive] CircleHollow {
radius: f64,
wall_thickness: f64,
},
#[non_exhaustive] Ellipse {
semi_axis_1: f64,
semi_axis_2: f64,
},
#[non_exhaustive] IShape {
overall_width: f64,
overall_depth: f64,
web_thickness: f64,
flange_thickness: f64,
fillet_radius: Option<f64>,
flange_edge_radius: Option<f64>,
flange_slope: Option<f64>,
},
#[non_exhaustive] AsymmetricIShape {
bottom_flange_width: f64,
overall_depth: f64,
web_thickness: f64,
bottom_flange_thickness: f64,
bottom_flange_fillet_radius: Option<f64>,
top_flange_width: f64,
top_flange_thickness: Option<f64>,
top_flange_fillet_radius: Option<f64>,
bottom_flange_edge_radius: Option<f64>,
bottom_flange_slope: Option<f64>,
top_flange_edge_radius: Option<f64>,
top_flange_slope: Option<f64>,
},
#[non_exhaustive] LShape {
depth: f64,
width: Option<f64>,
thickness: f64,
fillet_radius: Option<f64>,
edge_radius: Option<f64>,
leg_slope: Option<f64>,
},
#[non_exhaustive] TShape {
depth: f64,
flange_width: f64,
web_thickness: f64,
flange_thickness: f64,
fillet_radius: Option<f64>,
flange_edge_radius: Option<f64>,
web_edge_radius: Option<f64>,
web_slope: Option<f64>,
flange_slope: Option<f64>,
},
#[non_exhaustive] UShape {
depth: f64,
flange_width: f64,
web_thickness: f64,
flange_thickness: f64,
fillet_radius: Option<f64>,
edge_radius: Option<f64>,
flange_slope: Option<f64>,
},
#[non_exhaustive] CShape {
depth: f64,
width: f64,
wall_thickness: f64,
girth: f64,
internal_fillet_radius: Option<f64>,
},
#[non_exhaustive] ZShape {
depth: f64,
flange_width: f64,
web_thickness: f64,
flange_thickness: f64,
fillet_radius: Option<f64>,
edge_radius: Option<f64>,
},
#[non_exhaustive] Trapezium {
bottom_x_dim: f64,
top_x_dim: f64,
y_dim: f64,
top_x_offset: f64,
},
#[non_exhaustive] ArbitraryClosed {
outer_curve: EntityId,
},
#[non_exhaustive] ArbitraryWithVoids {
outer_curve: EntityId,
inner_curves: Vec<EntityId>,
},
#[non_exhaustive] ArbitraryOpen {
curve: EntityId,
},
#[non_exhaustive] OpenCross {
horizontal_widths: bool,
widths: Vec<f64>,
slopes: Vec<f64>,
tags: Option<Vec<String>>,
offset_point: Option<[f64; 2]>,
},
#[non_exhaustive] CenterLine {
curve: EntityId,
thickness: f64,
},
#[non_exhaustive] Composite {
profiles: Vec<ProfileDescription>,
label: Option<String>,
},
#[non_exhaustive] Derived {
parent: Box<ProfileDescription>,
operator: ProfileOperator,
label: Option<String>,
},
#[non_exhaustive] Mirrored {
parent: Box<ProfileDescription>,
label: Option<String>,
},
}Expand description
The parameters of one profile family, in metres and radians.
Names follow the IFC attributes in snake case. Variants are
#[non_exhaustive], so a match must end in ..; a future attribute can be
added without breaking a consumer.
Variants (Non-exhaustive)§
This enum is marked as non-exhaustive
#[non_exhaustive]Rectangle
IfcRectangleProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]RoundedRectangle
IfcRoundedRectangleProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]RectangleHollow
IfcRectangleHollowProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]Circle
IfcCircleProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]CircleHollow
IfcCircleHollowProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]Ellipse
IfcEllipseProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]IShape
IfcIShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]AsymmetricIShape
IfcAsymmetricIShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]LShape
IfcLShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]TShape
IfcTShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]UShape
IfcUShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]CShape
IfcCShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ZShape
IfcZShapeProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]Trapezium
IfcTrapeziumProfileDef.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ArbitraryClosed
IfcArbitraryClosedProfileDef: an area bounded by a curve.
The boundary is reported by reference; reading its geometry is a curve question, not a profile one.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ArbitraryWithVoids
IfcArbitraryProfileDefWithVoids.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]ArbitraryOpen
IfcArbitraryOpenProfileDef: an open curve. Bounds no area.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]OpenCross
IfcOpenCrossProfileDef (IFC4X3): an open chain of straight segments,
each a width and a slope, starting at offset_point. Bounds no area.
The values are the authored ones in SI units; the lowering derives the chain’s vertices from them and documents that construction.
Fields
This variant is marked as non-exhaustive
horizontal_widths: boolHorizontalWidths: true when each width is the horizontal run
of its segment, false when it is the length along the slope.
Tags, one per point (one more than there are segments), when
authored. They pair points across consecutive sections of a
sectioned sweep and do not change this profile’s shape.
#[non_exhaustive]CenterLine
IfcCenterLineProfileDef: a path thickened symmetrically.
Fields
This variant is marked as non-exhaustive
#[non_exhaustive]Composite
IfcCompositeProfileDef: an ordered set of member profiles.
Fields
This variant is marked as non-exhaustive
profiles: Vec<ProfileDescription>Profiles, in authored order.
#[non_exhaustive]Derived
IfcDerivedProfileDef: a parent profile under a 2D operator.
Fields
This variant is marked as non-exhaustive
parent: Box<ProfileDescription>ParentProfile.
operator: ProfileOperatorOperator, with its translation in metres.
#[non_exhaustive]Mirrored
IfcMirroredProfileDef: the parent mirrored about its local Y axis.
The schema derives the operator, so the file carries none; the mirror is implied by the type alone.
Fields
This variant is marked as non-exhaustive
parent: Box<ProfileDescription>ParentProfile.