#[non_exhaustive]pub enum ProfileParameters {
Show 21 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] 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]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.