Skip to main content

ProfileParameters

Enum ProfileParameters 

Source
#[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 enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.
§

#[non_exhaustive]
Rectangle

IfcRectangleProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§x_dim: f64

XDim.

§y_dim: f64

YDim.

§

#[non_exhaustive]
RoundedRectangle

IfcRoundedRectangleProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§x_dim: f64

XDim.

§y_dim: f64

YDim.

§rounding_radius: f64

RoundingRadius.

§

#[non_exhaustive]
RectangleHollow

IfcRectangleHollowProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§x_dim: f64

XDim.

§y_dim: f64

YDim.

§wall_thickness: f64

WallThickness.

§inner_fillet_radius: Option<f64>

InnerFilletRadius.

§outer_fillet_radius: Option<f64>

OuterFilletRadius.

§

#[non_exhaustive]
Circle

IfcCircleProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§radius: f64

Radius.

§

#[non_exhaustive]
CircleHollow

IfcCircleHollowProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§radius: f64

Radius, to the outside of the wall.

§wall_thickness: f64

WallThickness.

§

#[non_exhaustive]
Ellipse

IfcEllipseProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§semi_axis_1: f64

SemiAxis1, along the position’s X axis.

§semi_axis_2: f64

SemiAxis2, along the position’s Y axis.

§

#[non_exhaustive]
IShape

IfcIShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§overall_width: f64

OverallWidth.

§overall_depth: f64

OverallDepth.

§web_thickness: f64

WebThickness.

§flange_thickness: f64

FlangeThickness.

§fillet_radius: Option<f64>

FilletRadius.

§flange_edge_radius: Option<f64>

FlangeEdgeRadius.

§flange_slope: Option<f64>

FlangeSlope, in radians.

§

#[non_exhaustive]
AsymmetricIShape

IfcAsymmetricIShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§bottom_flange_width: f64

BottomFlangeWidth (OverallWidth in IFC2X3).

§overall_depth: f64

OverallDepth.

§web_thickness: f64

WebThickness.

§bottom_flange_thickness: f64

BottomFlangeThickness (FlangeThickness in IFC2X3).

§bottom_flange_fillet_radius: Option<f64>

BottomFlangeFilletRadius (FilletRadius in IFC2X3).

§top_flange_width: f64

TopFlangeWidth.

§top_flange_thickness: Option<f64>

TopFlangeThickness; defaults to the bottom flange thickness.

§top_flange_fillet_radius: Option<f64>

TopFlangeFilletRadius.

§bottom_flange_edge_radius: Option<f64>

BottomFlangeEdgeRadius; not declared in IFC2X3.

§bottom_flange_slope: Option<f64>

BottomFlangeSlope, in radians; not declared in IFC2X3.

§top_flange_edge_radius: Option<f64>

TopFlangeEdgeRadius; not declared in IFC2X3.

§top_flange_slope: Option<f64>

TopFlangeSlope, in radians; not declared in IFC2X3.

§

#[non_exhaustive]
LShape

IfcLShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§depth: f64

Depth.

§width: Option<f64>

Width; defaults to Depth (an equal-leg angle).

§thickness: f64

Thickness.

§fillet_radius: Option<f64>

FilletRadius.

§edge_radius: Option<f64>

EdgeRadius.

§leg_slope: Option<f64>

LegSlope, in radians.

§

#[non_exhaustive]
TShape

IfcTShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§depth: f64

Depth.

§flange_width: f64

FlangeWidth.

§web_thickness: f64

WebThickness.

§flange_thickness: f64

FlangeThickness.

§fillet_radius: Option<f64>

FilletRadius.

§flange_edge_radius: Option<f64>

FlangeEdgeRadius.

§web_edge_radius: Option<f64>

WebEdgeRadius.

§web_slope: Option<f64>

WebSlope, in radians.

§flange_slope: Option<f64>

FlangeSlope, in radians.

§

#[non_exhaustive]
UShape

IfcUShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§depth: f64

Depth.

§flange_width: f64

FlangeWidth.

§web_thickness: f64

WebThickness.

§flange_thickness: f64

FlangeThickness.

§fillet_radius: Option<f64>

FilletRadius.

§edge_radius: Option<f64>

EdgeRadius.

§flange_slope: Option<f64>

FlangeSlope, in radians.

§

#[non_exhaustive]
CShape

IfcCShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§depth: f64

Depth.

§width: f64

Width.

§wall_thickness: f64

WallThickness.

§girth: f64

Girth: the returned lip.

§internal_fillet_radius: Option<f64>

InternalFilletRadius.

§

#[non_exhaustive]
ZShape

IfcZShapeProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§depth: f64

Depth.

§flange_width: f64

FlangeWidth.

§web_thickness: f64

WebThickness.

§flange_thickness: f64

FlangeThickness.

§fillet_radius: Option<f64>

FilletRadius.

§edge_radius: Option<f64>

EdgeRadius.

§

#[non_exhaustive]
Trapezium

IfcTrapeziumProfileDef.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§bottom_x_dim: f64

BottomXDim.

§top_x_dim: f64

TopXDim.

§y_dim: f64

YDim.

§top_x_offset: f64

TopXOffset; may be negative.

§

#[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 enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§outer_curve: EntityId

OuterCurve.

§

#[non_exhaustive]
ArbitraryWithVoids

IfcArbitraryProfileDefWithVoids.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§outer_curve: EntityId

OuterCurve.

§inner_curves: Vec<EntityId>

InnerCurves, one per void.

§

#[non_exhaustive]
ArbitraryOpen

IfcArbitraryOpenProfileDef: an open curve. Bounds no area.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§curve: EntityId

Curve.

§

#[non_exhaustive]
CenterLine

IfcCenterLineProfileDef: a path thickened symmetrically.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§curve: EntityId

Curve, the centre line.

§thickness: f64

Thickness: the FULL width across the path.

§

#[non_exhaustive]
Composite

IfcCompositeProfileDef: an ordered set of member profiles.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§profiles: Vec<ProfileDescription>

Profiles, in authored order.

§label: Option<String>

Label.

§

#[non_exhaustive]
Derived

IfcDerivedProfileDef: a parent profile under a 2D operator.

Fields

This variant is marked as non-exhaustive
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§parent: Box<ProfileDescription>

ParentProfile.

§operator: ProfileOperator

Operator, with its translation in metres.

§label: Option<String>

Label.

§

#[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
Non-exhaustive enum variants could have additional fields added in future. Therefore, non-exhaustive enum variants cannot be constructed in external crates and cannot be matched against.
§parent: Box<ProfileDescription>

ParentProfile.

§label: Option<String>

Label.

Trait Implementations§

Source§

impl Clone for ProfileParameters

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for ProfileParameters

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl PartialEq for ProfileParameters

Source§

fn eq(&self, other: &Self) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for ProfileParameters

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
where ST: ?Sized, DT: ?Sized,

Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> Read<Exclusive, BecauseExclusive> for T
where T: ?Sized,

Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.