diff --git a/src/blenderbim/blenderbim/bim/__init__.py b/src/blenderbim/blenderbim/bim/__init__.py index 62c56e72d2..1c4c03fbff 100644 --- a/src/blenderbim/blenderbim/bim/__init__.py +++ b/src/blenderbim/blenderbim/bim/__init__.py @@ -172,6 +172,16 @@ def register(): def unregister(): for cls in reversed(classes): + # GizmoGroup, Gizmo and Macro doesn't have cls.is_registered attribute + if set((bpy.types.GizmoGroup, bpy.types.Gizmo)) & set(cls.__bases__): + if bpy.data.scenes["Scene"].BIMProperties.module_visibility["drawing"].is_visible: + bpy.utils.unregister_class(cls) + continue + + if bpy.types.Macro in cls.__bases__: + bpy.utils.unregister_class(cls) + continue + if getattr(cls, "is_registered", None) is None: bpy.utils.unregister_class(cls) else: