
Every water, wastewater, or stormwater engineering problem eventually comes down to the same question: what happens when water moves through this network of pipes? Before you can answer anything useful — will this pump deliver enough pressure, will this pipe overflow in a storm, will the new development overload the existing main — you need a model of the network itself. In Bentley OpenFlows (the WaterGEMS/WaterCAD/SewerGEMS/StormCAD family, depending on which network type you’re modeling), that model starts with two basic building blocks: nodes and pipes.
If you’ve never opened OpenFlows before, the software can look intimidating — dense ribbons, a map-like drawing canvas, dozens of properties per element. But the actual first project almost every beginner works through is small and mechanical: draw a handful of nodes, connect them with pipes, assign realistic properties, and run a basic steady-state analysis. This guide walks through that first project the way an instructor would talk you through it in a classroom at Orbit Training Centre’s Bentley OpenFlows course in Dubai, rather than the way a software manual would.
A node is any point in the network where something hydraulically significant happens — a junction where pipes meet, a reservoir or tank, a pump, a valve. A pipe is the link that carries flow between two nodes. That’s the entire mental model you need to start: junctions and tanks are nodes, pipes connect them.
In practice, the most common node type you’ll place in a beginner model is a junction — a point representing a demand (water being drawn out of the system, like a cluster of houses) or simply a point where the pipe direction changes. You’ll also place at least one reservoir or tank, which represents the source of water in the system — the point with a known, fixed hydraulic grade that everything else in the network is calculated relative to.
Every node and pipe you draw gets a label automatically. OpenFlows assigns sequential IDs (J-1, J-2, P-1, P-2, and so on) as you draw, which is worth knowing early — many beginners try to manually rename every element to something descriptive right away, which slows down the first project considerably. It’s better practice to build the basic network first, confirm it runs, and only then go back and apply a sensible labeling convention if the project calls for it.
Before placing any elements, most real projects start with a background — an aerial image, a GIS layer, or a CAD drawing of the site — imported so that the network you draw lines up with real geography. For a first practice project, this step can be skipped entirely; you can draw directly on a blank canvas and assign pipe lengths manually rather than relying on the drawing scale. This is actually the recommended way to learn the mechanics before adding the complexity of georeferenced data.
If you do want to practice with a real base map, the workflow is: import the background image or GIS shapefile, set the coordinate system so it matches your project area, and lock the scale. Only then start placing nodes, so that pipe lengths calculated automatically from node-to-node distance are realistic rather than arbitrary.
With the canvas ready, the actual drawing is almost embarrassingly simple compared to how complex the software feels at first glance. You select the Pipe tool, click to place your first node (OpenFlows will prompt you to choose a node type — start with a Reservoir to represent your water source), then click again to place a second node (a Junction), and the software automatically draws a pipe connecting them. Continue clicking to extend the network — each new click either places a new node and connects it with a pipe, or, if you click on an existing node, connects back into the existing network.
A realistic first practice network is nothing more than one reservoir, four or five junctions, and the pipes connecting them in a simple branched or looped layout. Resist the urge to build something elaborate on your first attempt — the goal is to understand the mechanics of placing elements and assigning properties, not to model a real town’s entire water system in your first sitting.
Once the network geometry exists, every element needs real engineering data before the model means anything:
Beginners most often get tripped up on two of these: elevation and roughness. Elevation is easy to forget because it doesn’t visually show up on the drawing canvas the way pipe length does, but it directly determines how much pressure is actually available at a junction once friction losses are subtracted. Roughness is easy to get wrong because it’s tempting to leave the software’s default value in place rather than selecting a value appropriate to the actual pipe material (new ductile iron behaves very differently from aged cast iron or PVC) — and that single number can shift your calculated pressures and flows substantially.
With elements placed and basic properties assigned, you’re ready to run the simplest type of analysis OpenFlows offers: a steady-state run, which calculates flows and pressures throughout the network for a single, fixed set of demand conditions — essentially a snapshot, as opposed to an extended-period simulation that models how the network behaves over a full day or longer as demands change.
Running the analysis itself is usually a single button click once the model is complete and validated. What matters more for a beginner is what happens if it fails to run at all: OpenFlows will usually report a validation error rather than a calculation error, meaning something in the model setup is incomplete or inconsistent — a pipe with no diameter assigned, a node that isn’t actually connected to anything, a junction with no elevation entered. Reading these validation messages carefully, rather than guessing at fixes, is one of the most useful early habits to build.
Once the analysis runs successfully, the software color-codes the network based on whatever result parameter you choose to display — pressure at each junction, flow velocity in each pipe, or headloss along each pipe are the three most commonly reviewed for a first project.
A few sanity checks worth running on every first model, regardless of how simple it is:
If any of these checks come back obviously wrong — negative pressure, flow moving backward into the reservoir, an absurdly high velocity — the most common root cause for a beginner’s first model is a data entry error rather than a conceptual mistake: a decimal point in the wrong place on a pipe diameter, an elevation entered in the wrong units, a demand value that’s orders of magnitude too high.
| Model Element | What You Must Define | Common Beginner Mistake |
|---|---|---|
| Reservoir | Hydraulic grade (water surface elevation) | Leaving it at a default value instead of the real source elevation |
| Junction | Ground elevation, demand | Forgetting elevation since it isn’t visible on the drawing canvas |
| Pipe | Length, diameter, roughness coefficient | Using the software’s default roughness instead of a value matching real pipe material |
| Analysis type | Steady-state vs. extended period | Jumping to extended-period simulation before a steady-state run is validated |
Beyond the data-entry issues covered above, a handful of conceptual mix-ups come up over and over again with genuinely new users, and it’s worth naming them explicitly rather than letting you discover them by trial and error.
Confusing a junction with a hydrant or a simple pipe bend. Early on, it’s tempting to place a node every time a pipe changes direction on the drawing, purely for visual tidiness. Functionally, this isn’t wrong — a node with zero demand simply passes flow straight through — but it does add clutter to your model and makes later edits more tedious. A better habit is to let pipes bend without a node unless there’s an actual hydraulic reason (a demand point, a junction with another pipe, a fitting) to place one.
Forgetting that a reservoir’s hydraulic grade is not the same as its physical elevation. For a simple tank or reservoir, the hydraulic grade you enter is effectively the water surface elevation, not the elevation of the tank’s base or the ground it sits on. Mixing these up is one of the single most common reasons a first model produces pressures that are wildly too high or too low everywhere downstream, since every other pressure calculation in the network is anchored to this one number.
Assuming the software will warn you about unrealistic results. OpenFlows will flag genuine data problems — disconnected elements, missing required fields — through validation errors. It will not, by itself, warn you that a calculated velocity of 15 feet per second in a pipe is physically unreasonable for a typical distribution main, or that a junction pressure of 200 psi is far outside a normal service range. The software calculates faithfully whatever you’ve told it to calculate; judging whether the result is realistic is still the engineer’s job, not the software’s.
Building the whole network before running a single analysis. It’s far more efficient, especially while learning, to build a small portion of the network, run the analysis, confirm it behaves sensibly, and only then extend it further — rather than drawing twenty nodes and pipes in one sitting and only then discovering a validation error buried somewhere in the middle of the network.
Once a steady-state model is running cleanly, many real projects need to go one step further: an extended period simulation (EPS), which models how the network behaves over a defined span of time — typically 24 hours, though it can be longer — rather than at a single fixed instant. This matters because real demand isn’t constant throughout the day; residential demand, for instance, typically peaks in the morning and evening and drops overnight, and a network that performs fine at an average demand level might still struggle during a short peak-hour window that a steady-state snapshot wouldn’t necessarily capture if you picked the wrong instant to model.
Setting up an EPS adds two layers of complexity beyond the steady-state basics covered above: demand patterns (a curve describing how each junction’s demand varies hour by hour across the simulation period) and, if your network includes a tank, defining its physical dimensions and operating rules so the software can calculate realistic filling and draining behavior over the simulated time period. Neither of these is especially difficult once the underlying node-and-pipe fundamentals are solid — which is exactly why building real confidence with the steady-state basics first, rather than rushing to EPS before the fundamentals are comfortable, pays off later.
Once a basic steady-state model runs cleanly, the natural next steps are: adding a pump if your network needs one to overcome elevation or pressure requirements, switching to an extended-period simulation to see how the network behaves over a full demand cycle, and eventually running fire-flow analysis if the project calls for checking the network’s ability to deliver emergency flows. Each of these builds directly on the node-and-pipe fundamentals covered here — nothing about them requires relearning the basic mechanics.
This is also the point where structured, instructor-led training pays off more than self-teaching from documentation alone. Working through a real project step by step with someone correcting small mistakes in real time — a wrong roughness value, a missed elevation, a validation error that looks cryptic the first time you see it — saves weeks of trial and error compared to debugging a model entirely alone.
No. You can build and run a complete basic network model without ever importing a background map or GIS layer — manually entering pipe lengths and node elevations is a completely valid way to learn the fundamentals. GIS integration becomes valuable once you’re working on real projects with existing infrastructure data, but it isn’t a prerequisite for understanding the hydraulic modeling itself.
They’re all part of the same OpenFlows product family and share the same core modeling engine and interface logic, but are tailored to different network types: WaterGEMS/WaterCAD for pressurized water distribution, SewerGEMS/CivilStorm for wastewater and combined sewer systems, and StormCAD for stormwater drainage. The fundamentals covered in this guide — nodes, links, steady-state analysis — transfer directly across all of them, with network-specific differences layered on top.
Most beginners can build and run a simple steady-state model within their first few hours of focused practice. Becoming comfortable enough to set up a realistic, moderately complex network independently — with proper elevation data, calibrated roughness values, and sensible demand allocation — typically takes several weeks of consistent practice, which is why structured courses build in multiple guided projects rather than a single exercise.
Validation errors from incomplete data — a pipe missing a diameter, a junction with no connection, an element left with a required field blank — are far more common for beginners than the model running but producing wrong results. Reading the specific validation message rather than guessing is the fastest way through this stage.
Steady-state analysis is genuinely useful on its own for many real engineering questions — checking peak-hour pressure adequacy, sizing a new pipe for a worst-case demand scenario, or doing a quick fire-flow check. Extended-period simulation becomes necessary when you need to understand how the system behaves over time — tank filling and draining cycles, pump scheduling, or diurnal demand variation — which steady-state analysis, by definition, cannot show you.


