Skip to content

Latest commit

 

History

History
2959 lines (2303 loc) · 87.5 KB

File metadata and controls

2959 lines (2303 loc) · 87.5 KB

Documentation test cases

This document supports the automatic generation of testcases.

All valid IDS implementations must demonstrate identical behaviour against the expected values of the provided test cases.

They are designed to describe the expected behaviour of IFC verification, and should cover all standard and edge cases to remove ambiguity from the expected implementation.

Test cases are arranged in folders by theme (e.g. attribute, entity, etc) and organised in 3 groups (i.e. pass, fail, and invalid), depending on the outcome of verification of the matching IFC/IDS couple.

file name prefix description
pass- all requirements are satisfied
fail- at least one requirement fails
invalid- at least one requirement fails (invalid files do not comply with the Audit tool, they could not be satisfied, regardless of IFC contents)

IDS files are generated from the data of this script executing the CreateTestCases target in the repository.

IFC files have been imported from the work previously done in the IfcOpenShell repository, and adepted where appropriate.

attribute

A prohibited facet returns the opposite of a required facet

A prohibited facet returns the opposite of a required facet
IFC2X3 IFC4 IFC4X3_ADD2
Entity: ''IFCWALL''
Requirements:
Attribute: Prohibited,''Name''

A required facet checks all parameters as normal

A required facet checks all parameters as normal
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''

An optional attribute passes if specified

An optional attribute passes if specified
Entity: ''IFCWALL''
Requirements:
Attribute: Optional,''Name'', ''Foobar''

An optional attribute passes if null

An optional attribute passes if null
Entity: ''IFCWALL''
Requirements:
Attribute: Optional,''Name'', ''Foobar''

An optional attribute fails if empty

An optional attribute fails if empty
Entity: ''IFCWALL''
Requirements:
Attribute: Optional,''Name'', ''Foobar''

Attributes are not inherited by the occurrence

Attributes are not inherited by the occurrence
Entity: ''IFCWALL''
Requirements:
Attribute: ''Description'',''Foobar''

Attributes referencing an object should pass

Attributes referencing an object should pass
IFC4
Entity: ''IFCTASK''
Requirements:
Attribute: ''TaskTime''

Attributes should check strings case sensitively 1/2

Attributes should check strings case sensitively 1/2
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Foobar''

Attributes should check strings case sensitively 2/2

Attributes should check strings case sensitively 2/2
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Foobar''

Attributes with a boolean false should pass

Attributes with a boolean false should pass
IFC4
Entity: ''IFCTASKTIME''
Requirements:
Attribute: ''IsCritical''

Attributes with a boolean true should pass

Attributes with a boolean true should pass
IFC4
Entity: ''IFCTASKTIME''
Requirements:
Attribute: ''IsCritical''

Attributes with a logical unknown always fail

Attributes with a logical unknown always fail
Entity: ''IFCPRESENTATIONLAYERWITHSTYLE''
Requirements:
Attribute: ''LayerOn''

Attributes with a select referencing a primitive should pass

Attributes with a select referencing a primitive should pass
Entity: ''IFCSURFACESTYLERENDERING''
Requirements:
Attribute: ''DiffuseColour''

Attributes with a select referencing an object should pass

Attributes with a select referencing an object should pass
Entity: ''IFCSURFACESTYLERENDERING''
Requirements:
Attribute: ''DiffuseColour''

Attributes with a string value should pass

Attributes with a string value should pass
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''

Attributes with a zero duration should pass

Attributes with a zero duration should pass
IFC4
Entity: ''IFCTASKTIME''
Requirements:
Attribute: ''ScheduleDuration''

Attributes with a zero number have meaning and should pass

Attributes with a zero number have meaning and should pass
Entity: ''IFCQUANTITYCOUNT''
Requirements:
Attribute: ''CountValue''

Attributes with an empty list always fail

Attributes with an empty list always fail
Entity: ''IFCRELCONNECTSPATHELEMENTS''
Requirements:
Attribute: ''RelatingPriorities''

Attributes with an empty set always fail

Attributes with an empty set always fail
Entity: ''IFCPRESENTATIONLAYERWITHSTYLE''
Requirements:
Attribute: ''LayerStyles''

Attributes with empty strings always fail

Attributes with empty strings always fail
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''

Attributes with null values always fail

Attributes with null values always fail
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name''

Booleans must be specified as lowercase strings 1/3

Booleans must be specified as lowercase strings 1/3
Entity: ''IFCTASK''
Requirements:
Attribute: ''IsMilestone'',''true''

Booleans must be specified as lowercase strings 2/3

Booleans must be specified as lowercase strings 2/3
Entity: ''IFCTASK''
Requirements:
Attribute: ''IsMilestone'',''FALSE''

Booleans must be specified as lowercase strings 2/3

Booleans must be specified as lowercase strings 2/3
Entity: ''IFCTASK''
Requirements:
Attribute: ''IsMilestone'',''false''

Dates are treated as strings 1/2

Dates are treated as strings 1/2
IFC4
Entity: ''IFCCLASSIFICATION''
Requirements:
Attribute: ''EditionDate'',''2022-01-01''

Dates are treated as strings 2/2

Dates are treated as strings 2/2
IFC4
Entity: ''IFCCLASSIFICATION''
Requirements:
Attribute: ''EditionDate'',''2022-01-01''

Derived attributes cannot be checked and always fail

Derived attributes cannot be checked and always fail
Entity: ''IFCCARTESIANPOINT''
Requirements:
Attribute: ''Dim''

Durations are treated as strings 1/2

Durations are treated as strings 1/2
IFC4
Entity: ''IFCTASKTIME''
Requirements:
Attribute: ''ScheduleDuration'',''PT16H''

