buildingSMART / IFC4.3.x-development

Repository to collect updates to the IFC4.3 Specification
Other
168 stars 86 forks source link

Flow segment should be abstract #871

Open atomczak opened 4 months ago

atomczak commented 4 months ago

According to the textual description, the IfcFlowSegment should be abstract entity but isn't: https://ifc43-docs.standards.buildingsmart.org/IFC/RELEASE/IFC4x3/HTML/lexical/IfcFlowSegment.htm

evandroAlfieri commented 4 months ago

After a quick text search, it seems the case for 8 entities in total. https://github.com/search?type=code&auto_enroll=true&q=repo%3AbuildingSMART%2FIFC4.3.x-development+will+become+abstract

  1. IfcFlowFitting
  2. IfcFlowSegment
  3. IfcFlowTerminal
  4. IfcFlowController
  5. IfcFlowMovingDevice
  6. IfcFlowStorageDevice
  7. IfcFlowTreatmentDevice
  8. IfcEnergyConversionDevice
TLiebich commented 4 months ago

correct - it was a decision in IFC4 development timeframe to not make those entities ABSTRACT for backward compatibility reasons.

Background: In IFC2x3 the IfcObject specialization tree stopped at this level and only the IfcTypeObject tree went down to IfcPumpType, etc. Therefore the instantiation on the occurrence side was down at the e.g., IfcFlowTerminal level. When making it ABSTRACT in IFC4, all that data would have been incompatible.

atomczak commented 4 months ago

So, can we remove those annotations from IFC4.3.2+?