Sure. I assume you already know how to create context menus, since that is the same for all FrameworkElements and not specific to GoXam.
Your commands can just position the nodes where you want.
private void MenuItem_Click(object sender, RoutedEventArgs e) {
var partdata = ((FrameworkElement)sender).DataContext as PartManager.PartBinding;
if (partdata != null && partdata.Node != null) {
Node parent = partdata.Node;
parent.Diagram.StartTransaction("align vertically");
double x = parent.ActualBounds.Right + 10;
double y = parent.ActualBounds.Bottom + 10;
foreach (Node child in partdata.Node.NodesOutOf) {
child.Position = new Point(x, y);
y += child.ActualBounds.Height + 10;
}
parent.Diagram.CommitTransaction("align vertically");
}
}
Caution: I haven’t even tried to compile this code, so pardon me if I made any mistakes.