# Interface ITransitionBuilder OptimaJet.Workflow.Core.Model.Builder.ITransitionBuilder Provides a fluent API for configuring a [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) within a process scheme. Namespace: [OptimaJet.Workflow.Core.Model.Builder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/) ```csharp public interface ITransitionBuilder : IProcessDefinitionBuilder ``` ## Type Hierarchy - ITransitionBuilder Current type - Base interfaces - [IProcessDefinitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/IProcessDefinitionBuilder/) - Derived interfaces - [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) - [ITransitionConditionsBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionConditionsBuilder/) - [ITransitionConditionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionConditionBuilder/) - [ITransitionExpressionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionExpressionBuilder/) - [ITransitionParallelFinalizeBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionParallelFinalizeBuilder/) - [ITransitionParallelStartBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionParallelStartBuilder/) ## Properties `TransitionDefinition Transition { get; }` Gets the [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) currently being configured. ## Methods `ITransitionBuilder Name(string name)` Sets the transition name. ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The name to assign. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder From(ActivityDefinition activityDefinition)` Sets [TransitionDefinition.From](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/), the source activity from which the transition starts. ### Parameters | Name | Type | Description | | --- | --- | --- | | `activityDefinition` | `ActivityDefinition` | The source [ActivityDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/). | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder To(ActivityDefinition activityDefinition)` Sets [TransitionDefinition.To](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/), the target activity to which the transition leads. ### Parameters | Name | Type | Description | | --- | --- | --- | | `activityDefinition` | `ActivityDefinition` | The target [ActivityDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ActivityDefinition/). | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder Auto()` Sets [TransitionDefinition.Trigger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [TriggerDefinition.Auto](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerDefinition/) and clears [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/). ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder TriggeredByTimer(TimerDefinition timerDefinition)` Sets [TransitionDefinition.Trigger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to a [TriggerType.Timer](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger and clears [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `timerDefinition` | `TimerDefinition` | The [TimerDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TimerDefinition/) associated with the trigger. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionCommandBuilder TriggeredByCommand(CommandDefinition commandDefinition)` Sets [TransitionDefinition.Trigger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to a [TriggerType.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger. ### Parameters | Name | Type | Description | | --- | --- | --- | | `commandDefinition` | `CommandDefinition` | The [CommandDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/CommandDefinition/) associated with the trigger. | ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | An [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) for configuring [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/). | `ITransitionCommandBuilder UpdateCommandTrigger()` Opens command-specific configuration when [TransitionDefinition.Trigger](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) is a [TriggerType.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger. ### Returns | Type | Description | | --- | --- | | `ITransitionCommandBuilder` | An [ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/) for configuring [TransitionDefinition.Restrictions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/). | ### Exceptions | Type | Description | | --- | --- | | `InvalidOperationException` | The transition does not have a [TriggerType.Command](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TriggerType/) trigger. | `ITransitionBuilder Direct()` Sets [TransitionDefinition.Classifier](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [TransitionClassifier.Direct](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionClassifier/), classifying the transition as forward. ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder Reverse()` Sets [TransitionDefinition.Classifier](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [TransitionClassifier.Reverse](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionClassifier/), classifying the transition as backward or corrective. ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder DirectionNotSpecified()` Sets [TransitionDefinition.Classifier](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [TransitionClassifier.NotSpecified](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionClassifier/). ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionConditionsBuilder Conditional()` Begins configuring [ConditionType.Action](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) and [ConditionType.Expression](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) conditions. ### Returns | Type | Description | | --- | --- | | `ITransitionConditionsBuilder` | An [ITransitionConditionsBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionConditionsBuilder/) for configuring the conditions. | ### Remarks Existing [ConditionType.Always](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) and [ConditionType.Otherwise](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) conditions are removed. `ITransitionBuilder Always()` Replaces [TransitionDefinition.Conditions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) with a single [ConditionType.Always](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) condition. ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | ### Remarks Also sets [TransitionDefinition.ConditionsConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.And](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/). `ITransitionBuilder Otherwise()` Replaces [TransitionDefinition.Conditions](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) with a single fallback [ConditionType.Otherwise](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConditionType/) condition. ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | ### Remarks Also sets [TransitionDefinition.ConditionsConcatenationType](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [ConcatenationType.And](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/ConcatenationType/). `ITransitionBuilder CreateOrUpdateAnnotation(string name, string value)` Creates or updates an [Annotation](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/Annotation/) named `name` on the transition, storing `value` unchanged. ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The name of the annotation. | | `value` | `String` | The string value to store; it may contain plain text or JSON. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder CreateOrUpdateAnnotation(string name, object value)` Creates or updates an [Annotation](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/Annotation/) named `name` on the transition, storing the JSON serialization of `value`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The name of the annotation. | | `value` | `Object` | The object to serialize and store. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder DeleteAnnotation(string name)` Removes all transition annotations named `name`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `name` | `String` | The annotation name to remove. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder NotParallel()` Configures the transition as a [TransitionForkType.NotFork](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionForkType/) transition. ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | ### Remarks Sets [TransitionDefinition.IsFork](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [false](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool). `ITransitionParallelStartBuilder ParallelStart()` Configures a [TransitionForkType.ForkStart](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionForkType/) transition by setting [TransitionDefinition.IsFork](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) and [TransitionDefinition.SubprocessInOutDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [SubprocessInOutDefinition.Start](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/SubprocessInOutDefinition/). ### Returns | Type | Description | | --- | --- | | `ITransitionParallelStartBuilder` | An [ITransitionParallelStartBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionParallelStartBuilder/) for configuring subprocess startup. | `ITransitionParallelFinalizeBuilder ParallelFinalize()` Configures a [TransitionForkType.ForkEnd](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionForkType/) transition by setting [TransitionDefinition.IsFork](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [true](https://learn.microsoft.com/dotnet/csharp/language-reference/builtin-types/bool) and [TransitionDefinition.SubprocessInOutDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [SubprocessInOutDefinition.Finalize](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/SubprocessInOutDefinition/). ### Returns | Type | Description | | --- | --- | | `ITransitionParallelFinalizeBuilder` | An [ITransitionParallelFinalizeBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionParallelFinalizeBuilder/) for configuring subprocess finalization. | `ITransitionBuilder CreateCommentary(string comment)` Sets [TransitionDefinition.UserComment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/), replacing any current value. ### Parameters | Name | Type | Description | | --- | --- | --- | | `comment` | `String` | The comment to assign. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder AppendCommentary(string comment)` Appends `comment` to [TransitionDefinition.UserComment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/), inserting a newline before it when the current comment is nonempty. ### Parameters | Name | Type | Description | | --- | --- | --- | | `comment` | `String` | The comment text to append. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder DeleteCommentary()` Sets [TransitionDefinition.UserComment](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) to [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null). ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder SetX(int? x)` Sets [DesignerSettings.X](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/DesignerSettings/) in the transition's [BaseDefinition.DesignerSettings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/BaseDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `x` | `Nullable` | The horizontal coordinate, or [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) to clear it. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder SetY(int? y)` Sets [DesignerSettings.Y](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/DesignerSettings/) in the transition's [BaseDefinition.DesignerSettings](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/BaseDefinition/). ### Parameters | Name | Type | Description | | --- | --- | --- | | `y` | `Nullable` | The vertical coordinate, or [null](https://learn.microsoft.com/dotnet/csharp/language-reference/keywords/null) to clear it. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | `ITransitionBuilder Ref(out TransitionDefinition transition)` Assigns the [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) currently being configured to `transition`. ### Parameters | Name | Type | Description | | --- | --- | --- | | `transition` | `TransitionDefinition` | When this method returns, contains the [TransitionDefinition](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model/TransitionDefinition/) being configured. | ### Returns | Type | Description | | --- | --- | | `ITransitionBuilder` | The current [ITransitionBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionBuilder/) instance. | [Previous ITimerBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITimerBuilder/) [Next ITransitionCommandBuilder](https://api.workflowengine.io/core/OptimaJet.Workflow.Core.Model.Builder/ITransitionCommandBuilder/)