--- title: "How to apply logical rules to an abstraction unit" slug: "how-to-apply-logical-rules-to-an-abstraction-unit" description: "Learn how to apply logical rules to the abstraction units in your river network." updated: 2023-07-04T20:13:21Z published: 2023-07-04T20:13:21Z canonical: "help.floodmodeller.com/how-to-apply-logical-rules-to-an-abstraction-unit" stale: true --- > ## Documentation Index > Fetch the complete documentation index at: https://help.floodmodeller.com/llms.txt > Use this file to discover all available pages before exploring further. # How to apply logical rules to an abstraction unit Logical rules can be added to an abstraction unit to enable the extracted flow to be determined by specified situations. This could include specifying flow via the abstraction unit based on the flow at a given reference point, for instance. ![](https://cdn.document360.io/5074bc26-a9ef-4bf4-b1de-a5c6ce628aca/Images/Documentation/rules-abstraction.PNG) Note: This guide covers the minimum data required. Several optional settings are also available for logical rules, please see the [Rules](/v1/docs/rules) section of the technical reference for further details. ### Steps 1. Open the abstraction unit to which you are applying the rule(s) and navigate to the **Control Data** tab. 2. Use the drop-down to change the **Control Method** to **LOGICAL**. In the table provided, set the **Mode** to **AUTO** to use automatic mode from the start (time 0). When in automatic mode the unit will be driven by the rules you define. 3. Navigate to the **Rules** sub-tab to add your logical rules. Click **New Rule** and the **Rule editor** will open in a new window. The rule must be of the form: IF (xxx) THEN ABS = () END Where xxx is a logical statement that can be evaluated as true or false. An example is provided below. 4. Repeat step 3 as required. Following 1 or more of the IF rules, an ELSE condition can be optionally provided to cover all other eventualities: ELSE ABS = () END An ELSE rule must be located as the final rule in the list. Example usage: controlling the flow abstracted according to the flow at the gauge point A2. - Rule1 allows no abstraction when the flow at A2 is 100 m3/s or less - Rule2 ensures, if the flow at A2 is greater than 100 m3/s, the Abstraction unit extracts the excess over this amount RULE1 IF(FLOW(A2).LE.100.0) THEN ABS=0.0 END RULE2 ELSE ABS= FLOW(A2)-100.0 END 5. Click **OK** to save and close the unit. Don't forget to also **Save** these changes to the network. Note: Each rule can provide a maximum of one action to be applied to the unit (abstraction, in this case), however ALSO statements can be added to [define rules for global variables](/v1/docs/how-to-add-global-variables-within-logical-rules). You can also [apply logical rules to a sluice or gated weir](/v1/docs/how-to-apply-logical-rules-to-a-sluice-or-gated-weir) and [apply logical rules to a pump](/v1/docs/how-to-apply-logical-rules-to-a-pump).