Durations are treated as strings 2/2

Durations are treated as strings 2/2
IFC4
Entity: ''IFCTASKTIME''
Requirements:
Attribute: ''ScheduleDuration'',''PT16H''

GlobalIds are treated as strings and not expanded

GlobalIds are treated as strings and not expanded
Entity: ''IFCWALL''
Requirements:
Attribute: ''GlobalId'',''1hqIFTRjfV6AWq_bMtnZwI''

IDS does not handle string truncation such as for identifiers

IDS does not handle string truncation such as for identifiers
IFC4
Entity: ''IFCPERSON''
Requirements:
Attribute: ''Identification'',''123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345_extra_characters''

Integers follow the same rules as numbers

Integers follow the same rules as numbers
IFC4
Entity: ''IFCSTAIRFLIGHT''
Requirements:
Attribute: ''NumberOfRisers'',''42''

Integers cannot be expressed as floating point numbers 2/2

Integers cannot be expressed as floating point numbers 2/2
IFC4
Entity: ''IFCSTAIRFLIGHT''
Requirements:
Attribute: ''NumberOfRisers'',''42.0''

Invalid attribute names always fail

Entities of type IFCWALL do not have the ActingRole attribute.

Invalid attribute names always fail
Entity: ''IFCWALL''
Requirements:
Attribute: ''ActingRole''

Inverse attributes cannot be checked and always fail

Inverse attributes cannot be checked and always fail
Entity: ''IFCPERSON''
Requirements:
Attribute: ''EngagedIn''

Name restrictions will match any result 1/3

Name restrictions will match any result 1/3
Entity: ''IFCMATERIALLAYERSET''
Requirements:
Attribute: Pattern(''.*Name.*'')

Name restrictions will match any result 2/3

Name restrictions will match any result 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: Enumeration(''Name'',''Description'')

Name restrictions will match any result 3/3

Name restrictions will match any result 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: Enumeration(''Name'',''Description'')

Non-ascii characters are treated without encoding

Non-ascii characters are treated without encoding
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''♫Don'tÄrgerhôtelЊет''

Numeric values are checked using type casting 1/4

Numeric values are checked using type casting 1/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42''

Numeric values are checked using type casting 2/4

Numeric values are checked using type casting 2/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42.''

Numeric values are checked using type casting 3/4

Numeric values are checked using type casting 3/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42.0''

Numeric values are checked using type casting 4/4

Numeric values are checked using type casting 4/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42''

Only specifically formatted numbers are allowed 1/4

Only specifically formatted numbers are allowed 1/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''42,3''

Only specifically formatted numbers are allowed 2/4

Only specifically formatted numbers are allowed 2/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''123,4.5''

Only specifically formatted numbers are allowed 3/4

Only specifically formatted numbers are allowed 3/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''1.2345e3''

Only specifically formatted numbers are allowed 4/4

Only specifically formatted numbers are allowed 4/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',''1.2345E3''

Specifying a float when the value is an integer is invalid

Note that the attribute name NumberOfRiser has been renamed to NumberOfRisers in IFC4

Specifying a float when the value is an integer is invalid
IFC4
Entity: ''IFCSTAIRFLIGHT''
Requirements:
Attribute: Pattern(''NumberOfRiser(s)?''),''42.3''

Strict numeric checking may be done with a bounds restriction

Strict numeric checking may be done with a bounds restriction
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinInclusive(''42'') MaxInclusive(''42'')

Typecast checking may also occur within enumeration restrictions

The type defined in the enumeration needs to be compatible with the dataType. For attribute facets, the dataType is taken from the IDS schema.

ROADMAP: inconsistent types should be captured by the Audit tool.

Typecast checking may also occur within enumeration restrictions
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double Enumeration(''42'',''43'')

Value checks always fail for lists

Value checks always fail for lists
Entity: ''IFCCARTESIANPOINT''
Requirements:
Attribute: ''Coordinates'',''Foobar''

Value checks always fail for objects

Value checks always fail for objects
IFC4
Entity: ''IFCTASK''
Requirements:
Attribute: ''TaskTime'',''Foobar''

Value checks always fail for selects

Value checks always fail for selects
Entity: ''IFCSURFACESTYLERENDERING''
Requirements:
Attribute: ''DiffuseColour'',''Foobar''

Value restrictions may be used 1/3

Value restrictions may be used 1/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

Value restrictions may be used 2/3

Value restrictions may be used 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

Value restrictions may be used 3/3

Value restrictions may be used 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

classification

A classification facet with no data matches any classification 1/2

A classification facet with no data matches any classification 1/2
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''\w+'')

A classification facet with no data matches any classification 2/2

A classification facet with no data matches any classification 2/2
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''\w+'')

A prohibited facet returns the opposite of a required facet

A prohibited facet returns the opposite of a required facet
Entity: ''IFCSLAB''
Requirements:
Classification: Prohibited,Pattern(''\w+'')

A prohibited classification reference returns the opposite of a required facet

A prohibited classification reference returns the opposite of a required facet
Entity: ''IFCSLAB''
Requirements:
Classification: Prohibited,''Foobar'',''1''

A required facet checks all parameters as normal

A required facet checks all parameters as normal
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''\w+'')

A required classification system fails if no match

A required classification system fails if no match
Entity: ''IFCSLAB''
Requirements:
Classification: ''Foobar1''

An optional classification value passes if specified

An optional classification value passes if specified
Entity: ''IFCWALL''
Requirements:
Classification: Optional,Pattern(''\w+''),''ExpectedValue''

An optional classification value passes if null

