# Parameter groups

The pseudo parameter types specified with `type="group"` and `type="expandable-group"` are used to group parameters in sections in the user interface.

Note

Parameters in groups are not arranged by group in `parameters`, the grouping is only for user interface styling.

      local groupedParameter1 = self.parameters.GroupedParameter1

All parameter names within a tool must be unique even if the parameters are in different groups.

## Example

This defines a group with two parameters that is always expanded:

>         {name="MyGroup", type="group",
>          parameters={
>            {name="GroupedParameter1", type="enum", values={"Option1","Option2","Option3"}, default="Option1"},
>            {name="GroupedParameter2", type="int", range={0,10000}}}}

This defines an expandable group with two parameters:

>         {name="MyExpandableGroup", type="expandable-group",
>          parameters={
>            {name="GroupedParameter3", type="enum", values={"Option1","Option2","Option3"}, default="Option1"},
>            {name="GroupedParameter4", type="int", range={0,10000}}}}

which looks like this:

> Collapsed

> Expanded

## Group definition fields

These are the keys for a group parameter declaration table.

name:

  The label for the name of the group for the heading in the GUI.

type:

  `"group"` or `"expandable-group"`

parameters:

  An inner Parameter list of parameters in the group.

  The `parameters` list of a group has the same structure as the `parameter list` list in the call to `Tool.register`, and should contain the definitions for parameters that are part of the group.