I looked up some old code i made years ago for a customer.
First I have a script that adds views to different Sheets. (flatpatterns of steel 10mm had to go to a sheet called steel 10mm) And added overall dimensions and notes.
After all views were made, I used this to position them with this code.
Starting lower left, placing next view on the right.
Untill there was not enough space on the right, it would start again on the left on a new row:
Dim oTG As TransientGeometry = oApp.TransientGeometry
'position views
For Each oSheet As Sheet In CutDrawing.Sheets
oSheet.Activate()
Dim posX As Double = 1
Dim posY As Double = 0
Dim heightY As Double = 1
Dim LargestY As Double = 0
Dim SheetWidth As Double = 83.5 'cm
For Each oView As DrawingView In oSheet.DrawingViews
'New Line
If posX + oView.Width > SheetWidth Then
heightY = heightY + LargestY + 5
LargestY = 0
posX = 1
End If
'Point is in the center, with this i calc dist to lower left
posX = posX + oView.Width / 2 + 1
posY = heightY + oView.Height / 2 + 1
If oView.Height > LargestY Then LargestY = oView.Height
oPoint1 = oTG.CreatePoint2d(posX, posY)
oView.Position = oPoint1
posX = posX + oView.Width / 2 + 1
Next
Next