Toggle null visibility in viewport (script?)

   5041   22   4
User Avatar
Member
686 posts
Joined: Feb. 2017
Offline
krueger
This one is cleaned up a little bit, also adding the option to run over every scene view or just the active one. Adding a hotkey for the scene viewer will make it work on whichever scene view your mouse is over too.

def toggleNulls(toggleAllViewers=True):
    import toolutils
    
    # Check to see if the nulls were toggled already.
    if "nullsVisible" in dir(hou.session) :
        visible = hou.session.nullsVisible
    else :
        visible = True
        hou.session.nullsVisible = visible
    
    try :
        desktop = hou.ui.curDesktop().name()
        pane = toolutils.activePane(kwargs).name()
        views = hou.hscript("viewls -n")[0].split("\n")
        if visible :
            toggle = "-"
        else :
            toggle = "+"
        
        # Toggle viewers
        if toggleAllViewers :
            for view in views :
                hou.hscript( "vieweroption -V '%snull' '%s'" % (toggle, view) )
        else :
            # Find the viewer name for hscript.
            for view in views :
                if (desktop in view) and (".%s." % (pane) in view) :
                    hou.hscript( "vieweroption -V '%snull' '%s'" % (toggle, view) )
                
        # Change the stored variable.
        hou.session.nullsVisible = not visible
    except :
        print "No scene view open."

# Toggle current viewer
toggleNulls(toggleAllViewers=False)

# Toggle all viewers
#toggleNulls()

Hey Krueger,

would you be so kind to update your script to Houdini 19? It's not working for me. maybe because of PY3?

Thank you!
Cheers
CYTE
Edited by CYTE - Dec. 7, 2021 12:04:42
User Avatar
Member
191 posts
Joined: Oct. 2018
Offline
This should work:

def toggleNulls(toggleAllViewers=True):
    import toolutils
    
    # Check to see if the nulls were toggled already.
    if "nullsVisible" in dir(hou.session) :
        visible = hou.session.nullsVisible
    else :
        visible = True
        hou.session.nullsVisible = visible
    
    try :
        desktop = hou.ui.curDesktop().name()
        pane = toolutils.activePane(kwargs).name()
        views = hou.hscript("viewls -n")[0].split("\n")
        if visible :
            toggle = "-"
        else :
            toggle = "+"
        
        # Toggle viewers
        if toggleAllViewers :
            for view in views :
                hou.hscript( "vieweroption -V '%snull' '%s'" % (toggle, view) )
        else :
            # Find the viewer name for hscript.
            for view in views :
                if (desktop in view) and (".%s." % (pane) in view) :
                    hou.hscript( "vieweroption -V '%snull' '%s'" % (toggle, view) )
                
        # Change the stored variable.
        hou.session.nullsVisible = not visible
    except :
        print ("No scene view open.")

# Toggle current viewer
toggleNulls(toggleAllViewers=False)

# Toggle all viewers
#toggleNulls()
User Avatar
Member
686 posts
Joined: Feb. 2017
Offline
Thank You, much appreciated!
  • Quick Links