Skip to content

Commit 64c5231

Browse files
authored
fix no cardinality check on entity requirements
as proposed in IfcOpenShell#6960
1 parent 39f4abe commit 64c5231

1 file changed

Lines changed: 10 additions & 7 deletions

File tree

src/ifctester/ifctester/facet.py

Lines changed: 10 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -130,13 +130,16 @@ def to_string(
130130
is_prohibited = False
131131
if specification and specification.maxOccurs == 0:
132132
is_prohibited = not is_prohibited
133-
if requirement and requirement.cardinality == "prohibited":
134-
is_prohibited = not is_prohibited
135-
templates = self.prohibited_templates if is_prohibited else self.requirement_templates
136-
if requirement and requirement.cardinality == "optional":
137-
templates = [
138-
t.replace("shall", "may").replace("Shall", "May").replace("must", "may") for t in templates
139-
]
133+
templates = self.requirement_templates
134+
if not isinstance(requirement, ids.Entity):
135+
if requirement and requirement.cardinality == "prohibited":
136+
is_prohibited = not is_prohibited
137+
if is_prohibited:
138+
templates = self.prohibited_templates
139+
if requirement and requirement.cardinality == "optional":
140+
templates = [
141+
t.replace("shall", "may").replace("Shall", "May").replace("must", "may") for t in templates
142+
]
140143

141144
for template in templates:
142145
total_variables = len(template) - len(template.replace("{", ""))

0 commit comments

Comments
 (0)