buildingSMART / IDS

Computer interpretable (XML) standard to define Information Delivery Specifications for BIM (mainly used for IFC)
https://www.buildingsmart.org/standards/bsi-standards/information-delivery-specification-ids/
Other
215 stars 66 forks source link

Data type mismatch in applicability bypasses checking #337

Open atomczak opened 2 months ago

atomczak commented 2 months ago

Consider an example where you want to check all elements with a property XYZ of value ABC (the requirement is not relevant here).

Because we ask for a precise value, we need to specify the data type, which, in my case, is IFCLABEL. If a model has property XYZ with value ABC but captured as IFCTEXT instead, it is simply omitted. Not good.

I'm attaching an IDS file with IFCLABEL and IFC model with a beam with IFCTEXT: Data_type_experiment.zip. I tried checking one against the other in usBIM and IfcTester, and both didn't report any errors, but also no passed element. It means they didn't consider that beam as an applicable object, giving a false positive result.

The solutions I see:

  1. allow to leave data type empty in applicability, so no matter what data type, it will find it.
  2. allow to specify multiple data types (more complex and still leaves the door open to omissions)

In the long run, I hope the IFC is purged of overlapping data types like these...

A temporary workaround for IDS1.0 is to add a specification for each other's data type and forbid it. In the case above, saying that IFCTEXT is forbidden for XYZ property. I attach that one as well.

andyward commented 2 months ago

This sounds a bit similar to #331 - but we didn't get an authorative decision.

I proposed a third possible solution: to permit some kind of alias. So IFCLABEL is equivalent to IFCTEXT etc

atomczak commented 2 months ago

You're right, indeed it's the same issue, but let's keep this one given the IFCxIDS samples provided and try to resolve here. I see you also addressed it in #206.

I prefer the first option - not requiring data type even when value is provided. Let the software handle casting, not users. What are the arguments against it? @CBenghi

andyward commented 2 months ago

Yes it's unclear if dataType is optional or not. I believe the schema now leaves it optional (As per last comment in 206) but the audit-tool still treats its omission as an error.