IfcTester should not check requirements for prohibited specifications

This commit is contained in:
Dion Moult
2026-01-21 19:43:37 +11:00
parent db52703ce3
commit 41c6eba193
2 changed files with 4 additions and 13 deletions
-1
View File
@@ -1287,7 +1287,6 @@ class IfcImporter:
) )
class IfcImportSettings: class IfcImportSettings:
""" """
Initialize only using `IfcImportSettings.factory()`. Initialize only using `IfcImportSettings.factory()`.
+4 -12
View File
@@ -300,23 +300,15 @@ class Specification:
if not is_applicable: if not is_applicable:
continue continue
self.applicable_entities.append(element) self.applicable_entities.append(element)
for facet in self.requirements: if self.maxOccurs != 0: # Requirements are skipped for prohibited applicability
result = facet(element) for facet in self.requirements:
is_pass = bool(result) result = facet(element)
if self.maxOccurs != 0: # This is a required or optional specification if bool(result):
if is_pass:
self.passed_entities.add(element) self.passed_entities.add(element)
facet.passed_entities.add(element) facet.passed_entities.add(element)
else: else:
self.failed_entities.add(element) self.failed_entities.add(element)
facet.failures.append(FacetFailure(element=element, reason=str(result))) facet.failures.append(FacetFailure(element=element, reason=str(result)))
else: # This is a prohibited specification
if is_pass:
self.failed_entities.add(element)
facet.failures.append(FacetFailure(element=element, reason=str(result)))
else:
self.passed_entities.add(element)
facet.passed_entities.add(element)
self.status = True self.status = True
for facet in self.requirements: for facet in self.requirements: