Here you have all the specifications for pipe’s properties and how to modify them both in GIS editors and EPANET. Check this table to see all accepted aliases for each property.
Qatium will process that information by running some validation checks and we’ll try to fill any gaps.
Status
Data you add to your files
GIS files
Field | Status |
---|---|
Attribute |
Open Closed CV |
EPANET
Property | Initial Status |
---|---|
Value |
Open Closed CV |
How Qatium processes that data
If there's no data or it doesn't pass the validation stage, Qatium will apply a default value: Open.
Laterals
Data you add to your files
GIS files
Field | Group |
---|---|
Attribute | lateral |
💡 Tip from Q:
Download the GIS file example for a demo of the data to include.
EPANET
Property | Description |
---|---|
Value | lateral |
You can also specify laterals directly in the .inp file using a text editor. Edit the file including the group in the description or in the extra properties column that appears on fifth position. For example: DI_20220706_1.2_12.5_lateral;aDescription
How Qatium processes that data
If there's no data or it doesn't pass the validation stage, Qatium will apply a default value: Main.
⚠️ Important: Unless you define them as junctions or hydrants, Qatium automatically classifies all the junctions at the end of Laterals as Customer points even though they don’t have demand data.
Material
Data you add to your files
GIS files
Field | Material |
---|---|
Attribute | Material name |
EPANET
Property | Description |
---|---|
Value |
[Material]_[other information] Example: DI_20220706 |
How Qatium processes that data
If not specified, Qatium will ignore it.
Installation date
Data you add to your files
GIS files
Field | Installation date |
---|---|
Attribute | YYYYMMDD |
EPANET
Property | Description |
---|---|
Value |
YYYYMMDD Example: DI_20220706 |
How Qatium processes that data
If not specified, Qatium will ignore it.
Length
Data you add to your files
GIS files
Field | Length |
---|---|
Attribute | <number> |
EPANET
Property | Length |
---|---|
Value | <number> |
How Qatium processes that data
If there's no data or doesn't pass the validation stage, Qatium will apply default values. Here, the default value for length will be calculated from the pipe geometry.
Qatium uses the turf.js library to do so, without taking into account the elevation of each vertex. The length is rounded to 2 decimal places for both systems of units
Diameter
Data you add to your files
GIS files
Field | Diameter |
---|---|
Attribute | <number> |
EPANET
Property | Diameter |
---|---|
Value | <number> |
How Qatium processes that data
If there's no data or doesn't pass the validation stage, Qatium will apply a default value:
SI units | US units |
---|---|
50 mm | 2 in |
Roughness & headloss equation
Data you add to your files
GIS files
Field | Roughness |
---|---|
Attribute | <number> |
EPANET
Property | Roughness |
---|---|
Value | <number> |
How Qatium processes that data
The equation (H-W, D-W or C-M) is inferred from roughness values (if available). If not, we’ll apply the default value: Hazen-Williams (H-W), roughness = 148.
Qatium can also infer roughness from Material and Installation date, if available.
Roughness based on material
If the installation date can’t be found, Qatium will infer the roughness based on material only.
Material | HW | CM | DW |
---|---|---|---|
AC: Asbestos Cement | 140 | 0.011 | 0.10000 |
ARO: Abrasion Resistant Outerwrap | 148 | 0.0148 | 0.14800 |
CI: Cast Iron | 130 | 0.012 | 0.80000 |
COPP: Cooper | 130 | 0.011 | 0.10000 |
CWOSMJ: Concrete Without Sheet Metal Jacket | 140 | 0.011 | 0.18 |
CWSMJ: Concrete With Sheet Metal Jacket | 135 | 0.013 | 0.36000 |
DI: Ductile Iron | 130 | 0.012 | 0.30000 |
DIL: Lined Ductile Iron | 130 | 0.0148 | 0.25000 |
FE: Iron | 148 | 0.0148 | 0.14800 |
GI: Galvanized Iron | 120 | 0.016 | 0.15000 |
GIL: Lined Galvanized Iron | 120 | 0.0148 | 0.15000 |
HDPE: High Density Polyethylene | 150 | 0.009 | 0.01000 |
L: Lead | 140 | 0.011 | 0.01000 |
LDPE: Low Density Polyethylene | 150 | 0.009 | 0.01000 |
MDPE: Medium Density Polyethylene | 150 | 0.009 | 0.01000 |
NA: Not available | 150 | 0.0148 | 0.14800 |
PC: Prestressed Concrete | 150 | 0.011 | 0.18000 |
PE: Polyethylene | 150 | 0.009 | 0.01000 |
PE80: Polyethylene 80 | 150 | 0.009 | 0.01000 |
PE100: Polyethylene 100 | 150 | 0.009 | 0.01000 |
PVC: Polyvinyl Chloride | 150 | 0.009 | 0.05000 |
PVCO: Orientated PVC | 150 | 0.0148 | 0.05000 |
RC: Reinforced Concrete | 140 | 0.0148 | 0.18 |
S: Steel | 150 | 0.0148 | 0.10000 |
SI: Spun Iron | 150 | 0.0148 | 0.60000 |
SS: Stainless Steel | 150 | 0.011 | 0.14800 |
UNK: Unknown | 148 | 0.0148 | 0.14800 |
UPVC: Unplasticized PVC | 150 | 0.009 | 0.05000 |
Roughness based on installation date
The value calculated from the material will then be amended based on the pipe’s age, i.e. the number of years since its installation date.
Depending on the head loss formula applied, this is how this works:
H-W |
InferredRoughness = Roughness(material)*(1-Age/180) Value range: [50 ;+∞] |
D-W |
InferredRoughness = Roughness(material)/(1-Age/180) Value range: [0.05 ; 50] |
C-M |
InferredRoughness = Roughness(material)/(1-Age/180) Value range: [0 ; 0.05] |
What if the resulting roughness value is out of range?
Qatium would use the value of the range limit for the corresponding headloss formula.
E.g. For H-W, if the value calculated is 40, the inferred value would be 50.
Minor loss
Data you add to your files
GIS files
Field | Loss coefficient |
---|---|
Attribute | <number> |
EPANET
Property | Loss coefficient |
---|---|
Value | <number> |
How Qatium processes that data
If there's no data or it doesn't pass the validation stage, Qatium will apply a default value: 0.
Flow & velocities
Flow and velocity are calculated through the simulation with all the data available and you’ll see it in the pipe’s information when hovering over or clicking on it.

