mirror of
https://github.com/IfcOpenShell/IfcOpenShell.git
synced 2026-09-20 23:36:20 +00:00
Subscribe to viewport shading changes for appended BIM workspace too
This commit is contained in:
@@ -259,15 +259,8 @@ def viewport_shading_changed_callback(area):
|
|||||||
bpy.context.scene.BIMStylesProperties.active_style_type = "External"
|
bpy.context.scene.BIMStylesProperties.active_style_type = "External"
|
||||||
|
|
||||||
|
|
||||||
@persistent
|
def subscribe_to_viewport_shading_changes():
|
||||||
def load_post(scene):
|
"""Subscribe to changes in viewport shading mode"""
|
||||||
global global_subscription_owner
|
|
||||||
active_object_key = bpy.types.LayerObjects, "active"
|
|
||||||
bpy.msgbus.subscribe_rna(
|
|
||||||
key=active_object_key, owner=global_subscription_owner, args=(), notify=active_object_callback
|
|
||||||
)
|
|
||||||
|
|
||||||
# subscribe to changes in viewport shading mode
|
|
||||||
# NOTE: couldn't find a way to make it work for new areas too
|
# NOTE: couldn't find a way to make it work for new areas too
|
||||||
# it starts working for them after blender restart though
|
# it starts working for them after blender restart though
|
||||||
for screen in bpy.data.screens:
|
for screen in bpy.data.screens:
|
||||||
@@ -281,6 +274,15 @@ def load_post(scene):
|
|||||||
key=key, owner=global_subscription_owner, args=(area,), notify=viewport_shading_changed_callback
|
key=key, owner=global_subscription_owner, args=(area,), notify=viewport_shading_changed_callback
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@persistent
|
||||||
|
def load_post(scene):
|
||||||
|
global global_subscription_owner
|
||||||
|
active_object_key = bpy.types.LayerObjects, "active"
|
||||||
|
bpy.msgbus.subscribe_rna(
|
||||||
|
key=active_object_key, owner=global_subscription_owner, args=(), notify=active_object_callback
|
||||||
|
)
|
||||||
|
|
||||||
ifcopenshell.api.owner.settings.get_user = get_user
|
ifcopenshell.api.owner.settings.get_user = get_user
|
||||||
ifcopenshell.api.owner.settings.get_application = get_application
|
ifcopenshell.api.owner.settings.get_application = get_application
|
||||||
AuthoringData.type_thumbnails = {}
|
AuthoringData.type_thumbnails = {}
|
||||||
@@ -296,6 +298,9 @@ def load_post(scene):
|
|||||||
else:
|
else:
|
||||||
bpy.ops.workspace.append_activate(idname="BIM", filepath=os.path.join(cwd, "data", "workspace.blend"))
|
bpy.ops.workspace.append_activate(idname="BIM", filepath=os.path.join(cwd, "data", "workspace.blend"))
|
||||||
|
|
||||||
|
# After appending the workspace to ensure BIM viewport is affected.
|
||||||
|
subscribe_to_viewport_shading_changes()
|
||||||
|
|
||||||
bpy.ops.bim.override_escape("INVOKE_DEFAULT")
|
bpy.ops.bim.override_escape("INVOKE_DEFAULT")
|
||||||
|
|
||||||
# To improve usability for new users, we hijack the scene properties
|
# To improve usability for new users, we hijack the scene properties
|
||||||
|
|||||||
Reference in New Issue
Block a user