Jump to content

Re-running / Re-cooking a wrangle to aquire data


Recommended Posts

Hello Houdini-Experts,


this is my first post :/ I'm currently trying to setup Houdini in our company and try to create some cool setups to automatically create file cache paths and file names as well as render output paths and names. This all works very well.

I also wanted to create a little Digital Asset, a "HUB" that exist in every scene that is supposed to get the file name ($HIPNAME), split it into certain string components and generate some variables that those file caches and render outputs can use.

Everything works one time, when you open the scene. But if I for example save the file under a new name, let's say I version it up, it still keeps the old data and does not re-evaluate unless I change the script itself in the Attribute Wrangle.

So my question is, how can I force to re-run or re-cook an wrangle node? Can I trigger that if a hip gets saved?

It is just utterly inconvenient to ask the users to save a scene as a version up and have to close and re-open the scene to check if the file name is good and to make sure all the caches and render outputs have the right naming and versioning.

More detail to what I am doing inside this "HUB":

 - I am create a point, just to hold some data as detail attributes.

- I am using a Attribute Wrangle VEXpression (Detail attributes) to split the $HIPNAME into its components, like show name, episode number, shot name, element, version and so on. In our facility "_" are used to divide those so that was easy.

- I am then depending on the format create attributes for each and store the values (strings for the names, integers for the version numbers)

- Depending on the user input in the parameter interface it would use those or a custom name for each

- then I used a little Python node to change the "HUB" color so that the user would see right away, if something is wrong with the file name (red) or if everything is just fine (green)


-those resulting detail attributes will be read by file caches and compose the name from it


I hope my questions are clear enough to get some hints of how I can force a script to re-evaluate. I wouldn't even mind a to use that "Update Shot Data" button that I created in my "HUB" parameter interface to trigger a re-run. Obviously doing this automatically after saving the scene would be huge!


Thanks in advance,




Edited by Stefan
Link to comment
Share on other sites

Some one better will likely answer your question, and I'm not pipeline, but.. perhaps you should create a global variable for shot / element, etc. Then simply make a I/O node that reads them..

I think most studios leverage the Alias and Variables menu for there H pipeline..


Link to comment
Share on other sites

Hi Yon,


thanks for you advice. We have a defined and outside variable(s) like $Shot and it would give use the location of all the shot related data. The problem is the versions. The shot name and folder structure stays the same so it is perfect for an external variable but the version changes over time. So analyzing the $HIPNAME is crucial. I know a lot about workflows and pipeline and Houdini gives me a great deal of power without being a real coder to do a lot of things. I just want pretty much don't cache the nodes so those get reevaluated anytime someone requests the info about shot name a so on.


Link to comment
Share on other sites

On August 1, 2017 at 3:47 AM, ikoon said:

Maybe here is something for you?


  • Before Houdini saves the scene file, it will run HOUDINIPATH/scripts/beforescenesave.py if it exists.

  • After Houdini attempts to save the scene file, it will run HOUDINIPATH/scripts/afterscenesave.py if it exists.

Great! That is actually a big help! Thanks. I think I will have to let my co-worker take over in Python since I am not a Python guy and he used PyQT and such for other parts of our pipeline with other software then Houdini. I figured out the logic and the ROP integration. Now he can just use those before and after scripts and the python panel to make it work and make it an artist friendly interface.

Thanks to all of you guys for all the advices. It might have been to ambitious to try and get this done in a digital asset without major Python scripting and extensive coding knowledge.

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Create New...