Tree layout layout mode

Hi there,

We are using Gojs and really liking it so far. We use the tree layout to create some form of a ‘workflow’ designer. At the moment we have a Tree layout with a down angle and alignment set at start. Still there are some details we want different but after playing around with all the options we cannot find how to this (or if it is even possible without making a custom layout).

Current situation:

Desired situation:

Dont mind the weird link lines, I just dragged this together. We have a tree where each node can have 2 sub nodes. The main difference between current and desired situation is that we want the first leaf node to go directly beneath the parent node and the second leaf node to go directly to the right, without jumping down a layer. Second problem we have is the alignment, we basically want the left side to be the ‘weight point’, so the trees shouldnt be balanced to the center but always to the left.

Thanks in advance!

It seems as though you’ll want a custom Layout. We look into it.

How is one supposed to tell whether a grandchild is supposed to be positioned as if it were a child?

I do not understand what you want well enough to know how a layout should work. Here is a BInaryTreeLayout: Binary Tree Layout

I used the Binary tree layout like you suggested, then flipped it around so it goes down first and then right. This works pretty good. Problem is we have inter connecting tree branches, which basically means a link can exist from any node any other node. The original tree layout handles this better then the binary tree layout. I get that we are kind of misusing the tree layout here, but it fits the layout what we want actually pretty good minus some little details.

We made a big flowchart in Visio which is the end result we want for our flowchart designer. We hope this kind of shows you our desired result and we hope you can help us achieve this layout.

Can you set Link.isLayoutPositioned to false on all but the first Link that comes into a green circle Node?

I suppose those extra Links should have Link.routing set to go.Link.AvoidsNodes.