An optional classification value passes if null
Entity: ''IFCWALL''
Requirements:
Classification: Optional,Pattern(''\w+''),''ExpectedValue''

An optional classification value fails if no match

An optional classification value fails if no match
Entity: ''IFCWALL''
Requirements:
Classification: Optional,Pattern(''\w+''),''ExpectedValue''

Both system and value must match (all, not any) if specified 1/2

Both system and value must match (all, not any) if specified 1/2
Entity: ''IFCSLAB''
Requirements:
Classification: ''Foobar'',''1''

Both system and value must match (all, not any) if specified 2/2

Both system and value must match (all, not any) if specified 2/2
Entity: ''IFCCOLUMN''
Requirements:
Classification: ''Foobar'',''1''

Non-rooted resources that have external classification references should also pass

Since ifc4, IFCEXTERNALREFERENCERELATIONSHIP can relate an IFCEXTERNALREFERENCE to any IFCRESOURCEOBJECTSELECT.

Non-rooted resources that have external classification references should also pass
IFC4
Entity: ''IFCMATERIAL''
Requirements:
Classification: Pattern(''\w+''),''1''

Occurrences override the type classification per system 1/3

Occurrences override the type classification per system 1/3
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''\w+''),''11''

Occurrences override the type classification per system 2/3

Occurrences override the type classification per system 2/3
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''\w+''),''22''

Occurrences override the type classification per system 3/3

Occurrences override the type classification per system 3/3
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''\w+''),''X''

Restrictions can be used for systems 1/2

Restrictions can be used for systems 1/2
Entity: ''IFCWALL''
Requirements:
Classification: Pattern(''Foo.*'')

Restrictions can be used for systems 2/2

Restrictions can be used for systems 2/2
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''Foo.*'')

Restrictions can be used for values 1/3

Restrictions can be used for values 1/3
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''\w+''),Pattern(''1.*'')

Restrictions can be used for values 2/3

Restrictions can be used for values 2/3
Entity: ''IFCCOLUMN''
Requirements:
Classification: Pattern(''\w+''),Pattern(''1.*'')

Restrictions can be used for values 3/3

Restrictions can be used for values 3/3
Entity: ''IFCBEAM''
Requirements:
Classification: Pattern(''\w+''),Pattern(''1.*'')

Systems should match exactly 1/5

Systems should match exactly 1/5
Entity: ''IFCPROJECT''
Requirements:
Classification: ''Foobar''

Systems should match exactly 2/5

Systems should match exactly 2/5
Entity: ''IFCWALL''
Requirements:
Classification: ''Foobar''

Systems should match exactly 3/5

Systems should match exactly 3/5
Entity: ''IFCSLAB''
Requirements:
Classification: ''Foobar''

Systems should match exactly 4/5

Systems should match exactly 4/5
Entity: ''IFCCOLUMN''
Requirements:
Classification: ''Foobar''

Systems should match exactly 5/5

Systems should match exactly 5/5
Entity: ''IFCBEAM''
Requirements:
Classification: ''Foobar''

Values match subreferences if full classifications are used (e.g. EF_25_10 should match EF_25_10_25, EF_25_10_30, etc)

Values match subreferences if full classifications are used (e.g. EF_25_10 should match EF_25_10_25, EF_25_10_30, etc)
Entity: ''IFCBEAM''
Requirements:
Classification: Pattern(''\w+''),''2''

Values should match exactly if lightweight classifications are used

Values should match exactly if lightweight classifications are used
Entity: ''IFCSLAB''
Requirements:
Classification: Pattern(''\w+''),''1''

entity

A matching entity should pass

A matching entity should pass
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL''

A matching predefined type should pass

A matching predefined type should pass
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''SOLIDWALL''

A null predefined type should always fail a specified predefined types

A null predefined type should always fail a specified predefined types
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''SOLIDWALL''

A predefined type from an enumeration must be uppercase

A predefined type from an enumeration must be uppercase
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''solidwall''

A predefined type may specify a user-defined element type

A predefined type may specify a user-defined element type
Entity: ''IFCWALLTYPE''
Requirements:
Entity: ''IFCWALLTYPE'',''WALDO''

A predefined type may specify a user-defined element type

A predefined type may specify a user-defined element type
Entity: ''IFCWALLTYPE''
Requirements:
Entity: ''IFCWALLTYPE'',''USERDEFINED''

A predefined type may specify a user-defined object type

This custom subType should be allowed, if custom is allowed in the enumeration. IfcWall does not have predefinedType in 2X3, so the test case is constrained to IFC4

A predefined type may specify a user-defined object type
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''WALDO''

A predefined type may specify a user-defined process type

A predefined type may specify a user-defined process type
IFC4
Entity: ''IFCTASKTYPE''
Requirements:
Entity: ''IFCTASKTYPE'',''TASKY''

An entity not matching a specified predefined type will fail

An entity not matching a specified predefined type will fail
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''SOLIDWALL''

An entity not matching the specified class should fail

An entity not matching the specified class should fail
Entity: ''IFCSLAB''
Requirements:
Entity: ''IFCWALL''

An matching entity should pass regardless of predefined type

An matching entity should pass regardless of predefined type
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL''

Entities can be specified as a XSD regex pattern 1/2

Entities can be specified as a XSD regex pattern 1/2
Entity: ''IFCWALL''
Requirements:
Entity: Pattern(''IFC.*TYPE'')

Entities can be specified as a XSD regex pattern 2/2

Entities can be specified as a XSD regex pattern 2/2
Entity: ''IFCWALLTYPE''
Requirements:
Entity: Pattern(''IFC.*TYPE'')

Entities can be specified as an enumeration 1/3

