Variations
One master document, a grid of named instances, one Generate. A variation template captures the handful of values that actually drive a design — dimensions, parameters, properties, suppression, material — and turns a family of sizes into a table you fill in.
When to reach for it
Use a variation template when the same document has to exist in several sizes or specifications: a bracket in three widths, a housing with and without the mounting boss, the same plate in aluminium and in steel. You are not building anything new — you are re-stating a small set of numbers.
If the job is the same steps on many different documents, that is a macro. If the rules are the same but the parts vary, that is a skill.
The three stages
1. Capture
Open the master document and capture from it. CoPilot reads the document and lists what it found, with the value it currently holds.
You can also do it from the library: open the Variations tab and choose Capture….
Seven kinds of value can be captured:
- Driving dimension — a feature's own parameter, such as an extrude length or a hole diameter.
- User parameter, equation or global variable — the named expressions that drive the model.
- Custom property — document-scope, or scoped to one configuration where the CAD supports that.
- Feature suppression — a feature that is present in one variant and not another.
- Material.
- Assembly component file — which file an occurrence points at.
- Active configuration or variant — the named configuration the document opens in.
2. Edit the grid
The instance dialog is a table: one row per captured value, showing its label, its kind, its unit and the value the master holds, and one column per instance. The editor in each cell is chosen by the value's type — a number box with its unit and limits, a text box, a checkbox, a drop-down, or a file picker.
The toolbar has Add instance (which copies the captured values as a starting point), Duplicate, Rename, Delete, Edit template (rename a label, include or exclude a row, set minimum, maximum or the allowed choices), Generate, and Capture from active document.
A value that will not do is refused by name as you type it: outside its limits, a choice that is not on the list, a number that is not a number, a file that does not exist, a duplicate instance name. The cell is outlined, the reason is its tooltip, your typing is kept, and Generate is blocked until it is fixed.
3. Generate
Generate applies one instance at a time. For each included value it writes the new value through that kind's write operation and reads it straight back. When every value is written, it measures everything again — because the read after one write cannot see a later write that moved the same underlying value — and compares the final measurement with what the instance asked for.
- If everything holds, the document is saved as a copy (to the output path you gave, otherwise
<master>_<instance>beside the master). - If anything does not hold, the instance is a failure naming the parameter, and nothing is saved for it.
- Either way the master is put back: it is re-opened from disk and every value that still reads as changed is set back and measured again. What you are told about the restore is a measurement, not an assumption.
Each instance reports its measured read-backs as it completes, so you can see the numbers that actually landed rather than the numbers you asked for.
What is capturable differs by CAD system
A kind is offered on a CAD system only when both halves really exist there — the operation that reads the value and the operation that writes it. An operation that answers “not implemented for this CAD system”, or a read that can only ever return an empty list, is not an implementation, because a capture could never be verified through it.
So the honest answer to “can I vary X?” is: ask the template. When you capture, the kinds your CAD cannot do are listed under skipped with the reason, and the kinds that carry a caveat carry it with them into the dialog rather than hiding behind a green tick.
| What you want to vary | Where it works today |
|---|---|
| Custom properties (document scope) | All five CAD systems, AutoCAD included. |
| User parameters / equations / global variables | SOLIDWORKS, Inventor, NX and Solid Edge. |
| Assembly component file | SOLIDWORKS, Inventor, NX and Solid Edge. |
| Active configuration / variant | SOLIDWORKS, Inventor, NX and Solid Edge. |
| Driving dimensions | SOLIDWORKS and Inventor. Solid Edge captures lengths reliably; other units are converted by a fixed factor and can be mangled, so capture lengths. On NX, dimensions cannot currently be looked up by feature — the model-scope expressions are captured as user parameters instead, and they do drive the geometry. |
| Feature suppression | SOLIDWORKS, Inventor and NX. Not on Solid Edge: suppression can be written there but not read, so a capture could not be verified. |
| Material | SOLIDWORKS and Inventor. Available on NX and Solid Edge with a caveat — on both, the read that reports the material is not the same store the write sets, so the read-back may not name what was written. |
| Configuration-scoped custom properties | SOLIDWORKS, Inventor (model states) and Solid Edge (family members). Refused on NX and AutoCAD rather than being quietly written to the document instead. |
| Sheet-metal thickness or bend radius | No CAD system. There is no operation anywhere that reads them back from an existing sheet-metal part, so they cannot be captured. They come through as an ordinary dimension only where a CAD happens to expose them on the flange feature. |
| Anything on AutoCAD beyond custom properties | Not available. AutoCAD has no features, no parameters and no configurations to drive. |
Where templates live
A template is a local file under your own profile, one per template, and it is the working copy that the dialog and the chat both edit. Because both write to the same file, the dialog re-reads it before every edit, so a change you made through chat is never lost by a dialog that was already open.
Capturing also saves the design as an automation project on your organization's server, which is the shared half — the local template is the editable half.
Driving it from the chat
Two refusals worth expecting
- Wrong CAD. A template remembers the CAD system it was captured on, and a Generate on a different one is refused, naming both. The values it holds only mean something in the document they came from.
- Two rows, one value. A CAD may list one dimension under more than one feature — SOLIDWORKS reports a sketch dimension under the sketch that owns it and under the feature that consumes it. The capture collapses those into one row and tells you the other name. If two included rows really do address one value and an instance sets them to different numbers, that is named before the run starts and nothing is executed.
See also
- Macros — the same steps on many documents.
- Spending fewer tokens — why a grid of instances costs far less than a conversation per size.
- Skills · Examples
- Verifying results