Jump to content

Recommended Posts

Hi Guys,

First post since I joined odforce.

I am trying to make a tool which could create filecache node on the right click of a null node.
The moment I hover my cursor on the "mdu" option, before clicking it's creating filecache node.

Its a submenu option, so I think I am missing some thing important.

<?xml version="1.0" encoding="UTF-8"?>

<menuDocument>
    <menu>
    <subMenu>
        <label>mdu</label>
        <actionItem id = "create.rop.node">
        <labelExpression><![CDATA[
node = kwargs['node']        
result = 'Create Rop Node'
sel = hou.selectedNodes()[0]
if sel.type().name() == 'null':
    selName = sel.name().split("_")
    joinName = "_".join(selName)
    nodeName = joinName.replace('OUT_',"")
    
    if selName[0] == 'OUT':
        nodePath = sel.path()
        node = hou.node(nodePath)
        node.createOutputNode("filecache",nodeName)
    else:
        raise hou.Error("Invalid Node name")
else:
    print sel.name() + " is not valid for cache"
    result = u"\u2713 " + result
return result
        ]]></labelExpression>
        <context>
            <expression>kwargs["node"].type().category().name() in ("Sop")</expression>
        </context>
        </actionItem>
    </subMenu>
    </menu>
</menuDocument>

 

Thanks

Share this post


Link to post
Share on other sites

labelExpression should be used when you want to dynamically show/hide menu items, main script should go under scriptCode or scriptPath tags

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×