diff --git a/colorbleed/houdini/lib.py b/colorbleed/houdini/lib.py index fbd190731c..c9ce643751 100644 --- a/colorbleed/houdini/lib.py +++ b/colorbleed/houdini/lib.py @@ -1,8 +1,10 @@ import uuid +from contextlib import contextmanager + import hou -from avalon import io +from avalon import api, io from avalon.houdini import lib @@ -81,7 +83,7 @@ def generate_ids(nodes, asset_id=None): def get_id_required_nodes(): - valid_types = ["geometry"] + valid_types = ["geometry", "geometry"] nodes = {n for n in hou.node("/out").children() if n.type().name() in valid_types} @@ -90,4 +92,22 @@ def get_id_required_nodes(): def get_additional_data(container): """Not implemented yet!""" - pass \ No newline at end of file + pass + + +@contextmanager +def attribute_values(node, data): + + previous_attrs = {key: node.parm(key).eval() for key in data.keys()} + print("before", previous_attrs) + try: + node.setParms(data) + during_attrs = {key: node.parm(key).eval() for key in data.keys()} + print("during", during_attrs) + yield + except Exception as exc: + print(exc) + pass + finally: + print("reset") + node.setParms(previous_attrs)