If you want to add historical data or readings to provide actual flow and velocity, read these articles.
Controls
In Qatium, you can set up controls for your network elements — such as pipes, valves, and pumps —. These controls can help you automate operations like opening or closing a valve at a specific time or adjusting a pump’s settings.
Types of controls
Simple controls
Simple controls are straightforward commands, like "Open this valve at 3:00 PM" or "Close this pipe when the tank is full."
Rule-based controls
Rule-based controls let you create a set of conditions—like "If the pressure drops below a certain level, turn on the pump." These are helpful for automating complex scenarios and responding to real-time changes in the network.
How to set up controls in Qatium
- From a .inp file or a text file (.txt)
You can import EPANET controls — both simple and rule-based — directly uploading a .inp file or a text file (.txt) to your network in Qatium.
⚠️ Important: Qatium can detect Simple Controls and Rule Based Controls even if you don’t specify the [CONTROLS] and [RULES] headers in the .txt file format.
- From GIS files
Qatium supports simple controls as defined in EPANET. You can also add your controls in a field labeled control or controls.
You can use a simplified format to define controls. Just specify the element type, its ID, and its settings. For example: Pipe 1: OPEN AT TIME 3
This means Pipe 1 will be open at 3.
If you apply controls to multiple elements within one asset, those controls will affect all of them. For example: Pipe 1 properties: Pipe 1 OPEN AT TIME 3, Valve 2 CLOSED AT TIME 2, Valve 2 OPEN AT TIME 3
Here, the instructions for Valve 2 will still apply even though they’re listed under Pipe 1 properties.
You can separate control instructions using tabs, commas, semicolons, or line breaks — whatever works best for your data organization.
How Qatium processes your data
When combining controls from different sources, Qatium applies them in this order:
- Controls from the .inp file
- Controls from the .txt file
- Controls defined in asset properties (GIS)
If any control isn’t valid, it won’t break your model. Instead, Qatium will skip it and include it as a comment in the output file.
⚠️ Important: Qatium performs basic checks (like syntax and valid IDs) but doesn’t flag duplicate or conflicting controls. If controls overlap, the last one listed will take effect in the simulation.
Connecting pipes at T-junctions
If one end of the pipe (not connected to another) spatially coincides with another pipe, the latter is split and a junction is added at the intersection.
The two resulting pipes inherit the properties of the original split pipe; only the length of each section is recalculated (proportionally to the original one).
In this case, a tolerance of 0.1 m is used and the ends of the new pipes are extended to the end of the pipe that generates the split. Normally, these extensions are not noticeable on the map.
Thresholds
Configure warnings by setting minimum and maximum thresholds for your assets. We'll let you know you if data falls below or above these limits.
To set thresholds, upload a .CSV file including the following columns:
Column label | Asset | Property | Min | Max | Unit |
Type of data | <string> | <string> | <number> | <number> | <string> |
- Asset: the asset ID.
- Property: could be flow, pressure, or level, for example.
- Min: the threshold minimum value.
- Max: the threshold maximum value.
- Unit: of the property.
For example:
asset,property,min,max,unit
J_00028,pressure,10,60,kPa
J_00029,pressure,10,60,kPa
Make sure the units for the threshold values match the units of the variable we're setting the warnings to:
- Pipe flow = flow unit
- Tank level = level unit
- Junction pressure = pressure unit
How Qatium processes that data
If not specified, Qatium will ignore it and you won’t receive any warnings.