diff --git a/pype/maya/__init__.py b/pype/maya/__init__.py index f027893a0e..726fd14faa 100644 --- a/pype/maya/__init__.py +++ b/pype/maya/__init__.py @@ -218,3 +218,4 @@ def on_task_changed(*args): # Run maya.pipeline._on_task_changed() + lib.update_content_on_context_change() diff --git a/pype/maya/lib.py b/pype/maya/lib.py index dafc281903..5333b75359 100644 --- a/pype/maya/lib.py +++ b/pype/maya/lib.py @@ -2452,3 +2452,29 @@ class shelf(): cmds.deleteUI(each) else: cmds.shelfLayout(self.name, p="ShelfLayout") + + +def update_content_on_context_change(): + """ + This will update scene content to match new asset on context change + """ + scene_sets = cmds.listSets(allSets=True) + new_asset = api.Session["AVALON_ASSET"] + new_data = lib.get_asset()["data"] + for s in scene_sets: + try: + if cmds.getAttr("{}.id".format(s)) == "pyblish.avalon.instance": + attr = cmds.listAttr(s) + print(s) + if "asset" in attr: + print(" - setting asset to: [ {} ]".format(new_asset)) + cmds.setAttr("{}.asset".format(s), + new_asset, type="string") + if "frameStart" in attr: + cmds.setAttr("{}.frameStart".format(s), + new_data["frameStart"]) + if "frameEnd" in attr: + cmds.setAttr("{}.frameEnd".format(s), + new_data["frameEnd"],) + except ValueError: + pass