Driver Output Type & Asset Modules

   1389   1   1
User Avatar
Member
271 posts
Joined: March 2012
Offline
Hi all,

I'm attempting to write a particle cache exporter and I'm having trouble getting the Python module to use functions that are stored in a different section.

My instinct was to create a new output driver type as the category made sense, but there were a few challenges which I'll mention here for others facing the same issues:

The ‘Render to Disk’ button's Callback Script section is greyed out. To run code when this button is pushed you need to 

  1. Create a file parameter called ‘soho_program’ and change it's default channel value to ‘opdef:.?PythonModule’
  2. Create a file parameter called ‘soho_outputmode’ and change it's default to 2
This just runs the code in PythonModule. I have another module in which I store the functions that need to be run in PythonModule, but I cannot import these fucntions. The docs about asset modules [sidefx.com] state that you need to write the following to import another section as a module:

import toolutils
foo = toolutils.createModuleFromSection('bar', kwargs['type'], 'PFX_Exporter_Functions')
However, because this is an output driver, there appears to be no kwargs argument, so I cannot get the kwargs value. I've tried other methods such as hou.nodeTypeCategories(). Strangely the ‘Driver’ type is not available directly like all the others are as listed here [sidefx.com].

Does anyone know how to import modules from the other sections when using the Driver type?
User Avatar
Member
271 posts
Joined: March 2012
Offline
Ok, I'm just stupid. I'm not sure how I didn't try this before my lunch break, but to get the type when you do not have access to kwargs, just use
hou.pwd().type()
So the code from the previous post should read:
import toolutils
foo = toolutils.createModuleFromSection('bar', hou.pwd().type(), 'PFX_Exporter_Functions')
Edited by Anti-Distinctlyminty - Feb. 2, 2017 07:44:15
  • Quick Links