Entities can be specified as an enumeration 1/3
Entity: ''IFCWALL''
Requirements:
Entity: Enumeration(''IFCWALL'',''IFCSLAB'')

Entities can be specified as an enumeration 2/3

Entities can be specified as an enumeration 2/3
Entity: ''IFCSLAB''
Requirements:
Entity: Enumeration(''IFCWALL'',''IFCSLAB'')

Entities can be specified as an enumeration 3/3

Entities can be specified as an enumeration 3/3
Entity: ''IFCBEAM''
Requirements:
Entity: Enumeration(''IFCWALL'',''IFCSLAB'')

Entities must be specified as uppercase strings

Entities must be specified as uppercase strings
Entity: ''IFCWALL''
Requirements:
Entity: ''IfcWall''

Inherited predefined types should pass

Inherited predefined types should pass
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''X''

Invalid entities always fail

Invalid entities always fail
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCRABBIT''

Overridden predefined types should pass

Overridden predefined types should pass
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''X''

Restrictions can be specified for the predefined type 1/3

Restrictions can be specified for the predefined type 1/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')

Restrictions can be specified for the predefined type 2/3

Restrictions can be specified for the predefined type 2/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')

Restrictions can be specified for the predefined type 3/3

Restrictions can be specified for the predefined type 3/3
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',Pattern(''FOO.*'')

Subclasses are not considered as matching

Subclasses are not considered as matching
Entity: ''IFCWALLSTANDARDCASE''
Requirements:
Entity: ''IFCWALL''

User-defined types are checked case sensitively

User-defined types are checked case sensitively
IFC4
Entity: ''IFCWALL''
Requirements:
Entity: ''IFCWALL'',''WALDO''

ids

A minimal ids can check a minimal ifc (1/2)

A minimal ids can check a minimal ifc (1/2)
IFC4
Optional
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

A minimal ids can check a minimal ifc (2/2)

A minimal ids can check a minimal ifc (2/2)
IFC4
Optional
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

A specification passes only if all requirements pass (1/2)

A specification passes only if all requirements pass (1/2)
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
Attribute: ''Description'',''Foobar''

A specification passes only if all requirements pass (2/2)

A specification passes only if all requirements pass (2/2)
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
Attribute: ''Description'',''Foobar''

Optional specifications may still pass if nothing is applicable

Optional specifications may still pass if nothing is applicable
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

Prohibited specifications invalid if requirements are specified

Prohibited specifications invalid if requirements are specified
Prohibited
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

Prohibited specifications fails if the applicability matches

Prohibited specifications fails if the applicability matches
Prohibited
IFC2X3
Entity: ''IFCWALL''

Prohibited specifications passes if the applicability does not matches

Prohibited specifications passes if the applicability does not matches
Prohibited
IFC2X3
Entity: ''IFCWINDOW''

Required specifications need at least one applicable entity (1/2)

Required specifications need at least one applicable entity (1/2)
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

Required specifications need at least one applicable entity (2/2)

Required specifications need at least one applicable entity (2/2)
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

Specification optionality and facet optionality can be combined

Specification optionality and facet optionality can be combined
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''
Attribute: Optional,''Description'',''Foobar''

Specification version is purely metadata and does not impact pass or fail result

Specification version is purely metadata and does not impact pass or fail result
Optional
IFC2X3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',''Waldo''

material

A constituent set with no data will fail a value check

A constituent set with no data will fail a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

A material category may pass the value check

A material category may pass the value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

A material list with no data will fail a value check

A material list with no data will fail a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

A material name may pass the value check

A material name may pass the value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

A prohibited facet returns the opposite of a required facet

A prohibited facet returns the opposite of a required facet
Entity: ''IFCWALL''
Requirements:
Material: Prohibited,

A required facet checks all parameters as normal

A required facet checks all parameters as normal
Entity: ''IFCWALL''
Requirements:
Material: 

An optional material passes if specified

An optional material passes if specified
Entity: ''IFCWALL''
Requirements:
Material: Optional,''Foo''

An optional material passes if null

An optional material passes if null
Entity: ''IFCWALL''
Requirements:
Material: Optional,''Foo''

An optional material fails if no value matches

An optional material fails if no value matches
Entity: ''IFCWALL''
Requirements:
Material: Optional,''Foo''

Any constituent Category in a constituent set will pass a value check

Any constituent Category in a constituent set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any constituent Name in a constituent set will pass a value check

Any constituent Name in a constituent set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any layer Category in a layer set will pass a value check

Any layer Category in a layer set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any layer Name in a layer set will pass a value check

Any layer Name in a layer set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Category in a constituent set will pass a value check

Any material Category in a constituent set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Category in a layer set will pass a value check

Any material Category in a layer set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Category in a list will pass a value check

Any material Category in a list will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material category in a profile set will pass a value check

Any material category in a profile set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Name in a constituent set will pass a value check

Any material Name in a constituent set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Name in a layer set will pass a value check

Any material Name in a layer set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Name in a list will pass a value check

Any material Name in a list will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any material Name in a profile set will pass a value check

Any material Name in a profile set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any profile Category in a profile set will pass a value check

Any profile Category in a profile set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Any profile Name in a profile set will pass a value check

Any profile Name in a profile set will pass a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Elements with any material will pass an empty material facet

Elements with any material will pass an empty material facet
Entity: ''IFCWALL''
Requirements:
Material: 

Elements without a material always fail

Elements without a material always fail
Entity: ''IFCWALL''
Requirements:
Material: 

Material with no data will fail a value check

Material with no data will fail a value check
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Occurrences can inherit materials from their types

Occurrences can inherit materials from their types
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

Occurrences can override materials from their types

Occurrences can override materials from their types
Entity: ''IFCWALL''
Requirements:
Material: ''Foo''

