buildingSMART / IDS

Computer interpretable (XML) standard to define Information Delivery Specifications for BIM (mainly used for IFC)
Other
167 stars 52 forks source link

IFC 4x3 Version conformity #237

Closed arishinsemen closed 4 months ago

arishinsemen commented 4 months ago

Look at https://standards.buildingsmart.org/IFC/RELEASE/IFC4_3/HTML/IFC4X3_ADD2.exp Official schema name "SCHEMA IFC4X3_ADD2;"

Will the schema be renamed after ISO certification? If not, would it be correct to change the xsd schema from IFC4X3 to IFC4X3_ADD2?

image

Moult commented 4 months ago

+1 to rename it, so it'll match the schema identifier inside IFC SPF files.

berlotti commented 4 months ago

If 4.3 gets a rename, then so should IFC 4 and 2x3....

Moult commented 4 months ago

IFC2X3 and IFC4 don't need to be renamed because those are actually the schema identifiers used for the IFC2X3 and IFC4. IFC4X3 is the first where it started to become more strict I believe.

andyward commented 4 months ago

Wasn't this discussed in #217? I thought it was suggested that at least from an authoring standpoint, that IDS would not want or need to capture precise IFC versions (including Addendums etc. )

In 'Semver' terms IDS targets Major/Minor versions of IFC and treats all 'Patch' versions as irrelevant. IFC4x3_ADD2 is just a patch of earlier IFC4X3 pre-releases, in the same way IFC4 ADD2 TC1 is a patch of IFC4, right?

i.e. there's got to be some mapping in the IDS implementations, so feels like we should keep the version choice simple and leave the mapping to implementors?

arishinsemen commented 4 months ago

The formal name of the schema (the one in the EXPRESS specification and in the SPF files) is a very important. In previous versions, the name in EXPRESS did not change after any minor changes (ADD,TC). Hence there was confusion for some time with SPF files, but everyone got used to it - we use the official ISO standard. Why this policy changed is an open question (don't ask). Hence the question, which was never answered in the previous issue. Just variants.

Statement:

  1. In this listing (in xsd) we have the first two digits from the version code (2x3 = 2.3..; 4 = 4.0..)

If this is true, then I would like to see this policy reflected in the documentation.

so feels like we should keep the version choice simple and leave the mapping to implementors

What should programmers do - write conditions in code, check regular expressions... Please, answer HOW make the mapping.

andyward commented 4 months ago

It's just a map. Not sure I see the issue. It not like new EXPRESS schemas are ratified every day. A static map such as:

berlotti commented 4 months ago

I would suggest to use the string that is also used in the (step) file. So

Those are the only official IFC headers. (sorry I thought the older versions had the full headers as well... like they should have....)