pub enum Derivation {
ContainedInSpace {
horizontal_metres: f64,
vertical_metres: f64,
},
AdjacentSpace {
reach_metres: f64,
},
OverlappingGroupSpace {
minimum_ratio: f64,
vertical_metres: f64,
},
SpansLevel {
overlap_metres: f64,
},
Intersects,
}Expand description
A derived relationship and the tolerances it was asked with.
Variants§
ContainedInSpace
axioval:derived.contained-in-space: an element to the spaces whose
body contains its reference point, or, when none does, to the one
nearest space whose surface lies within horizontal metres in plan
and vertical metres in elevation of it. Both default to zero, which
asks for containment alone.
Fields
AdjacentSpace
axioval:derived.adjacent-space: a door, window or opening to the
spaces a probe first enters on each side of it within reach metres
(default 1). A side that enters no space is outside.
OverlappingGroupSpace
axioval:derived.overlapping-group-space: a space to every larger
space whose footprint covers at least ratio of its own (default
0.5) and whose vertical extent lies within vertical metres of its
own (default 0, touching or overlapping).
Fields
SpansLevel
axioval:derived.spans-level: a space to every level (storey)
whose height band its vertical extent reaches at least overlap
metres into (default 1), or at least half its own height, so a space
counts in its own storey and a two-storey atrium in both. A level’s
band runs from its elevation up to the next level’s.
Intersects
axioval:derived.intersects: an element to every object of the
request’s universe whose body shares volume with its own, such as a
duct to the beam or wall it passes through with no void modelled.
It takes no parameters and runs both ways.
Bodies that only touch share no volume. A pair the geometry cannot decide (an unmeasured body, a tessellation within its chord deviation of the other body, two open surfaces) refuses the answer.
Implementations§
Source§impl Derivation
impl Derivation
Sourcepub fn parse(
relationship: &SemanticRelationship,
) -> Result<Option<Self>, RelationshipSelectionError>
pub fn parse( relationship: &SemanticRelationship, ) -> Result<Option<Self>, RelationshipSelectionError>
The derivation a relationship identity names, None for an identity
outside DERIVED_RELATIONSHIP_PREFIX.
§Errors
RelationshipSelectionError::InvalidRequest for an unknown
derivation or a malformed, unknown or repeated parameter.
Trait Implementations§
Source§impl Clone for Derivation
impl Clone for Derivation
impl Copy for Derivation
Source§impl Debug for Derivation
impl Debug for Derivation
Source§impl Display for Derivation
The canonical identity: the name and every parameter, defaults included.
impl Display for Derivation
The canonical identity: the name and every parameter, defaults included.