partof

A group entity must match exactly 1/2

A group entity must match exactly 1/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCGROUP'',IFCRELASSIGNSTOGROUP

A group entity must match exactly 2/2

A group entity must match exactly 2/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCINVENTORY'',IFCRELASSIGNSTOGROUP

A group predefined type must match exactly 2/2

A group predefined type must match exactly 2/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCINVENTORY'',''BUNNARY'',IFCRELASSIGNSTOGROUP

A group predefined type must match exactly 2/2

A group predefined type must match exactly 2/2
IFC4
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCINVENTORY'',''BUNNY'',IFCRELASSIGNSTOGROUP

A grouped element passes a group relationship

A grouped element passes a group relationship
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: Pattern(''.*''),IFCRELASSIGNSTOGROUP

A non aggregated element fails an aggregate relationship

A non aggregated element fails an aggregate relationship
Entity: ''IFCWALL''
Requirements:
PartOf: Pattern(''.*''),IFCRELAGGREGATES

A non grouped element fails a group relationship

A non grouped element fails a group relationship
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: Pattern(''.*''),IFCRELASSIGNSTOGROUP

A prohibited facet returns the opposite of a required facet

A prohibited facet returns the opposite of a required facet
Entity: ''IFCWALL''
Requirements:
PartOf: Prohibited,Pattern(''.*''),IFCRELAGGREGATES

A required facet checks all parameters as normal

A required facet checks all parameters as normal
Entity: ''IFCWALL''
Requirements:
PartOf: Pattern(''.*''),IFCRELAGGREGATES

An aggregate entity may pass any ancestral whole passes

An aggregate entity may pass any ancestral whole passes
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCELEMENTASSEMBLY'',IFCRELAGGREGATES

An aggregate may specify the entity of the whole 1/2

An aggregate may specify the entity of the whole 1/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCSLAB'',IFCRELAGGREGATES

An aggregate may specify the entity of the whole 2/2

An aggregate may specify the entity of the whole 2/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCWALL'',IFCRELAGGREGATES

An aggregate may specify the predefined type of the whole 1/2

An aggregate may specify the predefined type of the whole 1/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCSLAB'',''BASESLAB'',IFCRELAGGREGATES

An aggregate may specify the predefined type of the whole 2/2

An aggregate may specify the predefined type of the whole 2/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCSLAB'',''SLABRADOR'',IFCRELAGGREGATES

Any contained element passes a containment relationship 1/2

Any contained element passes a containment relationship 1/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: Pattern(''.*''),IFCRELCONTAINEDINSPATIALSTRUCTURE

Any contained element passes a containment relationship 2/2

Any contained element passes a containment relationship 2/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: Pattern(''.*''),IFCRELCONTAINEDINSPATIALSTRUCTURE

Any nested part passes a nest relationship

Any nested part passes a nest relationship
Entity: ''IFCDISCRETEACCESSORY''
Requirements:
PartOf: Pattern(''.*''),IFCRELNESTS

Any nested whole fails a nest relationship

Any nested whole fails a nest relationship
IFC4
Entity: ''IFCFURNITURE''
Requirements:
PartOf: Pattern(''.*''),IFCRELNESTS

Nesting may be indirect

Nesting may be indirect
IFC4
Entity: ''IFCMECHANICALFASTENER''
Requirements:
PartOf: ''IFCFURNITURE'',IFCRELNESTS

The aggregated part passes an aggregate relationship

The aggregated part passes an aggregate relationship
Entity: ''IFCWALL''
Requirements:
PartOf: Pattern(''.*''),IFCRELAGGREGATES

The aggregated whole fails an aggregate relationship

The aggregated whole fails an aggregate relationship
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: Pattern(''.*''),IFCRELAGGREGATES

The container entity must match exactly 1/2

The container entity must match exactly 1/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCSITE'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The container entity must match exactly 2/2

The container entity must match exactly 2/2
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCSPACE'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The container itself always fails

The container itself always fails
Entity: ''IFCSPACE''
Requirements:
PartOf: Pattern(''.*''),IFCRELCONTAINEDINSPATIALSTRUCTURE

The container must be related using specified relation 1/2

The container must be related using specified relation 1/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCSPACE'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The container must be related using specified relation 2/2

The container must be related using specified relation 2/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCSPACE'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The containment can be indirect 1/2

The containment can be indirect 1/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCBUILDING'',IFCRELAGGREGATES

The containment can be indirect 2/2

The containment can be indirect 2/2
Entity: ''IFCBEAM''
Requirements:
PartOf: ''IFCBUILDING'',IFCRELAGGREGATES

The container predefined type must match exactly 1/2

The container predefined type must match exactly 1/2
IFC4
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCSPACE'',''WARREN'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The container predefined type must match exactly 2/2

The container predefined type must match exactly 2/2
IFC4
Entity: ''IFCELEMENTASSEMBLY''
Requirements:
PartOf: ''IFCSPACE'',''BURROW'',IFCRELCONTAINEDINSPATIALSTRUCTURE

The nest entity must match exactly 1/2

The nest entity must match exactly 1/2
Entity: ''IFCDISCRETEACCESSORY''
Requirements:
PartOf: ''IFCBEAM'',IFCRELNESTS

The nest entity must match exactly 2/2

The nest entity must match exactly 2/2
IFC4
Entity: ''IFCDISCRETEACCESSORY''
Requirements:
PartOf: ''IFCFURNITURE'',IFCRELNESTS

The nest predefined type must match exactly 1/2

The nest predefined type must match exactly 1/2
IFC4
Entity: ''IFCDISCRETEACCESSORY''
Requirements:
PartOf: ''IFCFURNITURE'',''LITTERBOX'',IFCRELNESTS

