This commit is contained in:
Andrej730
2024-09-23 19:33:16 +05:00
parent a51ed6e6b3
commit 65f9a745a3
4 changed files with 14 additions and 7 deletions
+3 -1
View File
@@ -121,7 +121,9 @@ class BIMRootProperties(PropertyGroup):
ifc_class: EnumProperty(items=get_ifc_classes, name="Class", update=refresh_predefined_types)
ifc_predefined_type: EnumProperty(items=get_ifc_predefined_types, name="Predefined Type", default=None)
ifc_userdefined_type: StringProperty(name="Userdefined Type")
representation_template: bpy.props.EnumProperty(items=get_representation_template, name="Representation Template", default=0)
representation_template: bpy.props.EnumProperty(
items=get_representation_template, name="Representation Template", default=0
)
relating_class_object: PointerProperty(
type=bpy.types.Object,
name="Copy Class",
+2 -1
View File
@@ -8,6 +8,7 @@ from ifcopenshell.util.classification import get_references
CostItem = dict[str, Any]
class ifc5D2json:
def __init__(self):
self.json: str = None
@@ -72,7 +73,7 @@ class ifc5D2json:
del data["ReferencedSource"]
results.append(data)
return results
def check_if_cost_item_is_sum(self, cost_item: ifcopenshell.entity_instance) -> bool:
cost_values = []
if cost_item.is_a("IfcCostItem"):
@@ -66,6 +66,7 @@ def get_inherited_references(reference: Optional[ifcopenshell.entity_instance])
reference = reference.ReferencedSource
return results
def get_classification_data(file: ifcopenshell.file) -> Optional[tuple[list[dict], str]]:
if not file or not file.by_type("IfcClassification"):
return [], ""
@@ -77,8 +78,10 @@ def get_classification_data(file: ifcopenshell.file) -> Optional[tuple[list[dict
del data["ReferencedSource"]
data["referenced_source"] = reference.ReferencedSource.id() if reference.ReferencedSource else None
data["has_references"] = bool(reference.HasReferences)
data["references"] = [process_references(ref) for ref in reference.HasReferences] if reference.HasReferences else []
data["references"] = (
[process_references(ref) for ref in reference.HasReferences] if reference.HasReferences else []
)
return data
classification_data = [process_references(reference) for reference in classification.HasReferences]
return classification_data, classification_name
return classification_data, classification_name
@@ -1631,10 +1631,11 @@ def copy_deep(
new[i] = attribute
return new
def has_property(product: ifcopenshell.entity_instance, property_name: str) -> bool:
"""
Check if a product has a property with a given name.
:param product: The IFC product
:type product: ifcopenshell.entity_instance
:param property_name: The property name
@@ -1645,11 +1646,11 @@ def has_property(product: ifcopenshell.entity_instance, property_name: str) -> b
Example:
.. code:: python
product = file.by_type("IfcWall")[0]
has_property = ifcopenshell.util.element.has_property(product, "NetArea")
"""
if not property_name:
return True
qtos = get_psets(product, qtos_only=True)
return any(property_name in quantities.keys() for quantities in qtos.values())
return any(property_name in quantities.keys() for quantities in qtos.values())