Page 1 of 1

Recipes (H20.5) not working with Octane Material Builder

Posted: Wed Feb 26, 2025 4:24 pm
by Andreu
The new h20.5 recipes are useful for many things one of them been saving material libraries.

The problem is that when saving a recipe with a Octane Material Builder it fails to load outputting a python error.

If the material builder has only the default 2 nodes inside then it works but it creates the nodes disconnected. If the material has any other node inside it gives the error when trying to load the saved recipe.

I works perfectly with non octane materials.

Already contacted Sidefx but they say they don't support any plugins so I could not submit the bug.

Thanks!
Andreu

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Fri Feb 28, 2025 3:28 am
by BK
Andreu wrote:The new h20.5 recipes are useful for many things one of them been saving material libraries.

The problem is that when saving a recipe with a Octane Material Builder it fails to load outputting a python error.

If the material builder has only the default 2 nodes inside then it works but it creates the nodes disconnected. If the material has any other node inside it gives the error when trying to load the saved recipe.

I works perfectly with non octane materials.

Already contacted Sidefx but they say they don't support any plugins so I could not submit the bug.

Thanks!
Andreu

Hi Andreu,

Thank you so much for this.

Would you please share the steps to replicate and the python script?

cheers

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Wed Mar 05, 2025 9:24 am
by Andreu
No special steps required, Octane Material Builder node doesn't properly load when saving it as a Recipe.

Just create a default Octane Material Builder press right mouse button and select Recipes/Save selected item as tool.

Then try to load it and it loads back the Octane Material Builder node but the nodes inside are disconnected.

There isn't any python script being used for this error to ocur, is just using basic Recipe functionality to save and reload a material what is not working.

If instead of default Material you add any node before saving it to the Recipe then it will also through a python error when calling the recipe back through tab menu:

Traceback (most recent call last):
File "andreu::test", line 1, in <module>
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 211, in applyTabToolRecipe
return ref.applyRecipe(kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\storage.py", line 751, in applyRecipe
return recipedata.applyTabToolRecipe(self.loadRecipeData(add_name=True), kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\api\recipedata.py", line 715, in applyTabToolRecipe
resulted_data = hou.data.createClusterItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 100, in createClusterItemsFromData
return networkcluster.setClusterFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 476, in setClusterFromData
return cluster.setData(parent=parent, data=data, **opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 348, in setData
items_dict = networkitems.setNetworkItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 1363, in setNetworkItemsFromData
_setItems(parent, {"children": data}, opts)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 714, in _setItems
_setItems(container=item,
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 693, in _setItems
networkitemconnection.setVopInputsFromData(sub_item_data, container)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 423, in setVopInputsFromData
success = _createWireFromConnectionData(wiredata, container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 394, in _createWireFromConnectionData
return setInputFromData(item, connection_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 283, in setInputFromData
srcnode = item.parent().item(srcpath)
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parent'

As suggested by Sidefx I tried latest daily build and the python error is gone but the nodes inside the material are still disconnected.

Also tested with other external renders materials and they all work so it seems very specific of Octane Material Builder.

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Thu Mar 06, 2025 4:19 am
by BK
Andreu wrote:No special steps required, Octane Material Builder node doesn't properly load when saving it as a Recipe.

Just create a default Octane Material Builder press right mouse button and select Recipes/Save selected item as tool.

Then try to load it and it loads back the Octane Material Builder node but the nodes inside are disconnected.

There isn't any python script being used for this error to ocur, is just using basic Recipe functionality to save and reload a material what is not working.

If instead of default Material you add any node before saving it to the Recipe then it will also through a python error when calling the recipe back through tab menu:

Traceback (most recent call last):
File "andreu::test", line 1, in <module>
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 211, in applyTabToolRecipe
return ref.applyRecipe(kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\storage.py", line 751, in applyRecipe
return recipedata.applyTabToolRecipe(self.loadRecipeData(add_name=True), kwargs, **tabtoolrecipe_set_opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\api\recipedata.py", line 715, in applyTabToolRecipe
resulted_data = hou.data.createClusterItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\houpythonportion\data.py", line 100, in createClusterItemsFromData
return networkcluster.setClusterFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 476, in setClusterFromData
return cluster.setData(parent=parent, data=data, **opts)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkcluster.py", line 348, in setData
items_dict = networkitems.setNetworkItemsFromData(parent=parent,
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 1363, in setNetworkItemsFromData
_setItems(parent, {"children": data}, opts)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 714, in _setItems
_setItems(container=item,
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitems.py", line 693, in _setItems
networkitemconnection.setVopInputsFromData(sub_item_data, container)
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 423, in setVopInputsFromData
success = _createWireFromConnectionData(wiredata, container)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 394, in _createWireFromConnectionData
return setInputFromData(item, connection_data)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\PROGRA~1/SIDEEF~1/HOUDIN~1.410/houdini/python3.11libs\hrecipes\core\networkitemconnection.py", line 283, in setInputFromData
srcnode = item.parent().item(srcpath)
^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'parent'

As suggested by Sidefx I tried latest daily build and the python error is gone but the nodes inside the material are still disconnected.

Also tested with other external renders materials and they all work so it seems very specific of Octane Material Builder.

Hi Andreu,

Thank you so much for the response.

Yep, we can replicate this issue and have created an internal ticket to investigate.


cheers

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Fri Mar 07, 2025 9:56 am
by Andreu
Thanks BK!

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Sat Mar 08, 2025 6:08 am
by eh_studio
I also noticed the same issue when trying to create recipes for Octane Material node setups. All the nodes inside would be disconnected and jumbled up after activating the recipe. Even saving the setup as a decoration didn't work. Someone in a FB group told me that recipes only work for SOP nodes, but I'm curious whether this is true or not. Hopefully you can get it to work, BK. Thanks for looking into it.

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Sat Mar 08, 2025 11:20 am
by Andreu
That is the issue I'm referring to. I think when you say "Octane Material node setup" and "Octane Material Builder" is the same thing.

I have tested it and Recipes work in all context including other external render's material networks so this is a Octane plugin's issue.

One thing I forgot to mention is that it doesn't work in either "Octane Material Builder" and "Octane Material Builder Solaris" so it also affects to the non Solaris plugin.

Re: Recipes (H20.5) not working with Octane Material Builder

Posted: Fri Apr 04, 2025 5:32 pm
by dom_otoy
I've created a ticket for the normal plugin as well. Hope we can find a way to get this working!
Edit: Seems it's to do with how octane nodes are named, when they're created. Hopefully we can figure this out!