The nest predefined type must match exactly 2/2

The nest predefined type must match exactly 2/2
IFC4
Entity: ''IFCDISCRETEACCESSORY''
Requirements:
PartOf: ''IFCFURNITURE'',''WATERBOTTLE'',IFCRELNESTS

property

A logical unknown is considered false and will not pass

IFCDURATION is not available in IFC2x3

A logical unknown is considered false and will not pass
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDURATION

A name check will match any property with any string value

A name check will match any property with any string value
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

A name check will match any quantity with any value

A name check will match any quantity with any value
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE

A number specified as a string is treated as a string

A number specified as a string is treated as a string
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''1''

A prohibited facet returns the opposite of a required facet

A prohibited facet returns the opposite of a required facet
Entity: ''IFCWALL''
Requirements:
Property: Prohibited,''Foo_Bar'',''Foo''

A property set to false is still considered a value and will pass a name check

A property set to false is still considered a value and will pass a name check
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCBOOLEAN

A property set to true will pass a name check

A property set to true will pass a name check
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCBOOLEAN

A required facet checks all parameters as normal

A required facet checks all parameters as normal
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

A zero duration will pass

IFCDURATION is not available in IFC2x3

A zero duration will pass
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDURATION

All matching properties must satisfy requirements 1/3

All matching properties must satisfy requirements 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,''x''

All matching properties must satisfy requirements 2/3

All matching properties must satisfy requirements 2/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,''x''

All matching properties must satisfy requirements 3/3

All matching properties must satisfy requirements 3/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,''x''

All matching property sets must satisfy requirements 1/3

All matching property sets must satisfy requirements 1/3
Entity: ''IFCWALL''
Requirements:
Property: Pattern(''Foo_.*''),''Foo'',IFCLABEL

All matching property sets must satisfy requirements 2/3

All matching property sets must satisfy requirements 2/3
Entity: ''IFCWALL''
Requirements:
Property: Pattern(''Foo_.*''),''Foo'',IFCLABEL

All matching property sets must satisfy requirements 3/3

All matching property sets must satisfy requirements 3/3
Entity: ''IFCWALL''
Requirements:
Property: Pattern(''Foo_.*''),''Foo'',IFCLABEL

An empty string is considered false and will not pass

An empty string is considered false and will not pass
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLOGICAL

An optional facet always passes regardless of outcome 1/2

An optional facet always passes regardless of outcome 1/2
Entity: ''IFCWALL''
Requirements:
Property: Optional,''Foo_Bar'',''Foo'',IFCLABEL

An optional facet always passes regardless of outcome 2/2

An optional facet always passes regardless of outcome 2/2
Entity: ''IFCWALL''
Requirements:
Property: Optional,''Foo_Bar'',''Bar'',IFCLABEL

Any matching value in a bounded property will pass 1/4

Any matching value in a bounded property will pass 1/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''1''

Any matching value in a bounded property will pass 2/4

Any matching value in a bounded property will pass 2/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''5''

Any matching value in a bounded property will pass 3/4

Any matching value in a bounded property will pass 3/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''3''

Any matching value in a bounded property will pass 4/4

Any matching value in a bounded property will pass 4/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''2''

Any matching value in a list property will pass 1/3

Any matching value in a list property will pass 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''X''

Any matching value in a list property will pass 2/3

Any matching value in a list property will pass 2/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Y''

Any matching value in a list property will pass 3/3

Any matching value in a list property will pass 3/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Z''

Any matching value in a table property will pass 1/3

Any matching value in a table property will pass 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''X''

Any matching value in a table property will pass 2/3

Any matching value in a table property will pass 2/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''1''

Any matching value in a table property will pass 3/3

Any matching value in a table property will pass 3/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Y''

Any matching value in an enumerated property will pass 1/3

Any matching value in an enumerated property will pass 1/3
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Pset_WallCommon'',''Status'',IFCLABEL,''EXISTING''

Any matching value in an enumerated property will pass 2/3

Any matching value in an enumerated property will pass 2/3
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Pset_WallCommon'',''Status'',IFCLABEL,''DEMOLISH''

No matching value in an enumerated property will fail 3/3

No matching value in an enumerated property will fail 3/3
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Pset_WallCommon'',''Status'',IFCLABEL,''NEW''

Booleans must be specified as lowercase strings 1/3

Booleans must be specified as lowercase strings 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCBOOLEAN,''true''

Booleans must be specified as lowercase strings 2/3

Booleans must be specified as lowercase strings 2/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCBOOLEAN,''false''

Booleans must be specified as lowercase strings 3/3

Booleans must be specified as lowercase strings 3/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCBOOLEAN,''FALSE''

Complex properties are not supported 1/2

Complex properties are not supported 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE

Complex properties are not supported 2/2

Complex properties are not supported 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo'',''MyLength'',IFCLENGTHMEASURE

Dates are treated as strings 1/2

Dates are treated as strings 1/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDATE,''2022-01-01''

Dates are treated as strings 2/2

Dates are treated as strings 2/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDATE,''2022-01-01''

Durations are treated as strings 1/2

IFCDURATION is not available in IFC2x3

Durations are treated as strings 1/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDURATION,''PT16H''

Durations are treated as strings 1/2

IFCDURATION is not available in IFC2x3

Durations are treated as strings 1/2
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCDURATION,''PT16H''

Elements with a matching pset but no property also fail

Elements with a matching pset but no property also fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

Elements with no properties always fail

Elements with no properties always fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

IDS does not handle string truncation such as for identifiers

IDS does not handle string truncation such as for identifiers
IFC4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCIDENTIFIER,''123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345_extra_characters''

