Avoid Nodes during Grouping

Our application is similar to the dynamic port sample with the addition that there are group nodes. Each group node can contain one or more child nodes. Only internal nodes will have ports and will be doing linking. The group node just wraps the child nodes.
The linking requirement is when we create a new link between two child nodes, then it should route avoiding other child nodes. When using “Avoid Nodes” we are getting strange results.

Notes :

  1. We store the route points so that the links are restored in the next startup.
  2. After a new Node is added and its location determined using our custom logic, their layout id is set as none to prevent misplacement during relayout.
  3. To remember link reshapes, the linkreshapingtool:DoReshape is overridden and AdornedLink.Route.Adjusting is set as LinkAdjusting.End

A solution taking care of the above mentioned constraints would be helpful.

Just a quick point: you are probably seeing some of the effects of the groups themselves being “avoidable”. Have you set go:Node.Avoidable=“False” on your Group DataTemplate?

Thanks for the answer. this seems to improve the situation.
Is there any way to avoid overlap of link routes with “avoid nodes” routing .?

Not at this time – the purpose of AvoidsNodes routing is just to avoid crossing over nodes.

If you use Orthogonal routing you can control the mid-point by using the Curviness property.