IDS icon indicating copy to clipboard operation
IDS copied to clipboard

Is ifcVersion a requirement or just metadata?

Open rubendel opened this issue 3 years ago • 1 comments

Follow-up on https://github.com/buildingSMART/IDS/pull/101#issuecomment-1271269032

The Specification tag contains the ifcVersion attribute. In version 0.9 of IDS this is a required attribute, but to be valid against the schema, a value of "" is allowed...

Currently in the test cases, the ifcVersion attribute is regarded as having no effect whatsoever on the outcome of any IDS check.

A few reasons for making the IFC schema more significant:

  • Pre-check validation of IDS specs. For example non existing attributes, inverses and derived attributes all require knowledge of the applicable schema(s). This will of course be limited in use when regexes are used for identifying attributes, which I my opinion is still something we should not want to allow at all, but that's a different issue.
  • When we added this to Specification (it was first in the Header) the idea was that you can have one IDS, that works for 2 different schemas, by having 2 specifications; one for schema X and one for schema Y. Logically they would check the same thing, but depending on the IFC schema, only one would be executed each time. You can imagine schema X having a Property for some information whereas schema Y now has a dedicated Attribute for the same information. Personally I am not too sure about how often this will happen.

It would be good to have a little bit of a discussion on this I think, my point would be that any Specification in an IDS that does not match with the IfcSchema of an IFC file, should simply be skipped and not evaluated at all. I did miss some meetings, so perhaps this is already a done deal, just let me know :).

rubendel avatar Oct 07 '22 08:10 rubendel

I thought we agreed on this during the last phase - the ifcVersion should be a requirement, not just metadata. So if IDS says ifcVersion="IFC4.0", the IFC file in version "2x3" should fail.

I think this test case is wrong: https://github.com/buildingSMART/IDS/blob/development/Documentation/ImplementersDocumentation/TestCases/ids/pass-specification_version_is_purely_metadata_and_does_not_impact_pass_or_fail_result.ids

atomczak avatar Nov 07 '24 14:11 atomczak