SWMM - Regras de Controle - Formato das Regras


Cada regra de controle é uma série de declarações da forma:

RULE ID_da_regra
IF condição_1
AND condição_2
OR condição_3
AND condição_4
etc.
THEN ação_1
AND ação_2
etc.
ELSE ação_3
AND ação_4
etc.
PRIORITY valor

Onde palavras-chave são mostradas em negrito e ID_da_regra é um rótulo de ID atribuído à regra, condição_n é uma cláusula de condição, ação_n é uma cláusula de ação e value é um valor de prioridade (por exemplo, um número de 1 a 5).

Cada cláusula de regra deve começar com uma das palavras-chave em negrito mostradas acima e apenas uma cláusula por linha é permitida.

Somente as partes RULE, IF e THEN de uma regra são necessárias; as partes ELSE e PRIORITY são opcionais.

Linhas em branco entre cláusulas são permitidas e qualquer texto à direita de um ponto e vírgula é considerado um comentário.

Ao misturar cláusulas AND e OR, o operador OR tem precedência maior que AND, ou seja,

IF A OR B AND C

é equivalente a:

IF (A OR B) AND C

Se a interpretação devesse ser:

IF A OR (B AND C)

Então isso pode ser expresso usando duas regras como em:

RULE A1
IF A 
THEN...

RULE A2
IF B AND C 
THEN...

O valor PRIORITY é usado para determinar qual regra se aplica quando duas ou mais regras exigem que ações conflitantes sejam executadas em um link. Uma regra conflitante com um valor de prioridade mais alto tem precedência sobre outra com um valor mais baixo (por exemplo, PRIORIDADE 5 supera PRIORIDADE 1). Uma regra sem um valor de prioridade sempre tem uma prioridade mais baixa do que uma com um valor. Para duas regras com o mesmo valor de prioridade, a regra que aparece primeiro recebe a prioridade mais alta.

Algumas observações quanto ao editor de cláusulas do SOLIDOS:


Veja também: Regras Controles do SWMM