System Validation Rules
This article details the full suite of system validation rules built into Logiop Studio. Validation rules ensure model consistency, maintain structural constraints, and guarantee that exported state machines adhere to system specifications.
System Rules
Rule ID
Description
Affected Elements
SV1001
System Rule
A root State Machine must have a unique name within its containing Project.
State Machines
Project
SV1002
System Rule
Vertices and Transitions within a State Machine must have unique names.
State Machine
Vertices
Transitions
SV1003
System Rule
A Submachine must have a unique name within its root State Machine.
State Machine
Submachine
SV1004
System Rule
A Submachine can only be referenced by Submachine States within its owning root State Machine tree.
State Machine
Submachine
SV1005
System Rule
A Submachine cannot reference itself directly through nested Submachine States.
Submachine
SV1006
System Rule
A Submachine must contain exactly one top-level Composite State. All internal elements must reside within this root Composite State.
Submachine
SV1007
System Rule
Only one Connection Point Reference referencing a specific Connection Point of a Submachine can be created for a referencing Submachine State.
Submachine
Submachine State
Connection Point
Connection Point Reference
SV1008
System Rule
A State Machine Behavior name must be unique across all Behavior types (Events, Actions, DoActivity, and Guards).
State Machine
Behaviors
SV1009
System Rule
A State or Transition Behavior reference must resolve to an existing Behavior defined at the root State Machine scope.
State Machine
Behaviors
State
Transition
SV1010
System Rule
Element names must start with a letter or underscore, contain only letters, digits, underscores, or single spaces, and avoid reserved keywords.
All
SV1011
System Rule
A State's visual dimensions cannot be reduced below the bounds of its connected Transitions, Connection Points, or contained Regions.
State
SV1012
System Rule
A Region's visual dimensions cannot be reduced below the bounds of its contained Vertices, nor below the locations of Transitions and Connection Points anchored to its parent State's edges.
Region
SV1014
System Rule
Entry and Exit Point Vertices can only be added to a composite State.
Entry Point
Exit Point
State
SV1016
System Rule
A History Vertex can only be added to a Region of a composite State.
History
State
Region
SV1017
System Rule
All Canvas elements are movable except Transitions, which are automatically redrawn based on their connector handles.
Transition
Transition Label
Vertex
SV1018
System Rule
Only State, Join, and Fork Vertices, as well as Transition Labels, support manual resizing.
State
Join
Fork
Transition Label
Transition
Vertex
SV1019
System Rule
Only the height of a Join or Fork Vertex can be adjusted, and it cannot be reduced below the bounds of its connected Transitions.
Join
Fork
SV1020
System Rule
Entry and Exit Point Vertices can only be repositioned along the edges of their parent State.
Entry Point
Exit Point
State
SV1021
System Rule
Entry and Exit Point Vertices cannot be reparented to a different parent State.
Entry Point
Exit Point
State
SV1022
System Rule
Entry and Exit Point Vertices must have a unique name within its parent State's Connection Points.
Entry Point
Exit Point
State
SV1023
System Rule
A Transition originating from a descendant Vertex within a composite State must not target that containing composite State.
Transition
State
Vertex
SV1024
System Rule
A Transition originating from a composite State must not target a descendant Vertex within that composite State.
Transition
State
Vertex
SV1025
System Rule
A Transition originating from a Pseudostate cannot define Event triggers.
Transition
Behaviors
Pseudostate
SV1026
System Rule
The default placement for a Transition Label is adjacent to the Transition's source connector.
Transition
Transition Label
SV1027
System Rule
When a Transition's source connector is moved along the same edge of its source Vertex, the attached Transition Label automatically shifts by the same delta. If the connector is moved to a different edge, the label resets to its default placement adjacent to the source connector.
Transition
Transition Label
SV1028
System Rule
A Transition Label has a fixed height and only its width can be adjusted.
Transition
Transition Label
SV1029
System Rule
An Internal Transition that is marked as deferred cannot define Guards or Effect Actions.
Internal Transition
SV1030
System Rule
Submachines inherit the Behaviors of their root State Machine and do not maintain a separate Behavior repository.
Submachine
State Machine
Behaviors
Reserved Words
As specified in SV1010, element names must avoid reserved keywords to prevent identifier conflicts during runtime execution, code generation, and verification.
Reserved Keywords
Includes standard language keywords and Logiop reserved identifiers:
abstract
as
base
bool
break
byte
case
catch
char
checked
class
const
continue
decimal
default
delegate
defer
do
double
else
enum
event
explicit
extern
false
finally
fixed
float
for
foreach
goto
if
implicit
in
int
interface
internal
invocation
is
lock
long
namespace
new
null
object
operator
out
override
params
private
protected
public
readonly
ref
return
sbyte
sealed
short
sizeof
stackalloc
static
string
struct
switch
this
throw
true
try
typeof
uint
ulong
unchecked
unsafe
ushort
using
virtual
void
volatile
while
Contextual Keywords
Context-dependent identifiers restricted in element scope:
add
alias
and
ascending
async
await
by
descending
dynamic
equals
extension
field
file
from
get
global
group
init
into
join
let
managed
nameof
nint
not
notnull
nuint
on
or
orderby
partial
record
remove
required
scoped
select
set
unmanaged
value
var
when
where
with
yield