If multiple properties are matched, all values must satisfy requirements 1/2

If multiple properties are matched, all values must satisfy requirements 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,Enumeration(''x'',''y'')

If multiple properties are matched, all values must satisfy requirements 2/2

If multiple properties are matched, all values must satisfy requirements 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',Pattern(''Foo.*''),IFCLABEL,Enumeration(''x'',''y'')

Integer values are checked using type casting 1/4

Integer values are checked using type casting 1/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCINTEGER,''42''

Integer values cannot be stored with decimal 2/4

Integer values cannot be stored with decimal 2/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCINTEGER,''42.''

Integer values cannot be stored with decimal 3/4

Integer values cannot be stored with decimal 3/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCINTEGER,''42.0''

Integer values are checked using type casting 4/4

Integer values are checked using type casting 4/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCINTEGER,''42.3''

Measures are used to specify an IFC data type 1/2

Measures are used to specify an IFC data type 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCTIMEMEASURE,''2''

Measures are used to specify an IFC data type 2/2

Measures are used to specify an IFC data type 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCTIMEMEASURE,''2''

Non-ascii characters are treated without encoding

Non-ascii characters are treated without encoding
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''♫Don'tÄrgerhôtelЊет''

Only specifically formatted numbers are allowed 1/4

Only specifically formatted numbers are allowed 1/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''42,3''

Only specifically formatted numbers are allowed 2/4

Only specifically formatted numbers are allowed 2/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''123,4.5''

Only specifically formatted numbers are allowed 3/4

Only specifically formatted numbers are allowed 3/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.2345e3''

Only specifically formatted numbers are allowed 4/4

Only specifically formatted numbers are allowed 4/4
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.2345E3''

Predefined properties are supported but discouraged 1/2

Predefined properties are supported but discouraged 1/2
Entity: ''IFCDOOR''
Requirements:
Property: ''Foo_Bar'',''PanelOperation'',IFCDOORPANELOPERATIONENUM,''SWINGING''

Predefined properties are supported but discouraged 2/2

Predefined properties are supported but discouraged 2/2
Entity: ''IFCDOOR''
Requirements:
Property: ''Foo_Bar'',''PanelOperation'',IFCDOORPANELOPERATIONENUM,''SWONGING''

Properties can be inherited from the type 1/2

Properties can be inherited from the type 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

Properties can be inherited from the type 2/2

Properties can be inherited from the type 2/2
Entity: ''IFCWALLTYPE''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

Properties can be overriden by an occurrence 1/2

Properties can be overriden by an occurrence 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Bar''

Properties can be overriden by an occurrence 2/2

Properties can be overriden by an occurrence 2/2
Entity: ''IFCWALLTYPE''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Bar''

Properties with a null value fail

Properties with a null value fail
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

Quantities must also match the appropriate measure

Quantities must also match the appropriate measure
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCAREAMEASURE

Real values are checked using type casting 1/3

Real values are checked using type casting 1/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''42''

Real values are checked using type casting 2/3

Real values are checked using type casting 2/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.0''

Real values are checked using type casting 3/3

Real values are checked using type casting 3/3
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''42.3''

Reference properties are treated as objects and not supported

Reference properties are treated as objects and not supported
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL

Specifying a value fails against different values

Specifying a value fails against different values
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Bar''

Specifying a value performs a case-sensitive match 1/2

Specifying a value performs a case-sensitive match 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Bar''

Specifying a value performs a case-sensitive match 2/2

Specifying a value performs a case-sensitive match 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLABEL,''Bar''

Unit conversions shall take place to IDS-nominated standard units 1/2

Unit conversions shall take place to IDS-nominated standard units 1/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''2''

Unit conversions shall take place to IDS-nominated standard units 2/2

Unit conversions shall take place to IDS-nominated standard units 2/2
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCLENGTHMEASURE,''2''

Properties can be associated to relevant object types

The audit tool restricts properties starting with the reserved prefix Pset_ to the appropriate objects, but they can also be associated to the relevant types. E.g. Pset_WallCommon on IFCWALLTYPE.

The provided IFC fails because one of the property sets defines the invalid value FOOBAR.

Properties can be associated to relevant object types
Optional
IFC4
Entity: ''IFCWALLTYPE''
Requirements:
Property: ''Pset_WallCommon'',''FireRating'',IFCLABEL,Pattern(''(-|[0-9]{2,3})\/(-|[0-9]{2,3})\/(-|[0-9]{2,3})'')

restriction

A bound can be exclusive 1/3

A bound can be exclusive 1/3
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinExclusive(''0'') MaxExclusive(''10'')

A bound can be inclusive 1/4

A bound can be inclusive 1/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinInclusive(''0'') MaxInclusive(''10'')

A bound can be exclusive 2/3

A bound can be exclusive 2/3
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinExclusive(''0'') MaxExclusive(''10'')

A bound can be inclusive 2/4

A bound can be inclusive 2/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinInclusive(''0'') MaxInclusive(''10'')

A bound can be exclusive 3/3

A bound can be exclusive 3/3
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinExclusive(''0'') MaxExclusive(''10'')

A bound can be inclusive 3/4

A bound can be inclusive 3/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinInclusive(''0'') MaxInclusive(''10'')

A bound can be inclusive 4/4

A bound can be inclusive 4/4
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',xs:double MinInclusive(''0'') MaxInclusive(''10'')

An enumeration matches case sensitively 1/3

An enumeration matches case sensitively 1/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

An enumeration matches case sensitively 2/3

An enumeration matches case sensitively 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

An enumeration matches case sensitively 3/3

An enumeration matches case sensitively 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

