From DreamsteepWiki
DAGIT = OpenMaya.MItDag( OpenMaya.MItDag.kDepthFirst )
while not DAGIT.isDone():
THISNODE = OpenMaya.MFnDagNode( DAGIT.currentItem() )
DAGPATH = THISNODE.fullPathName()
MOBject = OpenMaya.MObject( DAGIT.currentItem() )
#only get nodes at root level
if DAGIT.depth() ==2:
#name = OpenMaya.MString( THISNODE.name() )
#name.asChar()
numparents = THISNODE.parentCount()
#print "NUMKIDS "+ str( numkids)
print 'OBJECT '+DAGPATH
for i in range(numparents) :
parnam = THISNODE.parent(i)
print 'PARENT '+getNameFrMobject(parnam)
numkids = THISNODE.childCount()
#print "NUMKIDS "+ str( numkids)
for i in range(numkids) :
child = THISNODE.child(i)
print 'CHILD '+getNameFrMobject(child)
DAGIT.next()