pub struct Relationships {
pub spatial_children: HashMap<u32, Vec<u32>>,
pub project: Option<u32>,
pub type_of: HashMap<u32, u32>,
}Expand description
Relationships resolved from one pass over the file.
Fields§
§spatial_children: HashMap<u32, Vec<u32>>Spatial parent to its children, from IfcRelAggregates and
IfcRelContainedInSpatialStructure together.
Both are edges in the same tree: aggregation composes the spatial structure (project to site to building to storey), containment attaches elements to the storey that holds them. A consumer walking a hierarchy wants them merged, which is why they are not reported separately.
project: Option<u32>The first IfcProject, which is the root of that tree. None for a file
that declares none, which is malformed but occurs.
type_of: HashMap<u32, u32>An occurrence to the type object it is defined by, from
IfcRelDefinesByType.
One type defines many occurrences, so the map is keyed by occurrence: it answers “what is this?” for a product in hand, which is the direction a consumer asks in.
Trait Implementations§
Source§impl Clone for Relationships
impl Clone for Relationships
Source§fn clone(&self) -> Relationships
fn clone(&self) -> Relationships
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Relationships
impl Debug for Relationships
Source§impl Default for Relationships
impl Default for Relationships
Source§fn default() -> Relationships
fn default() -> Relationships
Auto Trait Implementations§
impl Freeze for Relationships
impl RefUnwindSafe for Relationships
impl Send for Relationships
impl Sync for Relationships
impl Unpin for Relationships
impl UnwindSafe for Relationships
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.