pub struct ExportModel {
pub entities: Vec<EntityRow>,
pub units: UnitScales,
}Expand description
The full extracted model.
Fields§
§entities: Vec<EntityRow>§units: UnitScalesThe model’s unit scales, resolved from its IFCPROJECT.
Every value EntityRow carries is in the file’s OWN units: the
properties, the quantities, and the schema-declared attributes alike. A
millimetre model yields a Qto_WallBaseQuantities.Length (a quantity)
of 3000, not 3, and an IfcReinforcingBar.NominalDiameter (an
attribute) of 29, not 0.029.
The geometry exporters normalise to metres; this path deliberately does
not, because a property value is not always a length and coercing one
would be guessing. That leaves the caller needing the scale to interpret
anything dimensional, and until now it had no way to obtain it: the
resolver was internal and ExportModel carried only entities. A consumer
writing quantities alongside exported geometry therefore had a silent
1000x mismatch with no value on hand to detect it with.
Trait Implementations§
Source§impl Clone for ExportModel
impl Clone for ExportModel
Source§fn clone(&self) -> ExportModel
fn clone(&self) -> ExportModel
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ExportModel
impl Debug for ExportModel
Source§impl PartialEq for ExportModel
impl PartialEq for ExportModel
impl StructuralPartialEq for ExportModel
Auto Trait Implementations§
impl Freeze for ExportModel
impl RefUnwindSafe for ExportModel
impl Send for ExportModel
impl Sync for ExportModel
impl Unpin for ExportModel
impl UnwindSafe for ExportModel
Blanket Implementations§
§impl<U> As for U
impl<U> As for U
§fn as_<T>(self) -> Twhere
T: CastFrom<U>,
fn as_<T>(self) -> Twhere
T: CastFrom<U>,
self to type T. The semantics of numeric casting with the as operator are followed, so <T as As>::as_::<U> can be used in the same way as T as U for numeric conversions. Read moreSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<T> Pointable for T
impl<T> Pointable for T
§impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
impl<SS, SP> SupersetOf<SS> for SPwhere
SS: SubsetOf<SP>,
§fn to_subset(&self) -> Option<SS>
fn to_subset(&self) -> Option<SS>
self from the equivalent element of its
superset. Read more§fn is_in_subset(&self) -> bool
fn is_in_subset(&self) -> bool
self is actually part of its subset T (and can be converted to it).§fn to_subset_unchecked(&self) -> SS
fn to_subset_unchecked(&self) -> SS
self.to_subset but without any property checks. Always succeeds.§fn from_subset(element: &SS) -> SP
fn from_subset(element: &SS) -> SP
self to the equivalent element of its superset.