AvoidsNode and AvoidObject

Hello,



I have some questions about the capacity of link to avoid nodes and object in general.



I use since last wednesday the evaluation of GoDiagram on your website.



And I tried to use AvoidsNode,isAvoidable and GetAvoidableRectangle on GoBasicNode for the first and the second and GoGroup for the last in order to create a dynamic diagram with links.



But It doesn’t work. I want to know if is due to the Free version and if the Full version can use it correctly or if I maybe make mistake or forget something.



When you install GoDiagram Win, you get an evaluation license which gives you complete functionality. The restriction is that you cannot distribute any applications using our assemblies, and there’s a watermark to remind you of that.

GoLink.AvoidsNodes only works for links that have Orthogonal set to true also. You shouldn't need to use GoDocument.IsAvoidable and GetAvoidableRectangle except to change whether to avoid some non-nodes or to make slight adjustments in how close links might get to any avoidable objects.
What is it that isn't working for you? Are you able to build a diagram/graph with the kinds of nodes and links that you want? Are you using GoLayout?

In fact i create a diagram with GoHexagon but hexagon don’t have any port so i create a Gogroup with GoHexagon and GoBasicNode in order to use link.



But here links avoids 2 nodes : Fromport and ToPort nodes, but not the others and they don’t avoid also GoHexagon, it’s a problem when I want to move them.



And I don’t use GoLayout here.



I have this with Goimage, Gotext, GoHexagon and hide GoBasicNode:







But when I move links doesn’t avoid GoHexagon:









Is each node’s top-level object just a GoGroup? That’s probably what the problem is. GoDocument.IsAvoidable by default returns true only when the object is a node.

Instead, make sure the GoBasicNode.Shape is a GoHexagon, and add those other decorations (which I assume are GoImages and maybe a GoText, but could be anything) directly to the GoBasicNode.
If you have defined a subclass inheriting from GoBasicNode, you can override CreateShape to return a non-Selectable GoHexagon. I'm guessing you have set AutoResizes to false, so you probably do not have to override LayoutChildren in order to position those decorations appropriately relative to the Shape.

Thank you for your help to use GoBasicNode but i have three difficulties:



The first is how to hide the big black dot in the middle of the node:







The second which is more important that when i move node links make amazing react like here:







The third is how to choose the port of the node (North, south ,East, Left) like here I want the arrow in the North and not in the East of the Node:







For the first issue, it would be easiest to set GoBasicNode.LabelSpot = GoObject.Middle. I assumed you had already done that.
For the third issue, if you want to always have a link connected to one side of a node, maybe you should be using GoTextNode instead of GoBasicNode. GoTextNode has four separate ports, one in the middle of each side. The FlowCharter sample uses GoTextNode, for example. That should address your first and third issues, actually.
After you make these changes, see if you still get the second behavior.