Jedidiah Mitchell

jedmitchell

About Me

Expertise
Freelancer
Location
United States

Connect

Recent Forum Posts

[PDG] Parm expressions on HDAProcessor prevent generation April 8, 2021, 11:22 a.m.

I've got an HDA that loads geo, performs a bunch of actions, then writes it back to disk. I'd like to use the HDA Processor to handle this but I've run into some issues with Python parameter expressions on the HDA, seemingly caused by the "hdap_*" prefix.

Quick example: on my HDA I have 2 parms called 'extratx' and 'finaltx', with a Python expression running on 'finaltx' that reads the value of 'extratx', performs some additional work, then returns the value:

node = hou.pwd()
extratx = node.parm('extratx').eval()

return(extratx*3)

When I plug that HDA into an HDA Processor and Generate work items though, I get an error along the lines of

Unable to evaluate expression (
Traceback (most recent call last):
File "<stdin>", line 3, in expression
AttributeError: 'NoneType' object has no attribute 'eval'
(/obj/topnet1/hdaprocessor1/hdap_finaltx)).

It looks like the expression is trying to evaluate 'extratx', which should now be 'hdap_extratx'. I thought these parm references were supposed to be updated on the fly by the HDA Processor, so I must be doing something wrong with my setup.

I'm aware that hython will instantiate a fresh copy of the HDA when it cooks, but if I can't generate the work items I can't get that far with it.

Any thoughts? My issue is very similar to this post:

https://www.sidefx.com/forum/topic/71498/ [www.sidefx.com]

and related to this one as well:

https://www.sidefx.com/forum/topic/72664/?page=1#post-312738 [www.sidefx.com]

but I haven't been able to solve my problem from those discussions. Any additional help would be appreciated.

Pass name of HDA parm to function in callback script? April 1, 2021, 8:23 p.m.

Yes, thank you -- this is exactly what I needed. I had a hunch kwargs would be related but I've had trouble figuring out how to phrase searches to learn what data they pass in this circumstance.

This also gives me insight on what to research to solve a bunch of related questions so double thank you for that!

Pass name of HDA parm to function in callback script? March 24, 2021, 1:53 p.m.

Is it possible to access the name of the button pressed when executing it's callback script?

I have an HDA with a multiparm block: each new block gets some user customization options which will modify SOPs inside the HDA, the results of which will be written to disk.

I need that write stage to happen in 2 ways: first as a batch, which is easy to do by parsing the multiparm block and getting all the instances. Second is by a button on each block itself to write that single instance to disk.

The function I'd attach to the individual buttons needs to know which block is being operated on though -- is there a way of passing something simple like hou.pwd().parm("self")? Or is this more complicated?