pub struct ClassificationView<'m> { /* private fields */ }Expand description
Entry point for classification/document/library queries over a borrowed Model.
Every projection the view hands out reads against the release the model’s
header declares (see crate::classification_schema).
Implementations§
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn classification_assignments(
self,
) -> impl Iterator<Item = ClassificationAssignment<'m>> + 'm
pub fn classification_assignments( self, ) -> impl Iterator<Item = ClassificationAssignment<'m>> + 'm
All IfcRelAssociatesClassification instances in the model.
Sourcepub fn classification_assignments_for(
self,
object: EntityId,
) -> ClassificationResult<Vec<ClassificationAssignment<'m>>>
pub fn classification_assignments_for( self, object: EntityId, ) -> ClassificationResult<Vec<ClassificationAssignment<'m>>>
Classification assignments naming object among their RelatedObjects, with the relating classification checked against IfcClassificationSelect; fails if object is unknown or a reference does not resolve.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn document_assignments(
self,
) -> impl Iterator<Item = DocumentAssignment<'m>> + 'm
pub fn document_assignments( self, ) -> impl Iterator<Item = DocumentAssignment<'m>> + 'm
All IfcRelAssociatesDocument instances in the model.
Sourcepub fn document_assignments_for(
self,
object: EntityId,
) -> ClassificationResult<Vec<DocumentAssignment<'m>>>
pub fn document_assignments_for( self, object: EntityId, ) -> ClassificationResult<Vec<DocumentAssignment<'m>>>
Document assignments naming object among their RelatedObjects, with the relating document checked against IfcDocumentSelect; fails if object is unknown or a reference does not resolve.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn library_assignments(
self,
) -> impl Iterator<Item = LibraryAssignment<'m>> + 'm
pub fn library_assignments( self, ) -> impl Iterator<Item = LibraryAssignment<'m>> + 'm
All IfcRelAssociatesLibrary instances in the model.
Sourcepub fn library_assignments_for(
self,
object: EntityId,
) -> ClassificationResult<Vec<LibraryAssignment<'m>>>
pub fn library_assignments_for( self, object: EntityId, ) -> ClassificationResult<Vec<LibraryAssignment<'m>>>
Library assignments naming object among their RelatedObjects, with the relating library checked against IfcLibrarySelect; fails if object is unknown or a reference does not resolve.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn notations(self) -> impl Iterator<Item = ClassificationNotation<'m>> + 'm
pub fn notations(self) -> impl Iterator<Item = ClassificationNotation<'m>> + 'm
All IfcClassificationNotation instances in the model (IFC2X3 only).
Sourcepub fn notation(
self,
id: EntityId,
) -> ClassificationResult<ClassificationNotation<'m>>
pub fn notation( self, id: EntityId, ) -> ClassificationResult<ClassificationNotation<'m>>
Strictly project the IfcClassificationNotation id.
§Errors
UnknownEntity, WrongEntityType, or NotInSchema when the bound
release (IFC4) does not define notations.
Sourcepub fn notation_values(self, id: EntityId) -> ClassificationResult<Vec<&'m str>>
pub fn notation_values(self, id: EntityId) -> ClassificationResult<Vec<&'m str>>
The notation’s code: each facet’s NotationValue, in file order.
§Errors
Those of Self::notation, plus a dangling facet, a facet that is not
an IfcClassificationNotationFacet, or a facet without a value.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn references(
self,
) -> impl Iterator<Item = ClassificationReference<'m>> + 'm
pub fn references( self, ) -> impl Iterator<Item = ClassificationReference<'m>> + 'm
All IfcClassificationReference instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn systems(self) -> impl Iterator<Item = ClassificationSystem<'m>> + 'm
pub fn systems(self) -> impl Iterator<Item = ClassificationSystem<'m>> + 'm
All IfcClassification instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn documents(self) -> impl Iterator<Item = DocumentInformation<'m>> + 'm
pub fn documents(self) -> impl Iterator<Item = DocumentInformation<'m>> + 'm
All IfcDocumentInformation instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn document_references(
self,
) -> impl Iterator<Item = DocumentReference<'m>> + 'm
pub fn document_references( self, ) -> impl Iterator<Item = DocumentReference<'m>> + 'm
All IfcDocumentReference instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn external_reference_relationship(
self,
id: EntityId,
) -> ClassificationResult<ExternalReferenceRelationship<'m>>
pub fn external_reference_relationship( self, id: EntityId, ) -> ClassificationResult<ExternalReferenceRelationship<'m>>
Strictly project one generic external-reference relationship.
Sourcepub fn external_reference_relationships(
self,
) -> impl Iterator<Item = ExternalReferenceRelationship<'m>> + 'm
pub fn external_reference_relationships( self, ) -> impl Iterator<Item = ExternalReferenceRelationship<'m>> + 'm
All generic external-reference relationships in deterministic model order.
Sourcepub fn external_references_for(
self,
resource: EntityId,
) -> ClassificationResult<Vec<ExternalReferenceRelationship<'m>>>
pub fn external_references_for( self, resource: EntityId, ) -> ClassificationResult<Vec<ExternalReferenceRelationship<'m>>>
Valid external-reference relationships naming a particular resource.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn libraries(self) -> impl Iterator<Item = LibraryInformation<'m>> + 'm
pub fn libraries(self) -> impl Iterator<Item = LibraryInformation<'m>> + 'm
All IfcLibraryInformation instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn library_references(
self,
) -> impl Iterator<Item = LibraryReference<'m>> + 'm
pub fn library_references( self, ) -> impl Iterator<Item = LibraryReference<'m>> + 'm
All IfcLibraryReference instances in the model.
Source§impl<'m> ClassificationView<'m>
impl<'m> ClassificationView<'m>
Sourcepub fn hierarchy_from(
self,
leaf: EntityId,
budget: Budget,
) -> ClassificationResult<ClassificationHierarchy<'m>>
pub fn hierarchy_from( self, leaf: EntityId, budget: Budget, ) -> ClassificationResult<ClassificationHierarchy<'m>>
Walk ReferencedSource links from leaf up to its root, stopping at the enclosing IfcClassification if present; fails on a cycle, a dangling or mistyped source, or if the walk exceeds budget.
Every distinct entity resolved counts against budget.max_nodes,
including the final IfcClassification, and every ReferencedSource
edge followed against budget.max_depth. Reaching an entity already on
the path is reported as ClassificationError::Cycle, never as a
budget error.
Sourcepub fn children_of(
self,
source: EntityId,
) -> ClassificationResult<Vec<ClassificationReference<'m>>>
pub fn children_of( self, source: EntityId, ) -> ClassificationResult<Vec<ClassificationReference<'m>>>
IfcClassificationReference instances whose ReferencedSource is source, sorted by id; fails if source is unknown or is not itself a classification or reference.
Sourcepub fn effective_classifications(
self,
object: EntityId,
) -> ClassificationResult<EffectiveClassifications<'m>>
pub fn effective_classifications( self, object: EntityId, ) -> ClassificationResult<EffectiveClassifications<'m>>
Direct classification assignments on object, plus any inherited from its unambiguous IfcRelDefinesByType type; fails if object is unknown, has an assignment with an invalid relating classification, or is related to more than one type.