Data types
From the Rail project, suggested by @BenzclyZhang
Description of the proposal:
There are seven simple data types in EXPRESS as listed.
- NUMBER
- REAL
- INTEGER
- LOGICAL
- BOOLEAN
- STRING
- BINARY
All Simple data types defined in EXPRESS are converted to defined UML Primitive data types with the same names.
Remarks:
- Perhaps should consider to map them to predefined standard UML Primitive data types. However, BINARY, NUMBER and LOGICAL do not have equivalents.
- As suggested by ISO 10303-25, LOGICAL can be mapped to a UML Enumeration data type with three Enumeration Items: false, true and unknown.
- NUMBER can be mapped to Real, same as Real in EXPRESS. But do we really need to use NUMBER in IFC? NUMBER is the underlying data type of two Defined data types: TYPE IfcCountMeasure = NUMBER; END_TYPE; TYPE IfcNumericMeasure = NUMBER; END_TYPE;
Can REAL be used in these two places instead?
Describe how it contributes to the objectives set in https://github.com/buildingSMART/NextGen-IFC/wiki/Towards-a-technology-independent-IFC: It makes IFC more generic usable in UML and other languages without having strange hacks.
What do we win: Faster adoption of IFC
What do we loose:
Schema impact: Change data types
Instance model impact:
Backwards compatible: no
Automatic migration possible: yes
Additional implications: ?
Strong consensus and agreement
In most cases LOGICAL can be mapped to OPTIONAL BOOLEAN yielding the same ternary structure.