Jump to Referencing Node

Blast Set Reverse

sel = hou.selectedNodes()[0]
sel.setSelected(False)
ref = sel.parmsReferencingThis()
if len(ref) == 1:
    target = ref[0].node()
elif len(ref) >1:
    list = []
    for i in ref:
        list.append(i.node().path())
    path = hou.ui.selectFromList(list, message='to Jamp referencing Node')
    print path
    target = ref[path[0]].node()
else:
    target = sel
target.setSelected(True)
p = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
p.setCurrentNode(target)
p.homeToSelection()

Creating Jump Parm and Button

node = hou.selectedNodes()[0]
node.setSelected(False)
ref = node.parmsReferencingThis()
numExp =  """node = hou.pwd()
ref = node.parmsReferencingThis()
return len(ref)"""
refExp = """import re
s = hou.evaluatingParm().name()
num = int( re.findall('\d+', s)[-1] )
node = hou.pwd()
ref = node.parmsReferencingThis()[num-1].node().path()
return ref"""
jumpExp = """import re
s = kwargs["parm"].name()
num = re.findall('\d+', s)[-1]
ref = "reference" + num
target = hou.node( kwargs["node"].parm(ref).evalAsString() )
p = hou.ui.paneTabOfType(hou.paneTabType.NetworkEditor)
p.setCurrentNode(target)
p.homeToSelection()"""
parmGroup = node.parmTemplateGroup()
folder = hou.FolderParmTemplate("references","references",folder_type=hou.folderType.MultiparmBlock)
refParm = hou.StringParmTemplate("reference", "reference", 1)
refParm.setDefaultExpressionLanguage( (hou.scriptLanguage.Python,))
refParm.setDefaultExpression((refExp,))
refButton = hou.ButtonParmTemplate("jump", "jump")
refButton.setScriptCallbackLanguage( hou.scriptLanguage.Python)
refButton.setScriptCallback(jumpExp)
folder.addParmTemplate(refParm)
folder.addParmTemplate(refButton)
parmGroup.append(folder)
node.setParmTemplateGroup(parmGroup)
node.parm("references").setExpression(numExp,hou.exprLanguage.Python)