IFC4.3.x-development
IFC4.3.x-development copied to clipboard
Potential deprecation of IfcLogical
IfcLogical as a data type presents a few issues:
- Complexity of serialisation: many serialisations understand booleans, but few understand logical. This prevents IFC being easier to express (ahahah get it) in other serisalisations.
- Ambiguity of null state. What's the difference between null and unknown?
- Sometimes abused to provided two bits of information in a single field (database design 101, 1 field = 1 value), like in IfcMaterialLayer.
Thoughts to deprecate and change to optional IfcBoolean?
I vaguely recall that it was maintained in some places for STEP compatibility, but not sure if that is still a priority, especially if NULL is equivalent to UNKNOWN.
Well, tristate logic is fairly common ground in some domains, but I agree that our use of it in IFC is very inconsistent and of questionable value. I can support either way. Either apply it consistently and semantically sound or remove and where needed emulate with optional boolean.