From 0d49b83b33d172988808ab699fed4837ba61e6b2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= Date: Fri, 31 May 2024 12:49:42 +0200 Subject: [PATCH 1/2] :recycle: check for invalid reference compatible with maya 2022 --- server_addon/maya/client/ayon_maya/api/lib.py | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/server_addon/maya/client/ayon_maya/api/lib.py b/server_addon/maya/client/ayon_maya/api/lib.py index 2b41ffc06c..b9b0795ebf 100644 --- a/server_addon/maya/client/ayon_maya/api/lib.py +++ b/server_addon/maya/client/ayon_maya/api/lib.py @@ -1721,7 +1721,7 @@ def is_valid_reference_node(reference_node): Reference node 'reference_node' is not associated with a reference file. Note that this does *not* check whether the reference node points to an - existing file. Instead it only returns whether maya considers it valid + existing file. Instead, it only returns whether maya considers it valid and thus is not an unassociated reference node Arguments: @@ -1734,6 +1734,15 @@ def is_valid_reference_node(reference_node): sel = OpenMaya.MSelectionList() sel.add(reference_node) depend_node = sel.getDependNode(0) + # maya 2022 is missing `isValidReference` so the check needs to be + # done in different way. + if cmds.about(version=True) < 2023: + try: + cmds.referenceQuery(reference_node, filename=True) + return True + except RuntimeError: + return False + return OpenMaya.MFnReference(depend_node).isValidReference() From f482c9e788364fc4f434be1dd2c0f3c8e4390cb6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ond=C5=99ej=20Samohel?= <33513211+antirotor@users.noreply.github.com> Date: Fri, 31 May 2024 17:34:18 +0200 Subject: [PATCH 2/2] Update server_addon/maya/client/ayon_maya/api/lib.py Co-authored-by: Roy Nieterau --- server_addon/maya/client/ayon_maya/api/lib.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/server_addon/maya/client/ayon_maya/api/lib.py b/server_addon/maya/client/ayon_maya/api/lib.py index b9b0795ebf..3b351ec1f0 100644 --- a/server_addon/maya/client/ayon_maya/api/lib.py +++ b/server_addon/maya/client/ayon_maya/api/lib.py @@ -1731,9 +1731,6 @@ def is_valid_reference_node(reference_node): bool: Whether reference node is a valid reference """ - sel = OpenMaya.MSelectionList() - sel.add(reference_node) - depend_node = sel.getDependNode(0) # maya 2022 is missing `isValidReference` so the check needs to be # done in different way. if cmds.about(version=True) < 2023: @@ -1742,6 +1739,9 @@ def is_valid_reference_node(reference_node): return True except RuntimeError: return False + sel = OpenMaya.MSelectionList() + sel.add(reference_node) + depend_node = sel.getDependNode(0) return OpenMaya.MFnReference(depend_node).isValidReference()