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.
<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Rabbit</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="0" maxOccurs="0">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="0" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="0" maxOccurs="1">
<name>
<simpleValue>Rabbit</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>CountValue</simpleValue>
</name>
</attribute>#1=IFCQUANTITYCOUNT('Foobar',$,$,0.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>IsCritical</simpleValue>
</name>
</attribute>#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.T.,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>IsCritical</simpleValue>
</name>
</attribute>#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,.F.,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RelatingPriorities</simpleValue>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$);
#2=IFCWALL('0eA6m4fELI9QBIhP3wiLAp',$,$,$,$,$,$,$,$);
#3=IFCRELCONNECTSPATHELEMENTS('05rScmOVzMoQXOfbYdtLYj',$,$,$,$,#1,#2,(),(),.ATSTART.,.ATEND.); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>LayerStyles</simpleValue>
</name>
</attribute>#1=IFCCARTESIANPOINT((0.,0.,0.));
#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.T.,.F.,.F.,()); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>LayerOn</simpleValue>
</name>
</attribute>#1=IFCCARTESIANPOINT((0.,0.,0.));
#2=IFCPRESENTATIONLAYERWITHSTYLE('Foo',$,(#1),$,.U.,.F.,.F.,()); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>ScheduleDuration</simpleValue>
</name>
</attribute>#1=IFCTASKTIME($,$,$,$,'P0D',$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>TaskTime</simpleValue>
</name>
</attribute>#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$);
#2=IFCTASK('0eA6m4fELI9QBIhP3wiLAp',$,$,$,$,$,$,$,$,.T.,$,#1,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>DiffuseColour</simpleValue>
</name>
</attribute>#1=IFCCOLOURRGB($,1.,1.,1.);
#2=IFCCOLOURRGB($,1.,1.,1.);
#3=IFCSURFACESTYLERENDERING(#1,$,#2,$,$,$,$,$,.FLAT.); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>DiffuseColour</simpleValue>
</name>
</attribute>#1=IFCCOLOURRGB($,1.,1.,1.);
#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>EngagedIn</simpleValue>
</name>
</attribute>#1=IFCPERSON($,$,$,$,$,$,$,$); /* Testcase */
#2=IFCORGANIZATION($,'Foo',$,$,$);
#3=IFCPERSONANDORGANIZATION(#1,#2,$);<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Dim</simpleValue>
</name>
</attribute>#1=IFCCARTESIANPOINT((0.,0.,0.)); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<simpleValue>♫Don'tÄrgerhôtelЊет</simpleValue>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'\X2\266B\X0\Don''t\X2\00C4\X0\rgerh\X2\00F4\X0\tel\X2\040A04350442\X0\',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>TaskTime</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCTASKTIME($,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$,$);
#2=IFCTASK('0eA6m4fELI9QBIhP3wiLAp',$,$,$,$,$,$,$,$,.F.,$,#1,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>DiffuseColour</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCCOLOURRGB($,1.,1.,1.);
#2=IFCSURFACESTYLERENDERING(#1,$,IFCNORMALISEDRATIOMEASURE(0.5),$,$,$,$,$,.FLAT.); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Coordinates</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCCARTESIANPOINT((0.,0.,0.)); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>GlobalId</simpleValue>
</name>
<value>
<simpleValue>1hqIFTRjfV6AWq_bMtnZwI</simpleValue>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Identification</simpleValue>
</name>
<value>
<simpleValue>123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345_extra_characters</simpleValue>
</value>
</attribute>#1=IFCPERSON('123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345',$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.0</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.3,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42,3</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.3,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>123,4.5</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>1.2345e3</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>1.2345E3</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(1234.5,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.000042,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
#2=IFCSURFACESTYLEREFRACTION(41.999958,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
#2=IFCSURFACESTYLEREFRACTION(41.999958,$);
#3=IFCSURFACESTYLEREFRACTION(42.000084,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<simpleValue>42.</simpleValue>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.000042,$);
#2=IFCSURFACESTYLEREFRACTION(41.999958,$);
#3=IFCSURFACESTYLEREFRACTION(42.000084,$);
#4=IFCSURFACESTYLEREFRACTION(41.999916,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>NumberOfRisers</simpleValue>
</name>
<value>
<simpleValue>42</simpleValue>
</value>
</attribute>#1=IFCSTAIRFLIGHT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>NumberOfRisers</simpleValue>
</name>
<value>
<simpleValue>42.0</simpleValue>
</value>
</attribute>#1=IFCSTAIRFLIGHT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>NumberOfRisers</simpleValue>
</name>
<value>
<simpleValue>42.3</simpleValue>
</value>
</attribute>#1=IFCSTAIRFLIGHT('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,42,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>IsMilestone</simpleValue>
</name>
<value>
<simpleValue>TRUE</simpleValue>
</value>
</attribute>#1=IFCTASK('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>IsMilestone</simpleValue>
</name>
<value>
<simpleValue>FALSE</simpleValue>
</value>
</attribute>#1=IFCTASK('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>IsMilestone</simpleValue>
</name>
<value>
<simpleValue>False</simpleValue>
</value>
</attribute>#1=IFCTASK('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$,.F.,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>EditionDate</simpleValue>
</name>
<value>
<simpleValue>2022-01-01</simpleValue>
</value>
</attribute>#1=IFCCLASSIFICATION($,$,'2022-01-01','Name',$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>EditionDate</simpleValue>
</name>
<value>
<simpleValue>2022-01-01</simpleValue>
</value>
</attribute>#1=IFCCLASSIFICATION($,$,'2022-01-01+00:00','Name',$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>ScheduleDuration</simpleValue>
</name>
<value>
<simpleValue>PT16H</simpleValue>
</value>
</attribute>#1=IFCTASKTIME('Name',$,$,$,'PT16H',$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>ScheduleDuration</simpleValue>
</name>
<value>
<simpleValue>PT16H</simpleValue>
</value>
</attribute>#1=IFCTASKTIME('Name',$,$,$,'P2D',$,$,$,$,$,$,$,$,$,$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<xs:restriction base="xs:string">
<xs:pattern value=".*Name.*"/>
</xs:restriction>
</name>
</attribute>#1=IFCMATERIALLAYER($,1.,$,$,$,$,$);
#2=IFCMATERIALLAYERSET((#1),'Foo',$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<xs:restriction base="xs:string">
<xs:enumeration value="Name"/>
<xs:enumeration value="Description"/>
</xs:restriction>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<xs:restriction base="xs:string">
<xs:enumeration value="Name"/>
<xs:enumeration value="Description"/>
</xs:restriction>
</name>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,'Bar',$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foo',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Bar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Name</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="Foo"/>
<xs:enumeration value="Bar"/>
</xs:restriction>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,'Foobar',$,$,$,$,$,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>Description</simpleValue>
</name>
<value>
<simpleValue>Foobar</simpleValue>
</value>
</attribute>#1=IFCWALL('1hqIFTRjfV6AWq_bMtnZwI',$,$,$,$,$,$,$,$); /* Testcase */
#2=IFCWALLTYPE('0eA6m4fELI9QBIhP3wiLAp',$,$,'Foobar',$,$,$,$,$,.ELEMENTEDWALL.);
#3=IFCRELDEFINESBYTYPE('05rScmOVzMoQXOfbYdtLYj',$,$,$,(#1),#2);<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:string">
<xs:enumeration value="42"/>
<xs:enumeration value="43"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */<attribute minOccurs="1" maxOccurs="1">
<name>
<simpleValue>RefractionIndex</simpleValue>
</name>
<value>
<xs:restriction base="xs:decimal">
<xs:minInclusive value="42" fixed="false"/>
<xs:maxInclusive value="42" fixed="false"/>
</xs:restriction>
</value>
</attribute>#1=IFCSURFACESTYLEREFRACTION(42.,$); /* Testcase */