These testcases are designed to help describe behaviour in edge cases and ambiguities. All valid IDS implementations must demonstrate identical behaviour to these test cases.
<material minOccurs="1" maxOccurs="1"/>
#1=IFCWALL('319PHYQJ983OMIXOhty3wX',$,$,$,$,$,$,$,$); /* Testcase */
<material minOccurs="1" maxOccurs="1"/>
#1=IFCWALL('319PHYQJ983OMIXOhty3wX',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIAL('Unnamed',$,$);
#3=IFCRELASSOCIATESMATERIAL('2UT14UeKn8Jgvg8AVitqxV',$,$,$,(#1),#2);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0BRc9rmaj4b8Rpv2AtUYeQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIAL('Unnamed',$,$);
#3=IFCRELASSOCIATESMATERIAL('0J4ry8qxH87vhK1Vg7VgHg',$,$,$,(#1),#2);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0BRc9rmaj4b8Rpv2AtUYeQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIAL('Foo',$,$);
#3=IFCRELASSOCIATESMATERIAL('0J4ry8qxH87vhK1Vg7VgHg',$,$,$,(#1),#2);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0BRc9rmaj4b8Rpv2AtUYeQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIAL('Bar',$,'Foo');
#3=IFCRELASSOCIATESMATERIAL('0J4ry8qxH87vhK1Vg7VgHg',$,$,$,(#1),#2);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('2wkcl770zD19WuAXtn7I5e',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLIST((#4));
#3=IFCRELASSOCIATESMATERIAL('2Xh8a8fo12LRJMfv4$ro6D',$,$,$,(#1),#2);
#4=IFCMATERIAL('Concrete',$,'CONCRETE');
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('2wkcl770zD19WuAXtn7I5e',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLIST((#4,#5));
#3=IFCRELASSOCIATESMATERIAL('2Xh8a8fo12LRJMfv4$ro6D',$,$,$,(#1),#2);
#4=IFCMATERIAL('Concrete',$,'CONCRETE');
#5=IFCMATERIAL('Foo',$,$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('2wkcl770zD19WuAXtn7I5e',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLIST((#4,#5));
#3=IFCRELASSOCIATESMATERIAL('2Xh8a8fo12LRJMfv4$ro6D',$,$,$,(#1),#2);
#4=IFCMATERIAL('Concrete',$,'CONCRETE');
#5=IFCMATERIAL('Bar',$,'Foo');
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('02WPqwNff3PvOsDvPQ9aoT',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLAYERSET((#5),'Unnamed',$);
#3=IFCRELASSOCIATESMATERIAL('0IJElgCAH5QgUZYJCIpVdF',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALLAYER(#4,1.,$,'Foo',$,$,$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('02WPqwNff3PvOsDvPQ9aoT',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLAYERSET((#5),'Unnamed',$);
#3=IFCRELASSOCIATESMATERIAL('0IJElgCAH5QgUZYJCIpVdF',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Foo',$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('02WPqwNff3PvOsDvPQ9aoT',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLAYERSET((#5),'Unnamed',$);
#3=IFCRELASSOCIATESMATERIAL('0IJElgCAH5QgUZYJCIpVdF',$,$,$,(#1),#2);
#4=IFCMATERIAL('Foo',$,$);
#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('02WPqwNff3PvOsDvPQ9aoT',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALLAYERSET((#5),'Unnamed',$);
#3=IFCRELASSOCIATESMATERIAL('0IJElgCAH5QgUZYJCIpVdF',$,$,$,(#1),#2);
#4=IFCMATERIAL('Bar',$,'Foo');
#5=IFCMATERIALLAYER(#4,1.,$,'Bar',$,'Bar',$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0ikno0YNn5b94GQ2O92ciQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$);
#3=IFCRELASSOCIATESMATERIAL('3PxleJXSj2NRcXuQJYL$_5',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALPROFILE('Foo',$,#4,#6,$,$);
#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0ikno0YNn5b94GQ2O92ciQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$);
#3=IFCRELASSOCIATESMATERIAL('3PxleJXSj2NRcXuQJYL$_5',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Foo');
#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0ikno0YNn5b94GQ2O92ciQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$);
#3=IFCRELASSOCIATESMATERIAL('3PxleJXSj2NRcXuQJYL$_5',$,$,$,(#1),#2);
#4=IFCMATERIAL('Foo',$,$);
#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar');
#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0ikno0YNn5b94GQ2O92ciQ',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALPROFILESET('Unnamed',$,(#5),$);
#3=IFCRELASSOCIATESMATERIAL('3PxleJXSj2NRcXuQJYL$_5',$,$,$,(#1),#2);
#4=IFCMATERIAL('Bar',$,'Foo');
#5=IFCMATERIALPROFILE('Bar',$,#4,#6,$,'Bar');
#6=IFCCIRCLEPROFILEDEF(.AREA.,$,$,1.);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0$1VfYP5z0KBH2TJ5sSRrf',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,$);
#3=IFCRELASSOCIATESMATERIAL('2urDqpdqTEX8YbzokRx8Ic',$,$,$,(#1),#2);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0$1VfYP5z0KBH2TJ5sSRrf',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5));
#3=IFCRELASSOCIATESMATERIAL('2urDqpdqTEX8YbzokRx8Ic',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALCONSTITUENT('Foo',$,#4,$,$);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0$1VfYP5z0KBH2TJ5sSRrf',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5));
#3=IFCRELASSOCIATESMATERIAL('2urDqpdqTEX8YbzokRx8Ic',$,$,$,(#1),#2);
#4=IFCMATERIAL('Unnamed',$,$);
#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Foo');
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0$1VfYP5z0KBH2TJ5sSRrf',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5));
#3=IFCRELASSOCIATESMATERIAL('2urDqpdqTEX8YbzokRx8Ic',$,$,$,(#1),#2);
#4=IFCMATERIAL('Foo',$,$);
#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar');
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('0$1VfYP5z0KBH2TJ5sSRrf',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCMATERIALCONSTITUENTSET('Unnamed',$,(#5));
#3=IFCRELASSOCIATESMATERIAL('2urDqpdqTEX8YbzokRx8Ic',$,$,$,(#1),#2);
#4=IFCMATERIAL('Bar',$,'Foo');
#5=IFCMATERIALCONSTITUENT('Bar',$,#4,$,'Bar');
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('1xV32aA6bB1QfmT1UYJ5M7',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCWALLTYPE('04g7LjBs55N8_ewCD0Wbrc',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.);
#3=IFCRELDEFINESBYTYPE('0MmnMW2yzDrQBqAf_TIZx5',$,$,$,(#1),#2);
#4=IFCMATERIAL('Foo',$,$);
#5=IFCRELASSOCIATESMATERIAL('2P2pXIWmjAsvs_Rwg67q2S',$,$,$,(#2),#4);
<material minOccurs="1" maxOccurs="1">
<value>
<simpleValue>Foo</simpleValue>
</value>
</material>
#1=IFCWALL('32Dle6WzzFFhwvPjiS58DD',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCWALLTYPE('1qN2zbMzDCLeFthwWoeox5',$,$,$,$,$,$,$,$,.ELEMENTEDWALL.);
#3=IFCRELDEFINESBYTYPE('0kAZF6dv902etnJ_Y6rjg_',$,$,$,(#1),#2);
#4=IFCMATERIAL('Bar',$,$);
#5=IFCRELASSOCIATESMATERIAL('1ygeyuwcLE4gjQ9TcEGvU0',$,$,$,(#2),#4);
#6=IFCMATERIAL('Foo',$,$);
#7=IFCRELASSOCIATESMATERIAL('3Q9uFawKP4bxJudw3HPvir',$,$,$,(#1),#6);