April 9, 2019 19:21:18
I have a few scenefiles and one work item for each. Now I want to open them after each other with the houdiniserver node and send a few commands. I have my scheduler already set to single. By default PDG starts the houdiniserver for each incoming scenefile, then it processes the first command_send node for all scenefiles then the second command_send node for all files and so on.
How can I tell PDG to wait for the first server to finish before starting the second one?
I tried to do it with priorities, but that doesn't seem to work. Any ideas what's the best way to do this?
April 9, 2019 20:19:58
Sequential Blocks, maybe?
April 10, 2019 07:04:15
Sequential Blocks, maybe?
Do you mean the “Block Begin Feedback”/Feedback loop nodes?
I tried that and the execution order looks correct when I enable “Iterations from Upstream Items”. But then all the data on the workitems seem to be lost inside the loop, which I added to the workitems before the loop.
April 10, 2019 11:02:10
Can you attach a .hip file that demonstrates that issue? The Feedback Begin and various command chain begin nodes should be maintaining the attributes from input work items. I've attached an example file that cooks work items sequentially using both the feedback block and a Houdini command chain. Attributes from the input work items are preserved on the items in the loop block.
April 10, 2019 13:55:13
Thanks, I found the problem. I had a pythonscript node before the loop, which created dynamic workitems and then the attributes were not available inside the loop.
I also noticed that the execution order in the houdiniserver loop is how I want it when the “Session Count from Upstream Items” is enabled. But I prefer to have a new server for every scene to be sure that the ram is cleared and don't add up when processing a large amount of files. For that case I can use the houdiniserver in a for loop with static workitems as input. In a quick test that seems to work. I'll try it later with more scenes.
Here's a .hip to summarize it. I guess these behaviors are all intended and it was not exactly clear to me.
April 10, 2019 18:40:50
I just tested it in my actual scene at home, but I had problems with the attributes again. After some more tests I noticed that the result changed even if I didn't change any settings. I made a quick screen recording from a test scene, where I cooked the TOPs in a random order. Sometimes the attribute exists in the loop but when cooking the graph from the top, the attribute doesn't exist in the loop.https://www.dropbox.com/s/uxet4th5ti6rkfb/2019-04-10%2023-29-28.mp4?dl=0
When I create the attribute with a wedge or an attribute create node, everything works fine. Looks like there is a problem when creating attributes in the pythonscript node.