-
Notifications
You must be signed in to change notification settings - Fork 66
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Proposal: Permit dataType equivalents for non-measure Property values #331
Comments
Hi, I think the table should be interpreted differently,
The headers are specifying the cardinality (whether your facet PROPERTY is) : Edit : only PSET and NAME are mandatory, the other are in brackets to explain what would be acceptable or not when you specify them In the IDS.XSD schema (1.0.0) it is specified :
The datatype is optional, therefore you can write IDS without it. Example :
This will get a pass or fail without specifying the datatype : |
Entirely possible, in which case it's an error in the IDS Audit tool. But I read it as E.g. then above IDS above gives this error in the audit tool:
This 'fail' error disappears if removing the 'value' property. Looping in @CBenghi in case he can shed some light. Either the docs or the audit tool are incorrect. I forgot we'd had this discussion before at #206 (comment) but I'm unclear on the eventual outcome. Hopefully just a Audit tool issue! |
Thank you, Yes I agree with you, your proposition is interesting. And like any case like that, it also raises the question of where is the limit in mandatory and non-mandatory datatype. This will still create a level of precision in the IDS author because they would have to know whether or not the datatype is necessary for such or such property ? I was using a IFC model in IFC4 and BlenderBIM ADD-on v0.0.240602-47704b1. This is also a question that I am asking myself, what if an IDS is written with a specification version = 4x3 (in 0.9.7 or IFC4X3_ADD2 in 1.0.0) but the model is not from the same version ? |
Hopefully we can get a resolution.
Technically the ifcVersion has no actual impact on the test, as per: specification_version_is_purely_metadata_and_does_not_impact_pass_or_fail_result.ids However I guess it's up to the validator service to warn if model's schema version is incompatible. |
According to the docs,
dataType
is a required field when specifying avalue
.The implication of this is that the IDS author must know the correct IFC dataType expected for a property. For IfcMeasures this is no doubt important due to Units etc, but for a lot of simple cases this constraint feels overly prescriptive.
For instance an IDS author will now need to specify if a custom property called 'Acme_Reference' has a dataType of IFCTEXT, IFCLABEL, IFCIDENTIFIER or some other datatype. If the IFC exporter doesn't follow these conventions the IDS value check will fail, despite the value matching, and all these IfcTypes being backed by the same EXPRESS STRING type. In any upstream service processing this IFC the property will almost certainly be treated as the same String type so it will feel like a 'false negative' to a typical user.
i.e. To all intents and purposes these are the same to an end user - despite a different semantic:
I see a couple of options:
The latter would be my suggestion. My thoughts would be to allow any non-Measure dataType to be deemed equivalent if it's underlying 'Type' is the same. I'd suggest for 99% of cases this is going to types backed by 'string'. You could also make the case that dataTypes such as IfcInteger and IfcPositiveInteger are equivalent but that's perhaps a more subtle edgecase.
Any thoughts?
The text was updated successfully, but these errors were encountered: