From 329fdb5afa616c56cb0f9abb785b872dd2eb1b95 Mon Sep 17 00:00:00 2001 From: Bruno Postle Date: Tue, 24 Feb 2026 23:41:17 +0000 Subject: [PATCH] Document IDS ? wildcard gotcha in CLAUDE.md --- CLAUDE.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/CLAUDE.md b/CLAUDE.md index f4a793e..3feb9f4 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -498,6 +498,29 @@ Use `should_purge: false` to add/update properties without removing existing one **Known ifctester quirk with boolean applicability filters:** ifctester may flag elements even when their boolean property value does not match the applicability filter (e.g., an `IsExternal=True` wall being matched by an `IsExternal=False` filter). Treat the reported failing elements as authoritative — add whatever the requirement asks for, regardless of whether the applicability logic seems correct. +**`?` is NOT a wildcard in ifctester — it matches the literal string `"?"`.** +To check that an attribute has any non-empty value, use an `xs:restriction` pattern instead: + +```xml + + + Name + ? + + + + + Name + + + + + + +``` + +This applies to `` requirements. The `xmlns:xs="http://www.w3.org/2001/XMLSchema"` namespace must be declared on the root `` element (it is in the standard IDS template). + ### ifcopenshell.validate Lower-level programmatic validation: