Skip to main content

Get selected shapes

To get the shapes selected in a diagram, use the GetSelectedShapes method of the IDiagram object.

public void GetSelectedNodes(ICommandContext c, ICommandParams p) 
{
IDiagram diagram = c.App.Workspace.CurrentEditor as IDiagram;
if (diagram == null) return;

//Get the selected nodes
var nodes = diagram.GetSelectedShapes().OfType<INode>();

//Process each node
foreach (INode node in nodes)
{
c.App.Output.WriteLine("sample", $"Node model : {node.Model.Name}");
}
}

Get the selected port

The selected port can be obtained by casting to the IPort type when the shape is obtained using the GetSelectedShapes method of the IDiagram object.

public void GetSelectedPorts(ICommandContext c, ICommandParams p) 
{
var diagram = c.App.Workspace.CurrentEditor as IDiagram;
if (diagram == null) return;

//Get the selected ports
var ports = diagram.GetSelectedShapes().OfType<IPort>();

c.App.Output.WriteLine("sample",$"Number of selected ports: {ports.Count()}");
}