Need to understand link behaviour and if possibly modify

please ignore blue marking in the below screen shot.
can we alter links to draw it from the next column, example shown with red marking.

Link template looks like below:

                    adjusting: go.Link.None, toEndSegmentLength: 25, fromEndSegmentLength: 25,
                    routing: go.Link.AvoidsNodes, corner: 10, curve: go.Link.JumpOver,
                    fromPortId: 'right', toPortId: 'left', selectionAdorned: null,
                    mouseEnter: (e, link) => {
                        link.elt(0).stroke = "rgb(166, 159, 159, 0.3)";
                        link.elt(3).visible = true;
                    mouseLeave: (e, link) => {
                        link.elt(0).stroke = "transparent";
                        link.elt(3).visible = false;
          // some shape code 

What’s wrong with that link? It looks good to me.
Oh – are you asking how to have that thick gray link’s route go along where you have drawn a line in red?

Try setting Link.routing to be go.Link.AvoidsNodes.

Hey Walter,

thanks for the reply, Link is good but is there any way we can adjust to merge in the next link instead from where it is now?. Yes the way i showed it with red mark.

I have set routing: go.Link.AvoidsNodes

Instead of using go.Link in your link template, try using this class:

    class OffsetLink extends go.Link {
      computeMidOrthoPosition(fromX, fromY, toX, toY, vertical) {
        if (!vertical) return toX - 20;
        return super.computeMidOrthoPosition(fromX, fromY, toX, toY, vertical);

Adjust the 20 value to be whatever you want as the horizontal distance of the vertical segment to the Link.toPort.

Woa… !!! that worked liked a charm. Thank you