# UiPath.Studio.Activities.Api.Wizards

> In this section you can find more information on how to build activities using **UiPath.Studio.Activities.Api.Wizards**.

In this section you can find more information on how to build activities using **UiPath.Studio.Activities.Api.Wizards**.

## IWizardExecutionContext
:::note
This feature was introduced in UiPath.Studio.Activities.Api v20.4.
:::

The execution context for a wizard.

### Inheritance

IDisposable > IWizardExecutionContext

### Functions

#### ModelItem GetInsertionContainer()

Get the container where the result activity would be inserted. The returned value should never be null, but it's still recommended to guard against.

#### void Initialize()

Prepare the conditions in the designer, like insertion container.

## IWizardsService

Add wizards to Studio.

### Methods

#### void Register(WizardCollection collection)

Add a wizard collection.

| Parameter Type | Parameter Name | Description |
| --- | --- | --- |
| WizardCollection | collection | Add a wizard collection. |

## RunWizardSettings
:::note
This feature was introduced in UiPath.Studio.Activities.Api v21.4.
:::

The settings of the wizard implementation.

### Properties

| Type | Name | Description |
| --- | --- | --- |
| bool | HasProxySequenceSupport | If set to `true`, it indicates the wizard implementation can handle proxy sequences. |

## WizardBase

A wizard implementation.

### Properties

| Type | Name | Description |
| --- | --- | --- |
| Func<Activity> | RunWizard | Executes a wizard and returns the resulted activity. |
| `Func<IWizardExecutionContext, Task<bool>>` | RunWizardWithContainerAsync | Executes a wizard in realtime, allowing it to directly manipulate the workflow it is called on.  Takes precedence over `RunWizard`, if both are implemented then only this one will be run.  The context can be used to retrieve an initially empty target  container, part of the workflow, which it can manipulate freely in real time. The return value indicates whether or not the provided container should be kept as part of the workflow.  In case the container should be discarded, any operations done on the workflow outside  of the container should be cleaned up by the wizard.  Requires Studio 2020.4 or later. |
| RunWizardSettings | RunWizardSettings | Settings that describe this wizard's implementation capabilities.  Requires Studio 2020.10 or later. |

## WizardCollection

Returns a multi tree of wizard definitions. Each entry is a button on the ribbon. Children for each entry are menu items.

### Properties

| Type | Name | Description |
| --- | --- | --- |
| `List<WizardDefinition>` | WizardDefinitions | Returns a collection of wizard definitions. Their order will define how they appear in the ribbon. |

## WizardDefinition

Summary of a wizard's Ui properties.

### Properties

 <colgroup>
  <col/>
  <col/>
  <col/>
 </colgroup>
 
  
     Type  
     Name  
     Description  
  
 
 
  
     string  
     DisplayName  
     Translated display name.  
  
  
     string  
     IconUri  
     Location of the icon resource in the providing assembly.  
  
  
     string  
     Tooltip  
     Translated tooltip.  
  
  
     KeyGesture  
     Shortcut  
     This wizard's shortcut.  
  
  
     List&lt;WizardDefinition&gt;  
     ChildrenDefinitions  
     Returns sub-wizards or null if none available.  
  
  
     WizardBase  
     Wizard  
     The wizard instance for this definition or null.  
  
  
     bool  
     MinimizeBeforeRun  
    If <code>true</code> , Studio will minimize before calling RunWizard, and restore when RunWizard returns. Requires Studio 2020.4 or later. 
  
  
     string  
     RequiredStudioFeature  
   
      
         If null or empty, Studio will add the wizard. 
         If using a product code, Studio will add the wizard if the license contains that code. 
         If using another string, Studio will add the wizard if it knows the string. 
         For anything else, no wizard is added. 
         Requires Studio 2020.4 or later.
