Skip to main content

ifc_resource/
usage.rs

1//! Resource time, quantity and levelling.
2//!
3//! ## Internal split
4//!
5//! - `time.rs`: usage time.
6//! - `quantity.rs`: usage quantities.
7
8mod quantity;
9mod time;
10
11use ifc_model::EntityId;
12
13use crate::error::ResourceResult;
14use crate::view::ResourceView;
15
16pub use quantity::{ComplexQuantity, SimpleQuantity, SimpleQuantityValue};
17pub use time::ResourceTime;
18
19impl<'m, 's> ResourceView<'m, 's> {
20    /// Projects an `IfcPhysicalSimpleQuantity` by entity id.
21    pub fn simple_quantity(&self, id: EntityId) -> ResourceResult<SimpleQuantity<'m, 's>> {
22        SimpleQuantity::from_record(self.record(id, "IfcPhysicalSimpleQuantity")?)
23    }
24
25    /// Projects an `IfcPhysicalComplexQuantity` by entity id.
26    pub fn complex_quantity(&self, id: EntityId) -> ResourceResult<ComplexQuantity<'m, 's>> {
27        ComplexQuantity::from_record(self.record(id, "IfcPhysicalComplexQuantity")?)
28    }
29}