From 6cd1375cf9047fff0e75101eab7a42f17cb721fe Mon Sep 17 00:00:00 2001 From: Thomas Krijnen Date: Thu, 15 Jan 2026 13:00:37 +0100 Subject: [PATCH] Rerun rule compilation for exists() on indeterminate --- src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py | 4 ++-- src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py | 4 ++-- src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py | 4 ++-- src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py | 4 ++-- src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_ADD1.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_ADD2.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_RC1.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_RC2.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_RC3.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_RC4.py | 4 ++-- .../ifcopenshell/express/rules/IFC4X3_TC1.py | 4 ++-- 12 files changed, 24 insertions(+), 24 deletions(-) diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py index a559e653fd..b02aa85a4f 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC2X3.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py index 0df12ba768..7145a5064a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py index a439d6326c..0f7a92cfeb 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X1.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py index 1f5afbb430..04cc8fc65f 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X2.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py index 160ab10a24..50a22a0161 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py index 1f8ec4d814..34492afc7a 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD1.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py index fee0cae2d4..c532ca12b2 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_ADD2.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py index a0264691a5..9f1fbe93ed 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC1.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py index f0e066c242..c369e9fad6 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC2.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py index c4134a28de..e246f44608 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC3.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py index 67e6f4c075..e48e90e710 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_RC4.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default diff --git a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py index 56317dc5fb..409836bbba 100644 --- a/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py +++ b/src/ifcopenshell-python/ifcopenshell/express/rules/IFC4X3_TC1.py @@ -3,11 +3,11 @@ import ifcopenshell def exists(v): if callable(v): try: - return v() is not None + return exists(v()) except IndexError as e: return False else: - return v is not None + return v is not None and v is not INDETERMINATE def nvl(v, default): return v if v is not None else default