buildingSMART / buildingSMART/validate

IfcCurveStyle WR11 check compares against 'bylayer' instead of 'by layer'

Open
#305 1 comment 0 reactions 1 assignee Claimed by @aothms View on GitHub
Dominant language
Python
Stars
67
Forks
20
Avg merge
1d 14h
Merged PRs (30d)
13

Description

Schema: IFC2X3

Rule: IfcCurveStyle.WR11
Expected behaviour
Per the official EXPRESS specification, when CurveWidth is given as an IfcDescriptiveMeasure, it must equal the string 'by layer' (with a space):
WR11: ... (('IFCMEASURERESOURCE.IFCDESCRIPTIVEMEASURE' IN TYPEOF(CurveWidth)) AND (CurveWidth = 'by layer'))
Actual behaviour
The validation report shows the runtime check comparing against 'bylayer' (no space) instead:
IfcDescriptiveMeasure('by layer') == 'bylayer'
This produces a false Error on every instance where CurveWidth is correctly set to 'by layer' per the standard, since it's being compared to the wrong string.
Example
Instance from an IFC2X3 file:
#11695=IfcCurveStyle(,,
,,IfcDescriptiveMeasure('by layer'),$)
Six instances failed for this identical reason in the same file: #11695, #11595, #11495, #11395, #5794, #5729
Happy to share the full validation report if useful.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.