buildingSMART / buildingSMART/IDS

Is ifcVersion a requirement or just metadata?

Open
#103 1 comment 0 reactions 1 assignee Claimed by @atomczak View on GitHub
discuss & decide
Dominant language
C#
Stars
318
Forks
90
PR merge metrics
No merged PRs in 30d

Description

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 :).

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.