IDS icon indicating copy to clipboard operation
IDS copied to clipboard

How requirements on enumerated properties should be interpreted

Open pasi-paasiala opened this issue 2 years ago • 3 comments

This is related to the following files: IDS IFC

The IDS requires that the enumerated value has simple value "EXISTING". The actual value of the property contains two values "EXISTING" and "DEMOLISH". Implicitly then it is sufficient that this list contains the "EXISTING" value, but is there a way to require that the value only contains that and nothing else?

pasi-paasiala avatar Jan 31 '23 13:01 pasi-paasiala

Isn't it asking new a value of "NEW" in the Enumerated Value property?

             <requirements>
                <property measure="IfcLabel" minOccurs="1" maxOccurs="1">
                    <propertySet>
                        <simpleValue>Pset_WallCommon</simpleValue>
                    </propertySet>
                    <name>
                        <simpleValue>Status</simpleValue>
                    </name>
                    <value>
                        <simpleValue>NEW</simpleValue>
                    </value>
                </property>
            </requirements>

But the entity actually contains "EXISTING" and "DEMOLISH", so you'd expect it to fail?

#11=IFCPROPERTYENUMERATEDVALUE('Status',$,(IFCLABEL('EXISTING'),IFCLABEL('DEMOLISH')),#10);

andyward avatar Jan 31 '23 14:01 andyward

The ids file referenced by @pasi-paasiala is indeed intended to fail as indicated by the name *fail*-any_matching_value_in_an_enumerated_property_will_pass_3_3.ids. Maybe the intended ids file to referenced was this one: pass-any_matching_value_in_an_enumerated_property_will_pass_1_3.ids

I think the current behaviour in the test cases is consistently that for any multi-valued construct (layered material, bounded prop, list prop, enum prop, ...) that at least one of these elements then must match the constraint.

It's been a while, but I also remember it has been discussed that for applicability the behaviour could be to have any of the values match: "A concrete wall is a wall with at least one layer of concrete", but for the requirement part all should match: e.g as you said: "existing or demolish, but nothing else". I think this was scrapped for being too magical and/or confusing.

So I don't think there is currently a way to specify that.

aothms avatar Jan 31 '23 20:01 aothms

Make sure the test suite covers passes and failures appropriately. This specific file seems to be ok.

CBenghi avatar Apr 19 '24 08:04 CBenghi