I closed the original topic before actually testing it....
You suggest:
You can use MoveControlIndex
to change the Z-order of a diagram object to an arbitrary position:
atDiagram1.MoveControlIndex(SomeBlock, 3);
Maybe I'm just stupid, but I can't work out how I can get the Index of the selected block so that I can move it to Index+1 or Index-1. The atDiagram sourcecode uses the IndexOf property but that is private to atDiagram.