mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-08-10 17:58:20 +00:00
Fix error showing material/profile psets in bbim after 691815fd41
This commit is contained in:
@@ -445,11 +445,18 @@ def get_elements_by_pset(pset: ifcopenshell.entity_instance) -> set[ifcopenshell
|
||||
"""Retrieve the elements (or element types) that are using the provided property set."""
|
||||
is_ifc2x3 = pset.file.schema == "IFC2X3"
|
||||
elements = set()
|
||||
rels = pset.PropertyDefinitionOf if is_ifc2x3 else pset.DefinesOccurrence
|
||||
for rel in rels:
|
||||
elements.update(rel.RelatedObjects)
|
||||
for element_type in pset.DefinesType:
|
||||
elements.add(element_type)
|
||||
if pset.is_a("IfcPropertySet"):
|
||||
rels = pset.PropertyDefinitionOf if is_ifc2x3 else pset.DefinesOccurrence
|
||||
for rel in rels:
|
||||
elements.update(rel.RelatedObjects)
|
||||
for element_type in pset.DefinesType:
|
||||
elements.add(element_type)
|
||||
elif pset.is_a("IfcProfileProperties"):
|
||||
elements.add(pset.ProfileDefinition)
|
||||
elif pset.is_a("IfcMaterialProperties"):
|
||||
elements.add(pset.Material)
|
||||
else:
|
||||
raise Exception(f"Unexpected pset type: '{pset.is_a()}' ({pset}).")
|
||||
return elements
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user