Search - User list
Full Version: Python function 'node.children()'
Root » The Orbolt Smart 3D Asset Store » Python function 'node.children()'
yhkim
Hi big friends, i have a little question for you

it about python function ‘hou.node.children()’


that's returning always like this (<hou.SopNode of type sphere at /obj/geo1/subnet1/sphere1>,..)
it's seems like used absolute path for searching node look to me…


wonder how get relative path node not used absolute path.
like
(<hou.SopNode of type sphere at ./subnet1/sphere1.>,..) (when if current node is ‘/obj/geo1’)

have a any idea?
Nicolas Longchamps
All paths are absolute at the base. Relative paths are representations that are parsed by houdini to find the abs path of a node. They cant exist on their own and are meaningless without a relative point of origin.

use hou.node.relativePathTo(base_node) to get paths from one node to another.

In your case you can do this:
chl = myNode.children()
for child in chl:
    pathToParent = child.relativePathTo(myNode)
    pathToChild = myNode.relativePathTo(child)

But given in this case you are simply getting the path from the parent, relative paths are not very useful here; pathToParent would return ‘..’ for every child node, which simply means “up one level”. pathToChild would simply return the name of the child node, because the parent is like the current directory.

If you do:
child.node('..')
You should get the abs path of the parent node.

hou.node.children() will get nodes one level down. For all children, including chilren of children, i think you need to use hou.node.allSubChildren(). Relative path would be more useful in that case.

hope this helps
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB