
# IProcessFlow interface

*No description yet.*

```csharp
public interface IProcessFlow
```

**Namespace:** SCH · **Assembly:** Altium.SDK.Interfaces

**Derived:** [ISoftwareProcessFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/ISoftwareProcessFlow.md)

## Properties

| Property | Type | Access | Description |
| --- | --- | --- | --- |
| [BasePath](#basepath) | `string` | get; set |  |
| [ParentStage](#parentstage) | [IProcessFlow](#) | get; set |  |

### BasePath

*No description yet.*

```csharp
string GetBasePath();
void SetBasePath(string argPath);
```

**Type:** `string` · **Access:** read/write

### ParentStage

*No description yet.*

```csharp
IProcessFlow GetParentStage();
void SetParentStage(IProcessFlow argStage);
```

**Type:** [IProcessFlow](#) · **Access:** read/write

The accessors are extension methods of `IProcessFlowHelper` (`using SCH;`).

## Methods

| Method | Returns | Description |
| --- | --- | --- |
| [AddChildStage](#addchildstage) | `void` |  |
| [AddDependency](#adddependency) | `void` |  |
| [CanEditProperties](#caneditproperties) | `bool` |  |
| [CanRun](#canrun) | `bool` |  |
| [ClearChildren](#clearchildren) | `void` |  |
| [ClearDependencies](#cleardependencies) | `void` |  |
| [ClearLastRunResult](#clearlastrunresult) | `void` |  |
| [EditProperties](#editproperties) | `void` |  |
| [FlowState](#flowstate) | [TProcessFlowState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TProcessFlowState.md) |  |
| [GetChildStage](#getchildstage) | [IProcessFlow](#) |  |
| [GetChildStageCount](#getchildstagecount) | `int` |  |
| [GetDependenciesCount](#getdependenciescount) | `int` |  |
| [GetDependency](#getdependency) | [IProcessFlow](#) |  |
| [InputDescription](#inputdescription) | `string` |  |
| [IsCategory](#iscategory) | `bool` |  |
| [IsRunning](#isrunning) | `bool` |  |
| [LastRunResult](#lastrunresult) | [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md) |  |
| [OutputDescription](#outputdescription) | `string` |  |
| [ProjectChanged](#projectchanged) | `void` |  |
| [ReportCount](#reportcount) | `int` |  |
| [ReportPath](#reportpath) | `string` |  |
| [Run](#run) | [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md) |  |
| [RunAll](#runall) | [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md) |  |
| [RunIfOutOfDate](#runifoutofdate) | [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md) |  |
| [RunningStage](#runningstage) | [IProcessFlow](#) |  |
| [RunWholeStage](#runwholestage) | [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md) |  |
| [StageCaption](#stagecaption) | `string` |  |
| [StageDescription](#stagedescription) | `string` |  |
| [StageName](#stagename) | `string` |  |
| [Stop](#stop) | `void` |  |
| [UpdateFlowState](#updateflowstate) | `bool` |  |

### AddChildStage

*No description yet.*

```csharp
void AddChildStage(IProcessFlow argStage);
void AddChildStage(object argStage);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argStage` | [IProcessFlow](#) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IProcessFlowHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### AddDependency

*No description yet.*

```csharp
void AddDependency(IProcessFlow argStage);
void AddDependency(object argStage);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argStage` | [IProcessFlow](#) | value |

**Returns:** nothing (`void`)

The first overload is an extension method of `IProcessFlowHelper` (`using SCH;`) with typed parameters; the second is declared by the interface.

### CanEditProperties

*No description yet.*

```csharp
bool CanEditProperties();
```

**Returns:** `bool`

### CanRun

*No description yet.*

```csharp
bool CanRun();
```

**Returns:** `bool`

### ClearChildren

*No description yet.*

```csharp
void ClearChildren();
```

**Returns:** nothing (`void`)

### ClearDependencies

*No description yet.*

```csharp
void ClearDependencies();
```

**Returns:** nothing (`void`)

### ClearLastRunResult

*No description yet.*

```csharp
void ClearLastRunResult();
```

**Returns:** nothing (`void`)

### EditProperties

*No description yet.*

```csharp
void EditProperties();
```

**Returns:** nothing (`void`)

### FlowState

*No description yet.*

```csharp
TProcessFlowState FlowState();
```

**Returns:** [TProcessFlowState](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TProcessFlowState.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### GetChildStage

*No description yet.*

```csharp
IProcessFlow GetChildStage(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IProcessFlow](#)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### GetChildStageCount

*No description yet.*

```csharp
int GetChildStageCount();
```

**Returns:** `int`

### GetDependenciesCount

*No description yet.*

```csharp
int GetDependenciesCount();
```

**Returns:** `int`

### GetDependency

*No description yet.*

```csharp
IProcessFlow GetDependency(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** [IProcessFlow](#)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### InputDescription

*No description yet.*

```csharp
string InputDescription();
```

**Returns:** `string`

### IsCategory

*No description yet.*

```csharp
bool IsCategory();
```

**Returns:** `bool`

### IsRunning

*No description yet.*

```csharp
bool IsRunning();
```

**Returns:** `bool`

### LastRunResult

*No description yet.*

```csharp
TFlowRunResult LastRunResult();
```

**Returns:** [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### OutputDescription

*No description yet.*

```csharp
string OutputDescription();
```

**Returns:** `string`

### ProjectChanged

*No description yet.*

```csharp
void ProjectChanged(string argProjectPath);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argProjectPath` | `string` | value |

**Returns:** nothing (`void`)

### ReportCount

*No description yet.*

```csharp
int ReportCount();
```

**Returns:** `int`

### ReportPath

*No description yet.*

```csharp
string ReportPath(int argIndex);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argIndex` | `int` | value |

**Returns:** `string`

### Run

*No description yet.*

```csharp
TFlowRunResult Run(IProcessFlowRunner argRunner);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRunner` | [IProcessFlowRunner](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IProcessFlowRunner.md) | value |

**Returns:** [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### RunAll

*No description yet.*

```csharp
TFlowRunResult RunAll(IProcessFlowRunner argRunner);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRunner` | [IProcessFlowRunner](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IProcessFlowRunner.md) | value |

**Returns:** [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### RunIfOutOfDate

*No description yet.*

```csharp
TFlowRunResult RunIfOutOfDate(IProcessFlowRunner argRunner);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRunner` | [IProcessFlowRunner](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IProcessFlowRunner.md) | value |

**Returns:** [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### RunningStage

*No description yet.*

```csharp
IProcessFlow RunningStage();
```

**Returns:** [IProcessFlow](#)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### RunWholeStage

*No description yet.*

```csharp
TFlowRunResult RunWholeStage(IProcessFlowRunner argRunner);
```

| Parameter | Type | Passing |
| --- | --- | --- |
| `argRunner` | [IProcessFlowRunner](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IProcessFlowRunner.md) | value |

**Returns:** [TFlowRunResult](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/TFlowRunResult.md)

Extension method of `IProcessFlowHelper` (`using SCH;`).

### StageCaption

*No description yet.*

```csharp
string StageCaption();
```

**Returns:** `string`

### StageDescription

*No description yet.*

```csharp
string StageDescription();
```

**Returns:** `string`

### StageName

*No description yet.*

```csharp
string StageName();
```

**Returns:** `string`

### Stop

*No description yet.*

```csharp
void Stop();
```

**Returns:** nothing (`void`)

### UpdateFlowState

*No description yet.*

```csharp
bool UpdateFlowState();
```

**Returns:** `bool`

## Returned by

[IDeviceLink.DownloadFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDeviceLink.md#downloadflow), [IDeviceLink.ProcessFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDeviceLink.md#processflow), [IDeviceLink.SubversionFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDeviceLink.md#subversionflow), [IDeviceLink.VaultFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDeviceLink.md#vaultflow), [IDeviceLink.VerifyFlow](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IDeviceLink.md#verifyflow), [INexusDevice.FlowStage_Build](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/INexusDevice.md#flowstage_build), [INexusDevice.FlowStage_Download](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/INexusDevice.md#flowstage_download), [INexusDriver.FlowStage_Build](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/INexusDriver.md#flowstage_build), [INexusDriver.FlowStage_Download](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/INexusDriver.md#flowstage_download)

## Accepted by

[IProcessFlowRunner.FlowStageStarting](https://altiumdeveloper.github.io/ad-sdk-docs/reference/sch/IProcessFlowRunner.md#flowstagestarting)
