Thanks for your answer,
The code is based on the SwimLane sample.
The goal of our application is to create conditional nodes as IF nodes (the ones display in the picture). Those nodes are composed of two branches, and several links to build the node design. The links and points used for the node design are set manually every time the layout is called. We also want to synchronise the height of the two branches. When the user adds a node in a branch the other one has to adapt it’s size, this is also made when the layout is called.
To realize the layout we have to browse recursively all the nodes to call their layout method, in order to refresh the design components.
The layout is made as following:
foreach (GoObject obj in coll)
GoSubGraph sg = obj as GoSubGraph;
if (sg != null)
GoLayoutLayeredDigraph layout = new GoLayoutLayeredDigraph();
layout.Document = doc;
layout.DirectionOption = GoLayoutDirection.Down;
layout.Network = layout.CreateNetwork();
There is also code in the GoSubGraph and branches to set the position of the different design objects.