User Parameters and Equations#
Overview#
A user parameter is a named value you define yourself. An equation is an expression that computes a parameter or dimension from others. Together they let you describe a part by a few meaningful inputs ("box length, wall thickness, screw size") and derive everything else.
The pattern: define inputs (independent parameters) at the top, and derived parameters (equations) below. Dimensions in sketches and features then reference these names.
Example for a project box:
| Name | Expression | Kind |
|---|---|---|
box_l | 80 mm | input |
box_w | 50 mm | input |
box_h | 30 mm | input |
wall | 2 mm | input |
screw_d | 3 mm | input |
boss_od | screw_d * 2.5 | derived |
inner_l | box_l - 2 * wall | derived |
inner_w | box_w - 2 * wall | derived |
fillet_r | wall * 1.5 | derived |
n_screws | 4 | input (no units) |
Change box_l to 100 mm and everything updates: inner length, bosses, fillets.
Where to find it#
- Modify > Change Parameters (or S and search).
- Any numeric field in a dialog or sketch dimension accepts an expression. Type a name or formula directly.
- In a field, start typing a parameter name and Fusion offers matches; pick one. Typing
Name=valuein a parametric field creates a new parameter on the fly and adds it to Favorites (per Autodesk's help).
Step by step#
Build the parameter table first#
- Open Change Parameters and click + User Parameter (Add User Parameter).
- Name
box_l, unitmm, expression80 mm(typing the unit avoids any ambiguity about how a bare number is read). Comment: "overall length". - Repeat for
box_w,box_h,wall,screw_d. - Add
inner_lwith expressionbox_l - 2 * wall. Check the Value column shows 76 mm. - Add
n_screwswith Unit "No Unit" and expression4.
Drive sketch dimensions#
- Sketch a rectangle on the XY plane, anchoring one corner to the origin.
- Press D (Sketch Dimension). Click the horizontal edge, place the dimension; in the value box type
box_land press Enter. - Do the same for the vertical edge with
box_w. - Finish Sketch. Extrude with distance
box_h. - Shell with thickness
wall.
The dimension is now driven by the parameter; you can click the field to switch between the expression and its value.
Drive counts and angles#
- In a Circular Pattern dialog, set Quantity to
n_screws. - Angles can use user parameters of unit
deg.
Chain equations#
- Create
boss_od=screw_d * 2.5. - Create
boss_h=box_h - wall - 1 mm. - Use these in sketches for the bosses. Any change to
screw_dcascades.
Use conditional-like patterns#
Fusion expressions are not a full programming language, but Autodesk's reference lists if(condition; true_result; false_result) with and, or, not and the comparison operators, so real conditionals are available. Function arguments are separated with a semicolon (a comma conflicts with the decimal delimiter in some locales). Examples:
wall_safe = max(wall; 1.2 mm)guarantees a minimum.fillet_ok = min(fillet_r; wall * 2)caps a fillet.boss_od = if(screw_d > 4 mm; screw_d * 2; screw_d * 2.5)switches the ratio for large screws.rows = if(box_l > 100 mm; 3; 2)changes a pattern count (set the parameter to No Unit).
Options reference#
| Element | What it does | Notes |
|---|---|---|
| Name rules | Unique; the allowed symbols listed in Autodesk's reference are underscore, double quote, dollar sign, degree sign and micro sign | Avoid reserved words, function names and unit names |
| Expression | Number, unit, parameter names, operators | + - * / ^ and parentheses; functions allowed |
| Unit | Defines the parameter's type | Pick "No Unit" for counts and ratios |
| Comment | Free text | Use it for rationale |
| Dependency | Parameters referencing others | Avoid circular references (general guidance) |
| Rename | Updates references | Verify derived/external links after |
| Reference by name | box_l inside any dimension field | Typing names beats typing numbers |
Tips and pitfalls#
Tip: Make a small set of high-level inputs, 5 to 10, and compute the rest. Dozens of independent parameters are just a different kind of mess.
Tip: Use ratio parameters like
fillet_r = wall * 1.5, so geometry scales together. Hard-coded numbers rot.
Tip: Group related parameters by name prefix (
screw_d,screw_len,screw_head_d). Sorting then groups them naturally.
Warning: An equation that mixes units wrongly (for example
wall + 5 deg) will fail. Divide a length by a length to get a unitless ratio.
Warning: Dividing by zero or taking a square root of a negative gives an error that can cascade into the model. Note that
sqrttakes a unitless argument in Autodesk's reference.
Warning: Parameters are global to the design but not automatically shared across designs. Use Derive or Configurations when you need to share.
Warning: Avoid names that match a function or unit (for example
m,min,max,in); this is general advice, and descriptive names are safer.
Design guidelines:
- Intent over numbers. A
clearanceparameter used by every mating feature beats ten separate 0.2 mm dimensions. - Tolerance parameters. For 3D printing, keep
tol = 0.2 mmand add it to holes:hole_d = screw_d + tol. - Single source of truth. Never type the same number into two dimensions; reference one parameter.
- Avoid over-parameterization. Parameters for values nobody will change add noise. Cosmetic fillets can stay as plain numbers.
- Check limits. Test the extremes of each input before relying on it; some combinations produce invalid geometry.
Parameters from spreadsheets#
Fusion can export user parameters to CSV (Export Parameters) and import them back (Import Parameters) from the Change Parameters dialog, so you can edit a parameter set in a table editor or reuse it in another design. Export first and use the file as a template so the header is correct. For many variants of one design, Configurations is usually the better route (see the Configurations page).
Designing the parameter set#
A good parameter set has three layers, and the order in the dialog should follow it.
| Layer | Examples | Rule |
|---|---|---|
| Requirements | box_l, box_w, wall, screw_d, n_screws | Typed by a person; have comments with units and source |
| Standards and tolerances | tol, edge_min, clearance | Change rarely; shared by many features |
| Derived | inner_l, boss_od, fillet_r | Equations only; never typed over |
Put requirements first, because they are what a colleague will edit. If a derived value needs overriding, add an input (boss_od_override) and use if to choose, rather than typing a number over the equation.
Worked example: fastener fits#
For an M4 screw, screw_d = 4 mm, tol = 0.2 mm (printed) and head_d = 7 mm:
| Parameter | Expression | Value |
|---|---|---|
clear_d | screw_d + tol * 2 | 4.4 mm |
cbore_d | head_d + tol * 2 | 7.4 mm |
cbore_h | screw_head_h + tol | 4.2 mm (head height 4 mm) |
tap_d | screw_d * 0.8 | 3.2 mm (plastic self-tap approximation) |
boss_od | max(screw_d * 2.5; tap_d + 2 * wall) | 10 mm with a 2 mm wall |
boss_h | box_h - wall - 1 mm | 27 mm for a 30 mm box |
Change screw_d to 3 mm and every one of them recalculates: clear_d 3.4 mm, cbore_d 7.4 mm (head set separately), tap_d 2.4 mm, boss_od 7.5 mm or 2.4 + 4 = 6.4 mm, whichever is larger, giving 7.5 mm. The max keeps the boss from becoming too thin.
Naming and organization#
- Prefix families:
screw_d,screw_len,screw_head_d,boss_od,boss_h. Alphabetical sorting groups them. - Suffix units where it helps:
rot_angfor angles,n_for counts (n_screws). - Do not use names that look like units or functions. A parameter called
minorinproduces confusing results. - Text parameters (Unit = Text) can drive labels:
label=Box {box_l} x {box_w}.
Dependency order#
Parameters are evaluated from the references they contain; circular references cannot be resolved, so a = b + 1 and b = a - 1 cannot sensibly coexist (general guidance). Build chains in one direction: inputs, then standards, then derived. When you need two-way behavior (set a result and compute the input), create a separate input and compute the other from it.
Testing a parameter set#
- Set each requirement to its extreme in turn, recording which derived values become negative, zero or absurd.
- Add guards:
max(),min(),if(). - Record safe ranges in the comment column ("box_l: 40 to 200 mm").
- For counts, test the minimum and maximum that physically fit; divide-by-zero lives at n = 1.
Failure modes and fixes#
| Symptom | Cause | Fix |
|---|---|---|
| Expression flagged as invalid | Invalid expression or unit mismatch | Simplify the expression and compare units |
| Derived dimension does not change | Dimension was typed with a number over the parameter | Re-enter name in the dimension field |
| Rename leaves old name in a derived design | Derived design uses the old name | Update downstream, or keep the old name and add a new one |
| Model fails at a high value | No limit on a derived feature | Add min() limits |
| Count parameter gives a length | Unit was mm | Set Unit to No Unit |
| Parameter list is chaos | No naming scheme | Prefix families; comment each |
| Tolerance repeated in 10 places | Value typed | Replace with tol |
Practice exercise#
Build the parametric project box and discover its limits numerically.
- Create inputs:
box_l80 mm,box_w50 mm,box_h30 mm,wall2 mm,screw_d3 mm,tol0.2 mm,n_screws4 (No Unit). Add comments with units and a stated safe range. - Create derived parameters:
inner_l = box_l - 2 * wall,inner_w = box_w - 2 * wall,boss_od = max(screw_d * 2.5; screw_d + 2 * wall),fillet_r = wall * 1.5,hole_d = screw_d + tol. Verify the values (76, 46, 7.5, 3, 3.2 mm). - Sketch and extrude the outer body using
box_l,box_w,box_h; shell withwall. Add four bosses ofboss_odwith holeshole_d, patterned withn_screws. - Add a guard parameter
wall_ok = if(wall < 1.2 mm; 1.2 mm; wall)and use it in the shell. - Test:
box_l120 mm,wall3 mm,screw_d4 mm. The model should update with no errors. - Find the breaking points: raise
walluntil the shell fails (expect nearbox_w / 2, about 25 mm, or earlier because of the bosses) and lowerbox_wuntil the bosses no longer fit. - Test
n_screwsof 2, 4, 6 and 8 and decide how to protect the pattern. - Write the safe ranges back into the comments.
Expected result: a parametric box resizable from seven numbers, with written limits and guards that keep it valid.
Related#
- The Change Parameters dialog
- Units and expressions
- Design-for-change patterns