選択されているシェイプを取得する
ダイアグラムで選択されているシェイプを取得するには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()}");
}