Blog · Inventor · 1 Oct 2026 · 3 min read
How to add balloons to an Inventor assembly drawing with the API
Inventor's auto-balloon is not in the API, and balloon numbers are BOM items, not your part codes. How we put delivery codes in balloons, the placement rules measured on a drawing a designer approved, text height per view scale, and the save that rolled the file back.
Short answer: there is no AutoBalloon in the API. Place balloons one by one, attached with CreateGeometryIntent to the longest visible segment of each part, and write the part code with OverrideValue, not Value (which is the BOM item number). Get the code by walking from the balloon's leader to the model body. Let a person arrange the views first, then balloon them as they are.
The flow that worked
- The script creates rough views of the assembly.
- A person arranges them, saves and closes the file.
- The script adds balloons to the views as they are.
Trying to have the script also lay out a crowded drawing failed: on A3 sheets, five rounds, none acceptable.
Sheet sizes from code: oSheet.Size = 9993 is A0 (A1 = 9994, A2 = 9995, A3 = 9996, A4 = 9997).
Putting your code in the balloon
The part code travels inside the model: bodies are renamed to their delivery code. From a balloon you reach the body like this:
Balloon.Leader → last node → AttachedEntity (a GeometryIntent, not a DrawingCurve) → .Geometry (the DrawingCurve) → .ModelGeometry.Parent.Name
Then write the code with OverrideValue. Write it bare: a code with a suffix that is not in the parts list confuses everyone.
Placement rules, measured
We measured an arrangement a designer had approved and turned it into five rules:
| Rule | Value |
|---|---|
| Balloon inside or outside the view | threshold at about 3 cm |
| Exit side | nearest edge of the view box (98% of cases) |
| Lanes | 1.3 to 1.6 cm from the view, pitch about 2 cm |
| Leader length | median 28 mm, never under 10 mm |
| Attachment | CreateGeometryIntent(curve, fraction) on the longest visible segment |
Text height depends on the view scale
The balloon circle grows with the text (ScaleToTextHeight = True): you set the text, not the circle. The style height is the height you want on paper divided by the view scale: at 1:46, a height of 0.3 on paper needs a style of 13.8 (0.3 × 46). Clone the style, do not edit it in place.
Colour: three properties
- circle:
Balloon.Layer - arrows and leader:
Balloon.Style.LeaderStyle.Color - text:
Balloon.Style.TextStyle.Color
There is no Balloon.Color.
Parts list traps
| Trap | Fix |
|---|---|
CustomTables.Add from VBScript gives err 13 |
AddCSVTable |
| The table is lost in DXF export | Plan for it: rebuild the table on the DXF side if needed |
Changing MaximumRows |
Three Unspecified errors. Leave it alone |
| Estimating table text width as characters × height × 0.6 | 12% wrong. Measure with the font: text width in ezdxf |
The save that went backwards
A save from a script that fails does not leave the file as it was. It rolls it back: 195 balloons became 193. Back up before saving, verify the backup, and stop if Inventor has the file open elsewhere.
Do and don't
Do
- Let a person arrange the views; balloon them afterwards.
- Use
OverrideValuefor your codes. - Clone balloon styles and size them by view scale.
- Back up before every save.
Don't
- Don't look for an auto-balloon call.
- Don't write codes into
Value. - Don't change
MaximumRowson parts lists.
Questions people ask
Can an AI agent balloon an assembly drawing? Yes, on views a person has arranged. It places, numbers and checks every balloon against the parts list.
How do you check the balloons? Read every balloon back, walk to its body, and compare the code with the parts list. Then look at the drawing for crossed leaders.