Skip to main content

ifc_occurrence/table/
mod.rs

1//! The generated occurrence catalogue.
2//!
3//! Source: `references/ifc-spec/ifc4x3-add2/IFC4X3_ADD2.exp`, via
4//! `scripts/gen-occurrences.py`. Do not edit by hand.
5//!
6//! # Two rules, and why the second one needs the type catalogue
7//!
8//! `CorrectPredefinedType` is the familiar one: USERDEFINED
9//! without `ObjectType` names nothing.
10//!
11//! `CorrectTypeAssigned` is stronger and has no analogue on the
12//! type side. An occurrence may be typed by at most one type,
13//! and that type must be the one class the schema pairs with it:
14//! an `IfcPump` takes an `IfcPumpType` and nothing else. The
15//! pairing is a fact about the schema, so it is recorded here
16//! rather than left to the caller.
17
18/// One occurrence class: its slots, enum, and permitted type.
19#[derive(Debug, Clone, Copy, PartialEq, Eq)]
20pub struct Occurrence {
21    /// STEP type name, upper-case as stored.
22    pub type_name: &'static str,
23    /// Total attribute count, including inherited.
24    pub arity: usize,
25    /// Slot holding `PredefinedType`, or `None` when the class has none.
26    pub predefined_slot: Option<usize>,
27    /// Permitted `PredefinedType` tokens; empty when there is no enum.
28    pub members: &'static [&'static str],
29    /// The one type class `CorrectTypeAssigned` permits, if any.
30    pub type_class: Option<&'static str>,
31}
32
33mod part1;
34mod part2;
35mod part3;
36mod part4;
37mod part5;
38
39pub use part1::*;
40pub use part2::*;
41pub use part3::*;
42pub use part4::*;
43pub use part5::*;
44
45/// Every occurrence class in the catalogue.
46pub const ALL: &[Occurrence] = &[
47    IFCACTUATOR,
48    IFCAIRTERMINAL,
49    IFCAIRTERMINALBOX,
50    IFCAIRTOAIRHEATRECOVERY,
51    IFCALARM,
52    IFCAUDIOVISUALAPPLIANCE,
53    IFCBEAM,
54    IFCBEARING,
55    IFCBOILER,
56    IFCBOREHOLE,
57    IFCBUILDINGELEMENTPART,
58    IFCBUILDINGELEMENTPROXY,
59    IFCBUILTELEMENT,
60    IFCBURNER,
61    IFCCABLECARRIERFITTING,
62    IFCCABLECARRIERSEGMENT,
63    IFCCABLEFITTING,
64    IFCCABLESEGMENT,
65    IFCCAISSONFOUNDATION,
66    IFCCHILLER,
67    IFCCHIMNEY,
68    IFCCIVILELEMENT,
69    IFCCOIL,
70    IFCCOLUMN,
71    IFCCOMMUNICATIONSAPPLIANCE,
72    IFCCOMPRESSOR,
73    IFCCONDENSER,
74    IFCCONTROLLER,
75    IFCCONVEYORSEGMENT,
76    IFCCOOLEDBEAM,
77    IFCCOOLINGTOWER,
78    IFCCOURSE,
79    IFCCOVERING,
80    IFCCURTAINWALL,
81    IFCDAMPER,
82    IFCDEEPFOUNDATION,
83    IFCDISCRETEACCESSORY,
84    IFCDISTRIBUTIONBOARD,
85    IFCDISTRIBUTIONCHAMBERELEMENT,
86    IFCDISTRIBUTIONCONTROLELEMENT,
87    IFCDISTRIBUTIONFLOWELEMENT,
88    IFCDOOR,
89    IFCDUCTFITTING,
90    IFCDUCTSEGMENT,
91    IFCDUCTSILENCER,
92    IFCEARTHWORKSCUT,
93    IFCEARTHWORKSELEMENT,
94    IFCEARTHWORKSFILL,
95    IFCELECTRICAPPLIANCE,
96    IFCELECTRICDISTRIBUTIONBOARD,
97    IFCELECTRICFLOWSTORAGEDEVICE,
98    IFCELECTRICFLOWTREATMENTDEVICE,
99    IFCELECTRICGENERATOR,
100    IFCELECTRICMOTOR,
101    IFCELECTRICTIMECONTROL,
102    IFCELEMENTASSEMBLY,
103    IFCENGINE,
104    IFCEVAPORATIVECOOLER,
105    IFCEVAPORATOR,
106    IFCFAN,
107    IFCFASTENER,
108    IFCFILTER,
109    IFCFIRESUPPRESSIONTERMINAL,
110    IFCFLOWINSTRUMENT,
111    IFCFLOWMETER,
112    IFCFOOTING,
113    IFCFURNISHINGELEMENT,
114    IFCFURNITURE,
115    IFCGEOGRAPHICELEMENT,
116    IFCGEOMODEL,
117    IFCGEOSLICE,
118    IFCGEOTECHNICALSTRATUM,
119    IFCHEATEXCHANGER,
120    IFCHUMIDIFIER,
121    IFCIMPACTPROTECTIONDEVICE,
122    IFCINTERCEPTOR,
123    IFCJUNCTIONBOX,
124    IFCKERB,
125    IFCLAMP,
126    IFCLIGHTFIXTURE,
127    IFCLIQUIDTERMINAL,
128    IFCMECHANICALFASTENER,
129    IFCMEDICALDEVICE,
130    IFCMEMBER,
131    IFCMOBILETELECOMMUNICATIONSAPPLIANCE,
132    IFCMOORINGDEVICE,
133    IFCMOTORCONNECTION,
134    IFCNAVIGATIONELEMENT,
135    IFCOPENINGELEMENT,
136    IFCOUTLET,
137    IFCPAVEMENT,
138    IFCPILE,
139    IFCPIPEFITTING,
140    IFCPIPESEGMENT,
141    IFCPLATE,
142    IFCPROJECTIONELEMENT,
143    IFCPROTECTIVEDEVICE,
144    IFCPROTECTIVEDEVICETRIPPINGUNIT,
145    IFCPUMP,
146    IFCRAIL,
147    IFCRAILING,
148    IFCRAMP,
149    IFCRAMPFLIGHT,
150    IFCREINFORCEDSOIL,
151    IFCREINFORCINGBAR,
152    IFCREINFORCINGMESH,
153    IFCROOF,
154    IFCSANITARYTERMINAL,
155    IFCSENSOR,
156    IFCSHADINGDEVICE,
157    IFCSIGN,
158    IFCSIGNAL,
159    IFCSLAB,
160    IFCSOLARDEVICE,
161    IFCSPACEHEATER,
162    IFCSTACKTERMINAL,
163    IFCSTAIR,
164    IFCSTAIRFLIGHT,
165    IFCSURFACEFEATURE,
166    IFCSWITCHINGDEVICE,
167    IFCSYSTEMFURNITUREELEMENT,
168    IFCTANK,
169    IFCTENDON,
170    IFCTENDONANCHOR,
171    IFCTENDONCONDUIT,
172    IFCTRACKELEMENT,
173    IFCTRANSFORMER,
174    IFCTRANSPORTELEMENT,
175    IFCTUBEBUNDLE,
176    IFCUNITARYCONTROLELEMENT,
177    IFCUNITARYEQUIPMENT,
178    IFCVALVE,
179    IFCVEHICLE,
180    IFCVIBRATIONDAMPER,
181    IFCVIBRATIONISOLATOR,
182    IFCVIRTUALELEMENT,
183    IFCVOIDINGFEATURE,
184    IFCWALL,
185    IFCWALLSTANDARDCASE,
186    IFCWASTETERMINAL,
187    IFCWINDOW,
188];