1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
//! Structured IFC value containers indexed by position or time.
//!
//! A table indexes values by row and column; a time series indexes them
//! by time. Neither carries domain meaning of its own: both bottom out in
//! lists of `IfcValue`, and both appear side by side in the schema's own
//! `IfcMetricValueSelect` and `IfcObjectReferenceSelect`.
//!
//! # Cells are the caller's to type
//!
//! A cell is an `IfcValue`: a SELECT over measure types. `4.2` and
//! `IFCLENGTHMEASURE(4.2)` are different files, and only the second can be
//! converted or compared dimensionally. This crate never invents a measure;
//! the caller passes a `Value` and chooses.
//!
//! # Derived attributes are not stored
//!
//! `IfcTable` DERIVEs three counts from its rows. They are derived under new
//! names rather than redeclaring an inherited attribute, so they occupy no
//! instance slot: nothing is written for them, not even `*`, and they are
//! never computed into the file.
//!
//! # Reading back
//!
//! [`TabularView`] borrows a model and returns [`Table`] and
//! [`TimeSeries`] views under a declared IFC4 or IFC4X3 schema. A read
//! reports every malformed slot and WR1/WR2 violation as a
//! [`TabularIssue`] rather than dropping it.
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;
pub use ;