Book a Demo
Prev Next

Internal Transition

If you need to define an internal Transition in a State, you can do so by creating an external self-Transition connector (where the Source and Target are the same State) and then changing the connector 'kind' property. The self-Transition connector is then removed from the diagram and the internal Transition displays in a compartment inside the State element.

Define an Internal Transition



See also


In the Browser window, double-click on the StateMachine diagram containing the State element to open it.


On the State element, create a Transition connector issuing from and terminating in the element (a 'self Transition').

In the Diagram Toolbox, select the Transition connector, then click and release on the State element.


Right-click on the connector and select the 'Properties' option to display the 'Properties' dialog.


Select the 'Constraints' tab and define any guard, effect and trigger for the Transition.



Select the 'General' tab, then select the child tab 'Advanced'. Click on the drop-down arrow in the value field for the kind property and select 'internal'.


Click on the OK button. The Transitions display in the same compartment as internal activities (exit/, do/, entry/).

Showing transitions in a UML State element


  • To view or edit the properties of the internal Transition, double-click on the entry in the compartment within the State
  • If you need multiple internal transitions, including those with the same Trigger but different guards, you create them separately with each Transition having its own guard
  • You can create further transitions and internal triggers by clicking on the State element, displaying the Features window at the 'Internal Triggers' tab, right-clicking on the tab and selecting the 'New Internal Triggers' option

OMG UML Specification:

The OMG UML specification (UML Superstructure Specification, v2.4.1, p.362) states:

[A TransitionKind of internal ] Implies that the Transition, if triggered, occurs without exiting or entering the source State (i.e., it does not cause a state change). This means that the entry or exit condition of the source State will not be invoked. An internal Transition can be taken even if the SateMachine is in one or more Regions nested within the associated State