diff --git a/openpype/hosts/maya/api/plugin.py b/openpype/hosts/maya/api/plugin.py index a5f03cd576..93387c073a 100644 --- a/openpype/hosts/maya/api/plugin.py +++ b/openpype/hosts/maya/api/plugin.py @@ -153,24 +153,15 @@ class ReferenceLoader(api.Loader): nodes = self[:] if not nodes: return - # FIXME: there is probably better way to do this for looks. - if "look" in self.families: - loaded_containers.append(containerise( - name=name, - namespace=namespace, - nodes=nodes, - context=context, - loader=self.__class__.__name__ - )) - else: - ref_node = get_reference_node(nodes, self.log) - loaded_containers.append(containerise( - name=name, - namespace=namespace, - nodes=[ref_node], - context=context, - loader=self.__class__.__name__ - )) + + ref_node = get_reference_node(nodes, self.log) + loaded_containers.append(containerise( + name=name, + namespace=namespace, + nodes=[ref_node], + context=context, + loader=self.__class__.__name__ + )) c += 1 namespace = None @@ -180,18 +171,18 @@ class ReferenceLoader(api.Loader): """To be implemented by subclass""" raise NotImplementedError("Must be implemented by subclass") - def update(self, container, representation): import os from maya import cmds + from openpype.hosts.maya.api.lib import get_container_members node = container["objectName"] path = api.get_representation_path(representation) # Get reference node from container members - members = cmds.sets(node, query=True, nodesOnly=True) + members = lib.get_container_members(node) reference_node = get_reference_node(members, self.log) file_type = { diff --git a/openpype/hosts/maya/plugins/load/load_look.py b/openpype/hosts/maya/plugins/load/load_look.py index fca612eff4..0a5ddee0cb 100644 --- a/openpype/hosts/maya/plugins/load/load_look.py +++ b/openpype/hosts/maya/plugins/load/load_look.py @@ -69,8 +69,10 @@ class LookLoader(openpype.hosts.maya.api.plugin.ReferenceLoader): path = api.get_representation_path(representation) # Get reference node from container members - members = cmds.sets(node, query=True, nodesOnly=True) - reference_node = self._get_reference_node(members) + members = openpype.hosts.maya.api.lib.get_container_members(container) + reference_node = openpype.hosts.maya.api.lib.get_reference_node( + members + ) shader_nodes = cmds.ls(members, type='shadingEngine') orig_nodes = set(self._get_nodes_with_shader(shader_nodes)) @@ -174,7 +176,6 @@ class LookLoader(openpype.hosts.maya.api.plugin.ReferenceLoader): node names """ import maya.cmds as cmds - # Get container members nodes_list = [] for shader in shader_nodes: @@ -225,5 +226,3 @@ class LookLoader(openpype.hosts.maya.api.plugin.ReferenceLoader): if cmds.getAttr("{}.verticesOnlySet".format(node)): self.log.info("Setting %s.verticesOnlySet to False", node) cmds.setAttr("{}.verticesOnlySet".format(node), False) - # Add new nodes of the reference to the container - cmds.sets(content, forceElement=node) diff --git a/openpype/tools/mayalookassigner/commands.py b/openpype/tools/mayalookassigner/commands.py index f7d26f9adb..54341470bc 100644 --- a/openpype/tools/mayalookassigner/commands.py +++ b/openpype/tools/mayalookassigner/commands.py @@ -88,7 +88,7 @@ def get_all_asset_nodes(): # Gather all information container_name = container["objectName"] - nodes += cmds.sets(container_name, query=True, nodesOnly=True) or [] + nodes += lib.get_container_members(container_name) return nodes @@ -199,7 +199,7 @@ def remove_unused_looks(): unused = [] for container in host.ls(): if container['loader'] == "LookLoader": - members = cmds.sets(container['objectName'], query=True) + members = lib.get_container_members(container['objectName']) look_sets = cmds.ls(members, type="objectSet") for look_set in look_sets: # If the set is used than we consider this look *in use*