From d0ca6488a20cdeba9f1adde3042f551791847ffb Mon Sep 17 00:00:00 2001 From: gillesvink Date: Thu, 18 Nov 2021 16:13:44 +0100 Subject: [PATCH] Add support for Houdini Solaris Sublayer nodes --- hooks/tk-houdini_scene_operations.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/hooks/tk-houdini_scene_operations.py b/hooks/tk-houdini_scene_operations.py index a229a84..6b176bb 100644 --- a/hooks/tk-houdini_scene_operations.py +++ b/hooks/tk-houdini_scene_operations.py @@ -58,6 +58,10 @@ def scan_scene(self): hou.lopNodeTypeCategory(), "reference" ).instances() + sublayer_nodes = hou.nodeType( + hou.lopNodeTypeCategory(), "sublayer" + ).instances() + # refine tuple of all regular file nodes to exclude file nodes inside locked digital asset file_nodes = tuple( file_node @@ -95,6 +99,15 @@ def scan_scene(self): {"node": reference_node.path(), "type": "reference", "path": file_path} ) + # search in all sublayer node + for sublayer_node in sublayer_nodes: + file_parm = sublayer_node.parm("filepath1") + file_path = os.path.normpath(file_parm.eval()) + + items.append( + {"node": sublayer_node.path(), "type": "sublayer", "path": file_path} + ) + return items def update(self, items): @@ -154,3 +167,11 @@ def update(self, items): "Updating file node '%s' to: %s" % (node_path, file_path) ) reference_node.parm("filepath1").set(file_path) + + # update the sublayer node paramter to the new path + if node_type == "sublayer": + sublayer_node = hou.node(node_path) + engine.log_debug( + "Updating file node '%s' to: %s" % (node_path, file_path) + ) + sublayer_node.parm("filepath1").set(file_path)