Cloned shapes connections does not route correctly
Print Topic | Close Window

By Niranjan Singh - 3 Years Ago
Hi Team,

I am adding shapes from one DrawingDocument to another after cloning.

public static NDrawingDocument CopyDigram(NDrawingDocument nProjectDiagram, NDrawingDocument nSystemTemplateDiagram, Dictionary<string, string> oldNewComponentIds)
for (int i = 0; i < nSystemTemplateDiagram.ActiveLayer.ChildrenCount(null); i++)
   Hashtable mapUids = new Hashtable();
   INNode node = nSystemTemplateDiagram.ActiveLayer.GetChildAt(i);
if (node is NCompositeShape)
    NShape soruceDiagramShape = (NShape)node;
NShape shape = soruceDiagramShape.CloneWithNewUniqueId(mapUids) as NShape;
shape.UniqueId = Guid.Parse(oldNewComponentIds[soruceDiagramShape.UniqueId.ToString()]); //Replace guid from

else if (node is NRoutableConnector)
NRoutableConnector sourceDiagramConnector = (NRoutableConnector)node;
NRoutableConnector connector = templateDiagramConnector.CloneWithNewUniqueId(mapUids) as NRoutableConnector;
    connector.UniqueId = Guid.Parse(oldNewComponentIds[templateDiagramConnector.UniqueId.ToString()]);
    //connector.RerouteAutomatically = RerouteAutomatically.Always;
    //connector.Location = templateDiagramConnector.Location;

//Iterate all connectors from source diagram and find corroessponding shape and port to connect in new diagram
connector.Reroute();// Not working

Source Diagram:
Routing is not correct in copying diagram
Please suggest that how can we correct routing of these dynamically added shapes in the drawing document.
Note: All events are detached from these diagrams.