An enumeration matches case sensitively 4/3

An enumeration matches case sensitively 4/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Enumeration(''Foo'',''Bar'')

Length checks can be used 1/2

Length checks can be used 1/2
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Length(''2'')

Length checks can be used 1/2

Length checks can be used 1/2
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Length(''2'')

Max and min length checks can be used 1/3

Max and min length checks can be used 1/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',MinLength(''2'') MaxLength(''3'')

Max and min length checks can be used 2/3

Max and min length checks can be used 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',MinLength(''2'') MaxLength(''3'')

Max and min length checks can be used 3/3

Max and min length checks can be used 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',MinLength(''2'') MaxLength(''3'')

Max and min length checks can be used 4/3

Max and min length checks can be used 4/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',MinLength(''2'') MaxLength(''3'')

Patterns always invalid on any number

Patterns always invalid on any number
Optional
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',Pattern(''.*'')

Patterns only work on strings and nothing else

Patterns only work on strings and nothing else
Entity: ''IFCSURFACESTYLEREFRACTION''
Requirements:
Attribute: ''RefractionIndex'',Pattern(''.*'')

Regex patterns can be used 1/3

Regex patterns can be used 1/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Pattern(''[A-Z]{2}[0-9]{2}'')

Regex patterns can be used 2/3

Regex patterns can be used 2/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Pattern(''[A-Z]{2}[0-9]{2}'')

Regex patterns can be used 3/3

Regex patterns can be used 3/3
Entity: ''IFCWALL''
Requirements:
Attribute: ''Name'',Pattern(''[A-Z]{2}[0-9]{2}'')

tolerance

Comparison tolerance for floating point positive high number lower bound

Comparison tolerance for floating point positive high number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''

Comparison tolerance for floating point positive high number lower bound

Comparison tolerance for floating point positive high number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''

Comparison tolerance for floating point positive high number upper bound

Comparison tolerance for floating point positive high number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''

Comparison tolerance for floating point positive high number upper bound

Comparison tolerance for floating point positive high number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''100000.''

Comparison tolerance for floating point one lower bound

Comparison tolerance for floating point one lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''

Comparison tolerance for floating point one lower bound

Comparison tolerance for floating point one lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''

Comparison tolerance for floating point one upper bound

Comparison tolerance for floating point one upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''

Comparison tolerance for floating point one upper bound

Comparison tolerance for floating point one upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''1.''

Comparison tolerance for floating point positive low number lower bound

Comparison tolerance for floating point positive low number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''

Comparison tolerance for floating point positive low number lower bound

Comparison tolerance for floating point positive low number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''

Comparison tolerance for floating point positive low number upper bound

Comparison tolerance for floating point positive low number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''

Comparison tolerance for floating point positive low number upper bound

Comparison tolerance for floating point positive low number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.0000001''

Comparison tolerance for floating point zero lower bound

Comparison tolerance for floating point zero lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''

Comparison tolerance for floating point zero lower bound

Comparison tolerance for floating point zero lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''

Comparison tolerance for floating point zero upper bound

Comparison tolerance for floating point zero upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''

Comparison tolerance for floating point zero upper bound

Comparison tolerance for floating point zero upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''0.''

Comparison tolerance for floating point negative low number lower bound

Comparison tolerance for floating point negative low number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''

Comparison tolerance for floating point negative low number lower bound

Comparison tolerance for floating point negative low number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''

Comparison tolerance for floating point negative low number upper bound

Comparison tolerance for floating point negative low number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''

Comparison tolerance for floating point negative low number upper bound

Comparison tolerance for floating point negative low number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-0.0000001''

Comparison tolerance for floating point negative one lower bound

Comparison tolerance for floating point negative one lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''

Comparison tolerance for floating point negative one lower bound

Comparison tolerance for floating point negative one lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''

Comparison tolerance for floating point negative one upper bound

Comparison tolerance for floating point negative one upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''

Comparison tolerance for floating point negative one upper bound

Comparison tolerance for floating point negative one upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1.''

Comparison tolerance for floating point negative high number lower bound

Comparison tolerance for floating point negative high number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''

Comparison tolerance for floating point negative high number lower bound

Comparison tolerance for floating point negative high number lower bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''

Comparison tolerance for floating point negative high number upper bound

Comparison tolerance for floating point negative high number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''

Comparison tolerance for floating point negative high number upper bound

Comparison tolerance for floating point negative high number upper bound
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,''-1000000.''

Comparison tolerance for floating point range greater than zero exclusive

Comparison tolerance for floating point range greater than zero exclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinExclusive(''0.'')

Comparison tolerance for floating point range greater than zero exclusive

Comparison tolerance for floating point range greater than zero exclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinExclusive(''0.'')

Comparison tolerance for floating point range greater than zero inclusive

Comparison tolerance for floating point range greater than zero inclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinInclusive(''0.'')

Comparison tolerance for floating point range greater than zero inclusive

Comparison tolerance for floating point range greater than zero inclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MinInclusive(''0.'')

Comparison tolerance for floating point range lower than zero exclusive

Comparison tolerance for floating point range lower than zero exclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxExclusive(''0.'')

Comparison tolerance for floating point range lower than zero exclusive

Comparison tolerance for floating point range lower than zero exclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxExclusive(''0.'')

Comparison tolerance for floating point range lower than zero inclusive

Comparison tolerance for floating point range lower than zero inclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxInclusive(''0.'')

Comparison tolerance for floating point range lower than zero inclusive

Comparison tolerance for floating point range lower than zero inclusive
Entity: ''IFCWALL''
Requirements:
Property: ''Foo_Bar'',''Foo'',IFCREAL,xs:double MaxInclusive(''0.'')