Version: 9.15.0
example18

AttributeTreeNode interface(creations/saving/restoring)
SALOMEDS methods : FindOrCreateAttribute, NewObject
Attribute methods : HasFirst, HasFather, SetPrevious, Next, InsertAfter, GetFather, HasNext, SetValue, Append, NewStudy, Label, IsRoot, Prepend, SetFather, Depth, HasPrevious

child1 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N1")
N1 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child1, "AttributeTreeNode")
if N1 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child2 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N2")
N2 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child2, "AttributeTreeNode")
if N2 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child3 = batchmode_geompy.myBuilder.NewObject(batchmode_geompy.father)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N3")
N3 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child3, "AttributeTreeNode")
if N3 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child11 = batchmode_geompy.myBuilder.NewObject(child1)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N11")
N11 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child11, "AttributeTreeNode")
if N11 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child111 = batchmode_geompy.myBuilder.NewObject(child11)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N111")
N111 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child111, "AttributeTreeNode")
if N111 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child31 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N31")
N31 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child31, "AttributeTreeNode")
if N31 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child32 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N32")
N32 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child32, "AttributeTreeNode")
if N32 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child321 = batchmode_geompy.myBuilder.NewObject(child32)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N321")
N321 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child321, "AttributeTreeNode")
if N321 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child33 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N33")
N33 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child33, "AttributeTreeNode")
if N33 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
child34 = batchmode_geompy.myBuilder.NewObject(child3)
A = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34,"AttributeName")
if A == None :
raise RuntimeError, "Can't create AttributeName attribute"
A = A._narrow(SALOMEDS.AttributeName)
A.SetValue("N34")
N34 = batchmode_geompy.myBuilder.FindOrCreateAttribute(child34, "AttributeTreeNode")
if N34 == None :
raise RuntimeError, "Can't create AttributeTreeNode attribute"
#Create links between tree nodes.
# -| root
# --N1 __
# | N11__
# | N111
# --N2
# |
# --N3__
# N31
# N32__
# N321
# N33
# N34
N11.SetFather(N1)
N11.Append(N111)
N3.SetPrevious(N1)
N3.Prepend(N2)
N32.SetFather(N3)
N32.Prepend(N31)
N33.InsertAfter(N32)
N33.Append(N34)
print("------------- ", N1, " ------------- ")
print("N1.Label() = ", N1.Label() , "IsRoot() = ", N1.IsRoot(), "Depth() = ", N1.Depth())
print("N11.Label() = ", N11.Label() , "IsRoot() = ", N11.IsRoot(), "Depth() = ", N11.Depth())
print("N111.Label() = ", N111.Label() , "IsRoot() = ", N111.IsRoot(), "Depth() = ", N111.Depth())
print("N2.Label() = ", N2.Label() , "IsRoot() = ", N2.IsRoot(), "Depth() = ", N2.Depth())
print("N3.Label() = ", N3.Label() , "IsRoot() = ", N3.IsRoot(), "Depth() = ", N3.Depth())
print("N31.Label() = ", N31.Label() , "IsRoot() = ", N31.IsRoot(), "Depth() = ", N31.Depth())
print("N32.Label() = ", N32.Label() , "IsRoot() = ", N32.IsRoot(), "Depth() = ", N32.Depth())
print("N321.Label() = ", N321.Label() , "IsRoot() = ", N321.IsRoot(), "Depth() = ", N321.Depth())
print("N33.Label() = ", N33.Label() , "IsRoot() = ", N33.IsRoot(), "Depth() = ", N33.Depth())
print("N34.Label() = ", N34.Label() , "IsRoot() = ", N34.IsRoot(), "Depth() = ", N34.Depth())
print("N1.IsRoot()=", N1.IsRoot())
print("N1.HasNext() = ",N1.HasNext())
if N1.HasNext():
print(N1.Next().Label())
print("N32.HasPrevious() = ",N32.HasPrevious())
if N32.HasPrevious():
print(N32.GetPrevious().Label())
print("N111.HasFirst()=",N111.HasFirst())
print("N111.HasFather()=",N111.HasFather())
if N111.HasFather() :
print("N111.GetFather().Label()=",N111.GetFather().Label())