### Predefined Properties Supported but Discouraged
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Predefined properties are supported but using them is discouraged. This example uses IFCDOORPANELOPERATIONENUM.
```ids
Predefined properties are supported but discouraged 1/2
Entity: ''IFCDOOR''
Requirements:
Property: ''Foo_Bar'',''PanelOperation'',IFCDOORPANELOPERATIONENUM,''SWINGING''
```
```ids
Predefined properties are supported but discouraged 2/2
Entity: ''IFCDOOR''
Requirements:
Property: ''Foo_Bar'',''PanelOperation'',IFCDOORPANELOPERATIONENUM,''SWONGING''
```
--------------------------------
### Example Output of Test Case Generation
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/contributing.md
This output shows the process of test case generation, including the .NET command executed, processing messages, and the generated IFC files and HTML reports.
```text
╬════════════════════
║ CreateTestCases
╬═══════════
17:33:55 [INF] > "C:\Program Files\dotnet\dotnet.exe" run --configuration Release --project C:\Data\Dev\BuildingSmart\IDS\SchemaProject\SchemaProject.csproj
17:33:57 [DBG] Hello IDS!
17:33:57 [DBG] Process started in: C:\Data\Dev\BuildingSmart\IDS
17:33:57 [DBG] Testcase generation started in: C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases
17:33:57 [DBG] Extra IDS report generated: C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases\library\sample1.html
17:33:57 [DBG] Extra IDS report generated: C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases\library\sample2.html
17:33:57 [DBG] Extra IFC: - C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases\entity\fail-a_predefined_type_must_always_specify_a_meaningful_type__not_userdefined_itself.ifc
17:33:57 [DBG] Extra IFC: - C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases\library\sample1.ifc
17:33:57 [DBG] Extra IFC: - C:\Data\Dev\BuildingSmart\IDS\Documentation\testcases\library\sample2.ifc
17:33:57 [DBG] All scripting IFC files found
17:33:57 [DBG]
17:33:57 [DBG] Done
```
--------------------------------
### Complete IDS Example with Multiple Specifications
Source: https://context7.com/buildingsmart/ids/llms.txt
This XML snippet defines a complete IDS file. It includes metadata and two distinct specifications: one for brick wall naming and classification, and another for minimum bedroom floor area. Use this as a template for defining project-specific data requirements.
```xml
Project Minimum Delivery Requirements
BuildCo Pty Ltd
2.0
Core data requirements for coordination and code compliance.
Run at each model sharing milestone.
bim.manager@buildco.com
2024-06-01
coordination
Design Development
IFCWALLTYPE
brick
Name
Wall type name must be "WT" followed by exactly 2 digits, e.g. WT01, WT99.
Uniclass 2015
IFCSPACE
Description
Qto_SpaceBaseQuantities
NetFloorArea
```
--------------------------------
### Automated Test Case Generation Command
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/contributing.md
Execute this command in the 'RepositoryAutomation' folder to automate the conversion of IDS files to the scripting language. Ensure .NET 6.0 SDK is installed.
```powershell
./build.ps1 CreateTestCases
```
```cmd
build CreateTestCases
```
```bash
./build.sh CreateTestCases
```
--------------------------------
### Numeric Precision and Unit Conversion Examples (XML)
Source: https://context7.com/buildingsmart/ids/llms.txt
These XML snippets demonstrate how to specify numeric ranges and values in IDS, including unit conversions to SI units and the required floating-point tolerance for comparisons.
```xml
Qto_WallBaseQuantities
Height
Pset_WallCommon
ThermalTransmittance
```
--------------------------------
### Require IFC Attribute Tag to be Populated
Source: https://context7.com/buildingsmart/ids/llms.txt
This Attribute facet example demonstrates requiring the 'Tag' attribute to have any non-null value.
```xml
Tag
```
--------------------------------
### Name restrictions will match any result using Enumeration
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests the use of enumeration for name restrictions, ensuring that specified names are matched. This example checks for 'Name' or 'Description' attributes in an 'IFCWALL' entity.
```ids
Name restrictions will match any result 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: Enumeration(''Name'',''Description'')
```
```ids
Name restrictions will match any result 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: Enumeration(''Name'',''Description'')
```
--------------------------------
### Fail: Attributes with Empty Strings
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests if attributes with empty strings always fail validation. The 'Name' attribute for 'IFCWALL' is used as an example.
```ids
Attributes with empty strings always fail
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''
```
--------------------------------
### Only specifically formatted numbers are allowed
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests the strict formatting requirements for numeric values. These examples show invalid formats like comma as a decimal separator and valid scientific notation for the 'RefractionIndex' attribute.
```ids
Only specifically formatted numbers are allowed 1/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42,3''
```
```ids
Only specifically formatted numbers are allowed 2/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''123,4.5''
```
```ids
Only specifically formatted numbers are allowed 3/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''1.2345e3''
```
```ids
Only specifically formatted numbers are allowed 4/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''1.2345E3''
```
--------------------------------
### Date property treated as string fails
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case shows that date properties are treated as strings. While the format is correct, this specific example is marked as failing in the source, implying other conditions might be at play or it's a negative test case.
```ids
Dates are treated as strings 2/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDATE,''2022-01-01''
```
--------------------------------
### Measures Specify IFC Data Type
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Measures are used to specify an IFC data type. This example uses IFCTIMEMEASURE.
```ids
Measures are used to specify an IFC data type 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCTIMEMEASURE,''2''
```
```ids
Measures are used to specify an IFC data type 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCTIMEMEASURE,''2''
```
--------------------------------
### Invalid: Derived Attributes
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Verifies that derived attributes cannot be checked and always fail validation. The 'Dim' attribute for 'IFCCARTESIANPOINT' is an example.
```ids
Derived attributes cannot be checked and always fail
Entity: ''IFCCARTESIANPOINT''
Requirements:
Attribute: ''Dim''
```
--------------------------------
### Pass: Systems should match exactly (5/5)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case confirms exact system matching for entities like IFCBEAM.
```ids
Systems should match exactly 5/5
Entity: ''IFCBEAM''
Requirements:
Classification: ''Foobar''
```
--------------------------------
### Fail: Attributes with Empty List
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Verifies that attributes with an empty list always fail validation. The 'RelatingPriorities' attribute for 'IFCRELCONNECTSPATHELEMENTS' is an example.
```ids
Attributes with an empty list always fail
Entity: ''IFCRELCONNECTSPATHELEMENTS''
Requirements:
Attribute: ''RelatingPriorities''
```
--------------------------------
### Pass: Systems should match exactly (4/5)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies exact system matching. It applies to entities like IFCCOLUMN.
```ids
Systems should match exactly 4/5
Entity: ''IFCCOLUMN''
Requirements:
Classification: ''Foobar''
```
--------------------------------
### Pass: Systems should match exactly (1/5)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies that systems match exactly when a specific classification is provided. It applies to entities like IFCPROJECT.
```ids
Systems should match exactly 1/5
Entity: ''IFCPROJECT''
Requirements:
Classification: ''Foobar''
```
--------------------------------
### Pass: Attributes with String Value
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Verifies that attributes with a string value pass validation. The 'Name' attribute for 'IFCWALL' is used as an example.
```ids
Attributes with a string value should pass
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''
```
--------------------------------
### Pass: Systems should match exactly (3/5)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case confirms that systems match exactly as required. It applies to entities like IFCSLAB.
```ids
Systems should match exactly 3/5
Entity: ''IFCSLAB''
Requirements:
Classification: ''Foobar''
```
--------------------------------
### Value Restrictions with Enumeration
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Use Enumeration to restrict attribute values to a predefined list of acceptable strings. This example demonstrates a valid restriction.
```ids
Value restrictions may be used 1/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')
```
--------------------------------
### Fail: Systems should match exactly (2/5)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates a failure when the system classification does not exactly match the requirement. It applies to entities like IFCWALL.
```ids
Systems should match exactly 2/5
Entity: ''IFCWALL''
Requirements:
Classification: ''Foobar''
```
--------------------------------
### Indirect Containment Test Case 2/2
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests indirect containment where an entity is part of another, using IFCBEAM as an example. Requires IFCBUILDING and IFCRELAGGREGATES.
```ids
The containment can be indirect 2/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCBUILDING'',IFCRELAGGREGATES
```
--------------------------------
### Indirect Containment Test Case 1/2
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests indirect containment where an entity is part of another, using IFCBEAM as an example. Requires IFCBUILDING and IFCRELAGGREGATES.
```ids
The containment can be indirect 1/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCBUILDING'',IFCRELAGGREGATES
```
--------------------------------
### Minimal IDS Checking Minimal IFC (2/2)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case checks a minimal IFC using a minimal IDS configuration. It requires the 'Name' attribute to be 'Waldo'.
```ids
A minimal ids can check a minimal ifc (2/2)
IFC4
Optional
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
```
--------------------------------
### Check Aggregation with Specific Predefined Type
Source: https://context7.com/buildingsmart/ids/llms.txt
This PartOf facet example checks for members aggregated into an `IfcElementAssembly` that also has a specific `predefinedType`, such as 'GIRDER'. It uses the `IFCRELAGGREGATES` relation.
```xml
IFCELEMENTASSEMBLY
GIRDER
```
--------------------------------
### Minimal IDS Checking Minimal IFC (1/2)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case checks a minimal IFC using a minimal IDS configuration. It requires the 'Name' attribute to be 'Waldo'.
```ids
A minimal ids can check a minimal ifc (1/2)
IFC4
Optional
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
```
--------------------------------
### Invalid attribute names always fail
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Tests that using an attribute name that does not exist for a given entity will result in a failure. This example checks the 'ActingRole' attribute for an 'IFCWALL' entity.
```ids
Invalid attribute names always fail
Entity: ''IFCWALL''
Requirements:
Attribute: ''ActingRole''
```
--------------------------------
### IDS Documentation Script Format
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/contributing.md
Use this format to define test cases. The first line is the title and specification name, followed by optional schema and applicability lines, then applicability facets, and finally requirement facets.
```text
### Test case title
An optional (but welcome) description of the rationale of the test.
``` ids attribute/-.ids
Test case title
IFC4
Entity: ''IFCPRESENTATIONLAYERWITHSTYLE''
Requirements:
Attribute: ''LayerOn''
```
```
--------------------------------
### Pass: Both system and value must match (all, not any) if specified
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies that both the system and value classifications must match when specified. It applies to entities like IFCSLAB.
```ids
Both system and value must match (all, not any) if specified 1/2
Entity: ''IFCSLAB''
Requirements:
Classification: ''Foobar'',''1''
```
--------------------------------
### Filter Property with URI Reference to bSDD
Source: https://context7.com/buildingsmart/ids/llms.txt
Use the 'uri' attribute on the element to reference definitions in external resources like bSDD. This example requires a custom property 'EgressFireRating'.
```xml
MyCompany_FireData
EgressFireRating
```
--------------------------------
### IDS Material: Optional Material Fails if No Match
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This IDS script demonstrates an optional material failing when no provided value matches the requirements.
```ids
An optional material fails if no value matches
Entity: ''IFCWALL''
Requirements:
Material: Optional,''Foo''
```
--------------------------------
### Fail: Both system and value must match (all, not any) if specified
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates a failure scenario where the system and value classifications do not fully match as required. It applies to entities like IFCCOLUMN.
```ids
Both system and value must match (all, not any) if specified 2/2
Entity: ''IFCCOLUMN''
Requirements:
Classification: ''Foobar'',''1''
```
--------------------------------
### All Matching Properties Satisfy Requirements 1/3
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Ensures all matching properties satisfy the specified requirements.
```ids
All matching properties must satisfy requirements 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,''x''
```
--------------------------------
### Specification and Facet Optionality Combined
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case shows how specification optionality and facet optionality can be combined.
```ids
Specification optionality and facet optionality can be combined
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
Attribute: Optional,''Description'',''Foobar''
```
--------------------------------
### Reference Properties Not Supported
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This script verifies that reference properties are treated as objects and are not supported. It defines an entity and a reference property.
```ids
Reference properties are treated as objects and not supported
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL
```
--------------------------------
### Filter Property by Exclusive Numeric Range
Source: https://context7.com/buildingsmart/ids/llms.txt
Define exclusive bounds for numeric properties using xs:minExclusive and xs:maxExclusive within an xs:restriction. This example filters 'ThermalTransmittance' between 0.5 and 2.1 W/m²K.
```xml
Pset_PlateCommon
ThermalTransmittance
```
--------------------------------
### Pass: Restrictions used for values (1/3)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates successful matching when restrictions are applied to values, using patterns for both system and value. It applies to entities like IFCSLAB.
```ids
Restrictions can be used for values 1/3
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''W+''),Pattern(''1.*'')
```
--------------------------------
### Pattern Restriction (String Only)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Illustrates that pattern restrictions are only applicable to string types. Applying them to non-string types will result in invalid configurations.
```ids
Patterns only work on strings and nothing else
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',Pattern(''.*'')
```
--------------------------------
### Duration property treated as string fails
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case shows that duration properties are treated as strings. While the format is correct, this specific example is marked as failing in the source, implying other conditions might be at play or it's a negative test case. Note: IFCDURATION is not available in IFC2x3.
```ids
Durations are treated as strings 2/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDURATION,''PT16H''
```
--------------------------------
### Pass: Values should match exactly if lightweight classifications are used
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies that values must match exactly when lightweight classifications are used. It applies to entities like IFCSLAB.
```ids
Values should match exactly if lightweight classifications are used
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''W+''),''1''
```
--------------------------------
### Multiple Properties Satisfy Requirements
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
When multiple properties match, all must satisfy the defined requirements. This applies to entities like IFCWALL.
```ids
If multiple properties are matched, all values must satisfy requirements 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,Enumeration(''x'',''y'')
```
--------------------------------
### Multiple properties matched, all values must satisfy requirements
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates that if multiple properties are matched using a pattern, all values must satisfy the specified requirements for the validation to pass.
```ids
If multiple properties are matched, all values must satisfy requirements 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,Enumeration(''x'',''y'')
```
--------------------------------
### Restrictions for Predefined Type (1/3)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates specifying restrictions for a predefined type using a pattern.
```ids
Restrictions can be specified for the predefined type 1/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')
```
--------------------------------
### Restrictions for Predefined Type (2/3)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates specifying restrictions for a predefined type using a pattern.
```ids
Restrictions can be specified for the predefined type 2/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')
```
--------------------------------
### Fail: Restrictions used for systems (1/2)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case shows a failure when restrictions are applied to systems and the classification does not match the pattern. It applies to entities like IFCWALL.
```ids
Restrictions can be used for systems 1/2
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''Foo.*'')
```
--------------------------------
### Element with matching Pset but no property fails
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates that elements with a matching property set but no actual property will fail validation.
```ids
Elements with a matching pset but no property also fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL
```
--------------------------------
### Fail: Floating point range lower than zero inclusive
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates a failure when a floating-point property is expected to be less than or equal to zero inclusively.
```ids
Comparison tolerance for floating point range lower than zero inclusive fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxInclusive(''0.'')
```
--------------------------------
### Unit Conversions (Fail)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This script tests the failure of unit conversions when they do not take place to IDS-nominated standard units. It specifies the entity, property, and a value.
```ids
Unit conversions shall take place to IDS-nominated standard units 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''2''
```
--------------------------------
### Pass: Restrictions used for values (2/3)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies successful value matching with restrictions, using patterns for both system and value. It applies to entities like IFCCOLUMN.
```ids
Restrictions can be used for values 2/3
Entity: ''IFCCOLUMN''
Requirements:
Classification: Pattern(''W+''),Pattern(''1.*'')
```
--------------------------------
### Restrictions for Predefined Type (3/3)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates specifying restrictions for a predefined type using a pattern.
```ids
Restrictions can be specified for the predefined type 3/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')
```
--------------------------------
### Pass: Non-rooted resources with external classification references
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case ensures that non-rooted resources with external classification references also pass validation. It is relevant for IFC4 and entities like IFCMATERIAL.
```ids
Non-rooted resources that have external classification references should also pass
IFC4
Entity: ''IFCMATERIAL''
Requirements:
Classification: Pattern(''W+''),''1''
```
--------------------------------
### Unit Conversions (Pass)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This script tests the successful unit conversions to IDS-nominated standard units. It specifies the entity, property, and a value.
```ids
Unit conversions shall take place to IDS-nominated standard units 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''2''
```
--------------------------------
### Pass: User-Defined Predefined Types
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Verifies that user-defined predefined types can be specified.
```ids
Userdefined predefined types may be specified
Entity: ''IFCWALLTYPE''
Requirements:
Entity: ''IFCWALLTYPE'',''USERDEFINED''
```
--------------------------------
### Pass: Restrictions used for systems (2/2)
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies that restrictions applied to systems correctly match the classification pattern. It applies to entities like IFCSLAB.
```ids
Restrictions can be used for systems 2/2
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''Foo.*'')
```
--------------------------------
### Pass: Elements with any material and empty material facet
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case verifies that elements with any material will pass when the material facet is empty.
```ids
Elements with any material will pass an empty material facet
Entity: ''IFCWALL''
Requirements:
Material:
```
--------------------------------
### Apply NL-SfB Classification with Pattern
Source: https://context7.com/buildingsmart/ids/llms.txt
Use the classification facet to apply an NL-SfB classification to elements where the code matches a specific pattern. The `system` parameter is required.
```xml
NL-Sfb
```
--------------------------------
### Integer Values Checked Using Type Casting
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
Demonstrates that integer values are correctly checked using type casting. Ensure the provided value is a valid integer.
```ids
Integer values are checked using type casting 1/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCINTEGER,''42''
```
--------------------------------
### Fail: Floating point range greater than zero inclusive
Source: https://github.com/buildingsmart/ids/blob/development/Documentation/ImplementersDocumentation/TestCases/scripts.md
This test case demonstrates a failure when a floating-point property is expected to be greater than or equal to zero inclusively.
```ids
Comparison tolerance for floating point range greater than zero inclusive fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinInclusive(''0.'')
```