From 98e0070be754482abccbefedd954069838780fc4 Mon Sep 17 00:00:00 2001 From: Andrej730 Date: Mon, 25 Mar 2024 14:42:26 +0500 Subject: [PATCH] typing --- src/blenderbim/blenderbim/bim/module/drawing/operator.py | 4 ---- src/blenderbim/blenderbim/tool/drawing.py | 8 ++++++-- src/blenderbim/blenderbim/tool/geometry.py | 6 ++++-- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/blenderbim/blenderbim/bim/module/drawing/operator.py b/src/blenderbim/blenderbim/bim/module/drawing/operator.py index 4798af6f37..c918f94982 100644 --- a/src/blenderbim/blenderbim/bim/module/drawing/operator.py +++ b/src/blenderbim/blenderbim/bim/module/drawing/operator.py @@ -1451,10 +1451,6 @@ class ActivateModel(bpy.types.Operator): class ActivateDrawing(bpy.types.Operator): - """ - Activates the selected drawing view - """ - bl_idname = "bim.activate_drawing" bl_label = "Activate Drawing" bl_options = {"REGISTER", "UNDO"} diff --git a/src/blenderbim/blenderbim/tool/drawing.py b/src/blenderbim/blenderbim/tool/drawing.py index f2b3a36f33..74b74c6e0b 100644 --- a/src/blenderbim/blenderbim/tool/drawing.py +++ b/src/blenderbim/blenderbim/tool/drawing.py @@ -440,7 +440,7 @@ class Drawing(blenderbim.core.tool.Drawing): return results @classmethod - def get_drawing_target_view(cls, drawing): + def get_drawing_target_view(cls, drawing: ifcopenshell.entity_instance) -> str: return ifcopenshell.util.element.get_psets(drawing).get("EPset_Drawing", {}).get("TargetView", "MODEL_VIEW") @classmethod @@ -1661,6 +1661,8 @@ class Drawing(blenderbim.core.tool.Drawing): filtered_elements = cls.get_drawing_elements(drawing) | cls.get_drawing_spaces(drawing) filtered_elements.add(drawing) + + # hide non-filtered elemenets for view_layer_object in bpy.context.view_layer.objects: element = tool.Ifc.get_entity(view_layer_object) if not element or element.is_a("IfcTypeProduct"): @@ -1669,7 +1671,7 @@ class Drawing(blenderbim.core.tool.Drawing): view_layer_object.hide_set(hide) view_layer_object.hide_render = hide - subcontexts = [] + subcontexts: list[ifcopenshell.entity_instance] = [] target_view = cls.get_drawing_target_view(drawing) if target_view in ("PLAN_VIEW", "REFLECTED_PLAN_VIEW"): @@ -1702,6 +1704,8 @@ class Drawing(blenderbim.core.tool.Drawing): if subcontext: subcontexts.append(context_filter) + + # switch representations and hide elements without representations for element in filtered_elements: obj = tool.Ifc.get_object(element) current_representation = tool.Geometry.get_active_representation(obj) diff --git a/src/blenderbim/blenderbim/tool/geometry.py b/src/blenderbim/blenderbim/tool/geometry.py index 6fa2bf1966..5fc285a81e 100644 --- a/src/blenderbim/blenderbim/tool/geometry.py +++ b/src/blenderbim/blenderbim/tool/geometry.py @@ -32,7 +32,7 @@ import blenderbim.bim.import_ifc from math import radians, pi from mathutils import Vector, Matrix from blenderbim.bim.ifc import IfcStore -from typing import List +from typing import List, Union class Geometry(blenderbim.core.tool.Geometry): @@ -315,7 +315,9 @@ class Geometry(blenderbim.core.tool.Geometry): return ifcopenshell.util.representation.get_context(tool.Ifc.get(), "Model", "Body", "MODEL_VIEW") @classmethod - def get_subcontext_parameters(cls, subcontext): + def get_subcontext_parameters( + cls, subcontext: ifcopenshell.entity_instance + ) -> tuple[Union[str, None], Union[str, None], Union[str, None]]: return ( subcontext.ContextType, subcontext.ContextIdentifier,