Hi @Anonymous
Here is a quick ilogic rule that allows you to pick/select the balloons in the order that you want to renumber, then it renumbers the balloons and pushes the new numbers to the BOM and parts list and resorts the parts list.
It's still going to be a bit tedious to use this for a drawing with a large number of balloons, but it is still probably better than doing it manually.
Unfortunately, I could not find a reliable way to do this with a preselected crossing window... and don't have the time to look into sorting all balloons on the sheet by X,Y coordinates.... but I think that could be done fairly easily. So you might post to the Inventor Customization forum and ask about sorting all balloons on the sheet by their position on the sheet/ X,Ys.
http://forums.autodesk.com/t5/Autodesk-Inventor-Customization/bd-p/120
I hope this helps.
Best of luck to you in all of your Inventor pursuits,
Curtis
http://inventortrenches.blogspot.com
Dim oDoc As DrawingDocument
oDoc = ThisApplication.ActiveDocument
'create selection set
oSet = oDoc.CreateHighlightSet
While True
Dim oFoObjeature As Object
oObj = ThisApplication.CommandManager.Pick(
SelectionFilterEnum.kDrawingBalloonFilter,
"Select Balloons (press ESC to continue)")
' If nothing gets selected then we're done
If IsNothing(oObj) Then Exit While
If TypeOf oObj Is Balloon Then
oSet.AddItem(oObj)
End If
End While
'renumber balloons
i = 1
Dim oBalloon As Balloon
For Each oBalloon In oSet
For Each oBalloonValueSet In oBalloon.BalloonValueSets
Dim oDrawingBOMRow As DrawingBOMRow
oDrawingBOMRow = oBalloonValueSet.ReferencedRow
oBalloon.BalloonValueSets(1).OverrideValue = i
Dim oBOMRow As BOMRow
oBOMRow = oDrawingBOMRow.BOMRow
oBOMRow.ItemNumber = oBalloonValueSet.OverrideValue
Next
i = i + 1
Next
'resort parts list
Dim oPartsList1 As PartsList
oPartsList1 = oDoc.ActiveSheet.PartsLists.Item(1)
oPartsList1.Sort("ITEM", 1, "DESCRIPTION", 1, "QTY", 1)