メインコンテンツまでスキップ

選択されているシェイプを取得する

ダイアグラムで選択されているシェイプを取得するにはIDiagramオブジェクトのGetSelectedShapesメソッドを用います。

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

// 選択されているノードを取得します
var nodes = diagram.GetSelectedShapes().OfType<INode>();

// ノードごとに処理をします
foreach (INode node in nodes)
{
c.App.Output.WriteLine("sample", $"ノードのモデル : {node.Model.Name}");
}
}

選択されているポートを取得する

選択されているポートはIDiagramオブジェクトのGetSelectedShapesメソッドでシェイプを取得した際、IPort型にキャストすることで取得できます。

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

// 選択されているポートを取得します
var ports = diagram.GetSelectedShapes().OfType<IPort>();

c.App.Output.WriteLine("sample",$"選択されているポート数 : {ports.Count()}");
}