Skip to main content

param()

Declares a named parameter and returns its current value. The control is inferred from the default: a boolean becomes a checkbox, a number a number field, a string a text field.

A parameter belongs to a part(...) (or assembly(...)) body — declare it at the top of the callback, before the geometry that reads it. Called outside every body it is an error: a file has no parameters of its own. When the defining file renders, the parameter appears in the Parameters panel under its part, and a value edited there is written back as the new default. Inserted elsewhere, the same declaration is the definition's parameter interface: insert(def, { Length: 380 }) supplies the value per instance, and the Insert dialog builds that object from these declarations.

Returns: number | string | boolean

tip

See the guide for detailed usage examples.

Signatures

param(label: string, defaultValue: T): T

Declares a named parameter and returns its current value. The control is inferred from the default: a boolean becomes a checkbox, a number a number field, a string a text field.

A parameter belongs to a part(...) (or assembly(...)) body — declare it at the top of the callback, before the geometry that reads it. Called outside every body it is an error: a file has no parameters of its own. When the defining file renders, the parameter appears in the Parameters panel under its part, and a value edited there is written back as the new default. Inserted elsewhere, the same declaration is the definition's parameter interface: insert(def, { Length: 380 }) supplies the value per instance, and the Insert dialog builds that object from these declarations.

ParameterTypeDescription
labelstringThe parameter's name — what the panel shows and the key an override uses. Unique within a part.
defaultValueTThe value used when nothing overrides it.

param(label: string, defaultValue: T, type: K, options?: ParamOptionsMap[K]): T

Declares a named parameter with an explicit control and its options.

const length = param('Length', 150, 'number', { min: 20, max: 2000, step: 10 });
const bore = param('Bore', 4.2, 'slider', { min: 3, max: 8, step: 0.1 });
const finish = param('Finish', 'anodised', 'select', {
options: [{ label: 'Anodised', value: 'anodised' }, { label: 'Raw', value: 'raw' }],
});
const rounded = param('Rounded corners', true, 'checkbox');
const tint = param('Body colour', '#4a90d9', 'color');
ParameterTypeDescription
labelstringThe parameter's name and override key.
defaultValueTThe value used when nothing overrides it.
typeKThe control: 'number', 'slider', 'text', 'select', 'checkbox' or 'color'.
optionsParamOptionsMap[K]Per-type options: min / max / step for number and slider, options (plus multi, multiControlType) for select; every type takes group and description. (optional)

param(label: string, defaultValue: (string | number)[], type: 'select', options: SelectParamOptions & { multi: true }): (string | number)[]

Declares a multi-select parameter: the value is the array of chosen option values. multiControlType picks how it is shown — 'select', 'checkboxes' or 'chips'.

ParameterTypeDescription
labelstringThe parameter's name and override key.
defaultValue(string | number)[]The option values selected by default.
type'select'Always 'select'.
optionsSelectParamOptions & { multi: true }options to choose from, with multi: true.