Cada regla de control es una serie de declaraciones de forma:
RULE ID_regla IF condición_1 AND condición_2 OR condición_3 AND condición_4 etc. THEN acción_1 AND acción_2 etc. ELSE acción_3 AND acción_4 etc. PRIORITY valor
Donde las palabras clave se muestran en negrita y rule_id es una etiqueta ID asignada a la regla, condition_n es una cláusula de condición, action_n es una cláusula de acción y value es un valor de prioridad (por ejemplo, un número del 1 al 5).
Cada cláusula de regla debe comenzar con una de las palabras clave en negrita mostradas anteriormente y sólo se permite una cláusula por línea.
Sólo las partes RULE, IF y THEN de una regla son necesarias; las partes ELSE y PRIORITY son opcionales.
Se permiten líneas en blanco entre cláusulas y cualquier texto a la derecha de un punto y coma se considera un comentario.
Cuando se mezclan cláusulas AND y OR, el operador OR tiene prioridad sobre AND, es decir
IF A OR B AND C
es equivalente a:
IF (A OR B) IF C
Si la interpretación debe ser:
SI A O (B Y C)
Así que esto se puede expresar utilizando dos reglas como en:
RULE A1 IF A THEN ... RULE A2 IF B Y C THEN ...
El valor de PRIORIDAD se utiliza para determinar qué regla se aplica cuando dos o más reglas requieren que se realicen acciones conflictivas en un enlace. Una regla en conflicto con un valor de prioridad superior tiene prioridad sobre otra con un valor inferior (por ejemplo, PRIORIDAD 5 supera a PRIORIDAD 1). Una regla sin valor de prioridad siempre tiene menor prioridad que otra con valor. Para dos reglas con el mismo valor de prioridad, la regla que aparece primero recibe la prioridad más alta.
Algunas observaciones sobre el editor de cláusulas SOLIDOS:
RULE R01 IF NODE SU1 DEPTH > NODE KRO3001 DEPTH
Véase también: Normas de control SWMM