diff --git a/src/blenderbim/blenderbim/bim/module/pset/data.py b/src/blenderbim/blenderbim/bim/module/pset/data.py index a5f4d66311..739b1d7c97 100644 --- a/src/blenderbim/blenderbim/bim/module/pset/data.py +++ b/src/blenderbim/blenderbim/bim/module/pset/data.py @@ -91,7 +91,9 @@ class ObjectPsetsData(Data): element = tool.Ifc.get_entity(obj) if not element: return [] - psets = blenderbim.bim.schema.ifc.psetqto.get_applicable(element.is_a(), pset_only=True) + psets = blenderbim.bim.schema.ifc.psetqto.get_applicable( + element.is_a(), ifcopenshell.util.element.get_predefined_type(element), pset_only=True + ) psetnames = cls.format_pset_enum(psets) assigned_names = ifcopenshell.util.element.get_psets(element, psets_only=True, should_inherit=False).keys() return [p for p in psetnames if p[0] not in assigned_names] @@ -102,7 +104,9 @@ class ObjectPsetsData(Data): element = tool.Ifc.get_entity(obj) if not element: return [] - qtos = blenderbim.bim.schema.ifc.psetqto.get_applicable(element.is_a(), qto_only=True) + qtos = blenderbim.bim.schema.ifc.psetqto.get_applicable( + element.is_a(), ifcopenshell.util.element.get_predefined_type(element), qto_only=True + ) return cls.format_pset_enum(qtos) @classmethod diff --git a/src/blenderbim/blenderbim/tool/pset.py b/src/blenderbim/blenderbim/tool/pset.py index 1c115f7e1e..5a968052bf 100644 --- a/src/blenderbim/blenderbim/tool/pset.py +++ b/src/blenderbim/blenderbim/tool/pset.py @@ -56,7 +56,12 @@ class Pset(blenderbim.core.tool.Pset): @classmethod def is_pset_applicable(cls, element, pset_name): - return bool(pset_name in blenderbim.bim.schema.ifc.psetqto.get_applicable_names(element.is_a(), pset_only=True)) + return bool( + pset_name + in blenderbim.bim.schema.ifc.psetqto.get_applicable_names( + element.is_a(), ifcopenshell.util.element.get_predefined_type(element), pset_only=True + ) + ) @classmethod def is_pset_empty(cls, pset): @@ -69,7 +74,7 @@ class Pset(blenderbim.core.tool.Pset): @classmethod def enable_pset_editing(cls, pset_id=None, pset_name=None, pset_type=None, obj=None, obj_type=None): - #TODO REFACTOR ONCE toll/CORE functions are available + # TODO REFACTOR ONCE toll/CORE functions are available bpy.ops.bim.enable_pset_editing( pset_id=0, pset_name=tool.Pset.get_pset_name(obj, obj_type), pset_type="PSET", obj=obj, obj_type=obj_type - ) \ No newline at end of file + ) diff --git a/src/blenderbim/blenderbim/tool/qto.py b/src/blenderbim/blenderbim/tool/qto.py index 60ec399fec..558fce008d 100644 --- a/src/blenderbim/blenderbim/tool/qto.py +++ b/src/blenderbim/blenderbim/tool/qto.py @@ -70,7 +70,9 @@ class Qto(blenderbim.core.tool.Qto): def get_applicable_base_quantity_name(cls, product=None): if not product: return - applicable_qto_names = blenderbim.bim.schema.ifc.psetqto.get_applicable_names(product.is_a(), qto_only=True) + applicable_qto_names = blenderbim.bim.schema.ifc.psetqto.get_applicable_names( + product.is_a(), ifcopenshell.util.element.get_predefined_type(product), qto_only=True + ) return next((qto_name for qto_name in applicable_qto_names if "Qto_" in qto_name and "Base" in qto_name), None) @classmethod @@ -205,12 +207,12 @@ class Qto(blenderbim.core.tool.Qto): if quantity == cost_item_quantity: result.append( { - "cost_item_id" : cost_item.id(), - "cost_item_name" : cost_item.Name, - "quantity_id" : quantity.id(), - "quantity_name" : quantity.Name, - "quantity_value" : quantity[3], - "quantity_type" : quantity.is_a(), + "cost_item_id": cost_item.id(), + "cost_item_name": cost_item.Name, + "quantity_id": quantity.id(), + "quantity_name": quantity.Name, + "quantity_value": quantity[3], + "quantity_type": quantity.is_a(), } ) return result