Skip to content

Rule-Based Control Functions

These functions are used for working with rule-based controls.

Function Description
addRule Adds a new rule-based control to a project.
deleteRule Deletes an existing rule-based control.
getRule Retrieves summary information about a rule-based control.
getRuleId Gets the ID name of a rule-based control given its index.
getPremise Gets the properties of a premise in a rule-based control.
setPremise Sets the properties of a premise in a rule-based control.
setPremiseIndex Sets the index of an object in a premise of a rule-based control.
setPremiseStatus Sets the status being compared to in a premise of a rule-based control.
setPremiseValue Sets the value in a premise of a rule-based control.
getThenAction Gets the properties of a THEN action in a rule-based control.
setThenAction Sets the properties of a THEN action in a rule-based control.
getElseAction Gets the properties of an ELSE action in a rule-based control.
setElseAction Sets the properties of an ELSE action in a rule-based control.
setRulePriority Sets the priority of a rule-based control.

addRule

Adds a new rule-based control to a project.

addRule(rule: string): void;

Parameters

Parameter Type Description
rule rule text of the rule following the format used in an EPANET input file.

Consult the [RULES] section of the Input File topic to learn about a rule's format. Each clause of the rule must end with a newline character \n.


deleteRule

Deletes an existing rule-based control.

deleteRule(index: number): void;

Parameters

Parameter Type Description
index number the index of the rule to be deleted (starting from 1).

getRule

Retrieves summary information about a rule-based control.

getRule(index: number): {
premiseCount: number;
thenActionCount: number;
elseActionCount: number;
priority: number;
};

Parameters

Parameter Type Description
index number the rule's index (starting from 1).

Returns

Object

{
  premiseCount: number;
  thenActionCount: number;
  elseActionCount: number;
  priority: number;
}
Property Type Description
premiseCount number number of premises in the rule's IF section.
thenActionCount number number of actions in the rule's THEN section.
elseActionCount number number of actions in the rule's ELSE section.
priority number the rule's priority value.

getRuleId

Gets the ID name of a rule-based control given its index.

getRuleId(index: number): string;

Parameters

Parameter Type Description
index number the rule's index (starting from 1).

Returns

string the rule's ID name.


getPremise

Gets the properties of a premise in a rule-based control.

getPremise(ruleIndex: number, premiseIndex: number): {
logop: number;
object: RuleObject;
objIndex: number;
variable: RuleVariable;
relop: RuleOperator;
status: RuleStatus;
value: number;
};

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
premiseIndex number the position of the premise in the rule's list of premises (starting from 1).

Returns

Object

{
  logop: number;
  object: RuleObject;
  objIndex: number;
  variable: RuleVariable;
  relop: RuleOperator;
  status: RuleStatus;
  value: number;
}
Property Type Description
logop number the premise's logical operator ( IF = 1, AND = 2, OR = 3 ).
object RuleObject the type of object the premise refers to (see RuleObject).
objIndex number the index of the object (e.g. the index of a tank).
variable RuleVariable the object's variable being compared (see RuleVariable).
relop RuleOperator the premise's comparison operator (see RuleOperator).
status RuleStatus the status that the object's status is compared to (see RuleStatus).
value number the value that the object's variable is compared to.

setPremise

Sets the properties of a premise in a rule-based control.

setPremise(ruleIndex: number, premiseIndex: number, logop: number, object: RuleObject, objIndex: number, variable: RuleVariable, relop: RuleOperator, status: RuleStatus, value: number): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
premiseIndex number the position of the premise in the rule's list of premises (starting from 1).
logop number the premise's logical operator ( IF = 1, AND = 2, OR = 3 ).
object RuleObject the type of object the premise refers to (see RuleObject).
objIndex number the index of the object (e.g. the index of a tank).
variable RuleVariable the object's variable being compared (see RuleVariable).
relop RuleOperator the premise's comparison operator (see RuleOperator).
status RuleStatus the status that the object's status is compared to (see RuleStatus).
value number the value that the object's variable is compared to.

setPremiseIndex

Sets the index of an object in a premise of a rule-based control.

setPremiseIndex(ruleIndex: number, premiseIndex: number, objIndex: number): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
premiseIndex number the premise's index (starting from 1).
objIndex number the index of the premise's object (e.g. the index of a tank).

setPremiseStatus

Sets the status being compared to in a premise of a rule-based control.

setPremiseStatus(ruleIndex: number, premiseIndex: number, status: RuleStatus): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
premiseIndex number the premise's index (starting from 1).
status RuleStatus the status that the premise's object status is compared to (see RuleStatus).

setPremiseValue

Sets the value in a premise of a rule-based control.

setPremiseValue(ruleIndex: number, premiseIndex: number, value: number): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
premiseIndex number the premise's index (starting from 1).
value number The value that the premise's variable is compared to.

getThenAction

Gets the properties of a THEN action in a rule-based control.

getThenAction(ruleIndex: number, actionIndex: number): {
linkIndex: number;
status: RuleStatus;
setting: number;
};

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
actionIndex number the index of the THEN action to retrieve (starting from 1).

Returns

Object

{
  linkIndex: number;
  status: RuleStatus;
  setting: number;
}
Property Type Description
linkIndex number the index of the link in the action (starting from 1).
status RuleStatus the status assigned to the link (see RuleStatus)
setting number the value assigned to the link's setting.

setThenAction

Sets the properties of a THEN action in a rule-based control.

setThenAction(ruleIndex: number, actionIndex: number, linkIndex: number, status: RuleStatus, setting: number): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
actionIndex number the index of the THEN action to modify (starting from 1).
linkIndex number the index of the link in the action.
status RuleStatus the new status assigned to the link (see RuleStatus).
setting number the new value assigned to the link's setting.

getElseAction

Sets the properties of an ELSE action in a rule-based control.

getElseAction(ruleIndex: number, actionIndex: number): {
linkIndex: number;
status: RuleStatus;
setting: number;
};

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
actionIndex number the index of the ELSE action to retrieve (starting from 1).

Returns

Object

{
  linkIndex: number;
  status: RuleStatus;
  setting: number;
}
Property Type Description
linkIndex number the index of the link in the action (starting from 1).
status RuleStatus the status assigned to the link (see RuleStatus)
setting number the value assigned to the link's setting.

setElseAction

Sets the properties of an ELSE action in a rule-based control.

setElseAction(ruleIndex: number, actionIndex: number, linkIndex: number, status: RuleStatus, setting: number): void;

Parameters

Parameter Type Description
ruleIndex number the rule's index (starting from 1).
actionIndex number the index of the ELSE action being modified (starting from 1).
linkIndex number the index of the link in the action (starting from 1).
status RuleStatus the status assigned to the link (see RuleStatus)
setting number the value assigned to the link's setting.

setRulePriority

Sets the priority of a rule-based control.

setRulePriority(index: number, priority: number): void;

Parameters

Parameter Type Description
index number the rule's index (starting from 1).
priority number the priority value assigned to the rule.