Visual SWMM

From 1999 – Stormwater and Wastewater Modeling with Visual Hydro/Visual SWMM

Stormwater and Wastewater Modeling with Visual Hydro/Visual SWMM

Storm Water Management Pond Example with Manhole Flooding, Overland Flow Routing, Pond Evaporation, Pond Losses and Conduit Design.



Visual Hydro/Visual SWMM can comprehensively model storm water management systems that include mixtures of open channel and closed conduits. It can also model closed sanitary or wastewater systems. The hydraulic calculations in SWMM support looped networks, storage nodes such as ponds, backwater and multiple outfalls. This tutorial contains all of these components and introduces some advanced options for modeling pond losses and handling flooding in a stormwater network.

Skills to be learned

Loading and Manipulating Background Files

Digitizing Network Objects on Scaled Backgrounds

Renaming Network Objects

Layer Control and Object Association

Entering Data in Dialogs and Using Copy and Paste

Importing XY Coordinates

Exporting Data to XPX File

Trouble Shooting Error Messages and Running the Model

Interpreting Flooding Using Review Results, Long Section and the Output File

Attaching Images and Notes to Nodes

Adding and Removing the Vertices on a Poly-Link

Modeling Pond Losses with Equations

Screening the Model with Spatial Reports and Graphical Encoding

Designing Single or Entire Set of Conduits in Hydraulics Layer

Duplicating Global Databases for Design Rainfall

Files Needed



Loading the Background

The load background command is located at Special=>Get Background in the Visual SWMM interface.

Use the File GIRA.PIC, a converted HPGL file and load it to the real world coordinates shown below. At first you will not see any background picture, but fit the graphics to the screen with the command View=>Fit Window or use the Fit to Window Icon. The picture will be in the center of the screen.

The following tool strip is used to manipulate backgrounds. Holding the mouse over the icon will display a bubble of the icon’s purpose and a detailed description of the command is displayed in the lower left hand corner of the screen.

Digitizing Network Objects on Scaled Backgrounds

Digitize using the XP Object Toolstrip Icons the links and nodes in the network as shown below. New objects will be labeled successively from 1. We will rename the objects at a later time. The orientation of the links is important and the arrow on a link marks US to DS. Do not create the objects loss, exfiltration or swale, as they will be added later. Try to place objects close to the locations shown below. Later we will import a coordinate file to fix the locations.

Renaming Network Objects

Objects can be renamed in three ways. Use the names as shown on the previous page.

Method 1

Highlight the node or link and then use the command Edit=>Attributes. This will display a different dialog for a node or a link that displays a field for entering the object name. Then double-click with the mouse to overwrite the current cell contents and key in the new name. The field will accept up to 10 characters alpha numeric.

Method 2

Right mouse-click on the object, which will bring up a pop-up dialog allowing attributes to be selected. Node Link

Method 3

Select the object then double-click on the object’s label and a user entry field will appear where the object’s name can be edited. Follow the entry with an enter key and the new name will appear.

Try using all three methods for this tutorial. When they are all updated, save your work.

Layer Control

An object, a link or node has a common name in all layers of Visual SWMM. Using the + and icons on the Toolstrip the object can be activated for solving in the current layer.

Switch to the RUNOFF layer by selecting Rnf from the Toolstrip and add nodes MH2, MH4, MH6, MH8, MH3, MH1, and Detention to the RUNOFF layer by selecting these objects and then selecting the + icon. Objects can be added or removed to a selection set by holding down the shift key and selecting with a left mouse click.

Interface Files

Flows and pollutant concentrations can be stored on binary interface files which are created from a model solve. Each of the layers can read certain types of interface files with the most common set up using rainfall interface files into Runoff, Runoff saving the flows for all active nodes and Hydraulics reading the existing Runoff layer interface file. Interface files are designated using the command Tools=>Interface Files while in each appropriate layer.

Interface file names and object selections along with inappropriate dates are the most common user errors. If flows are generated in Runoff but they do not appear in the Extran layer then check dates, file names and make sure that no conduits are active in more than one layer.

Entering Data in Dialogs

The most straightforward method of data entry in VISUAL SWMM is to enter data to the objects through dialogs. To access these dialogs double-click with the left mouse button on the object. An alternative and much more cumbersome method to access the dialogs is to select the object and then use the command Edit=>Data. These first level dialogs contain the most common data for links and nodes. Other data is entered in dialogs spawned by selecting buttons on these dialogs and some data such as rainfall is entered in a global database. Details of the global database will be dealt with later. The first dialogs of the node and link are shown below. The node dialog is layer dependent and shows different data depending on the active layer. Note that the object name is displayed in the dialog title bar.

To enter data in the dialog click with the mouse on the field and begin typing. To navigate to another field click or choose the tab key. Selecting OK causes an embedded expert system to check the data. If the data is not valid or unreasonable an error message or warning will be displayed. Selecting OK also closes the dialog and commits the data to the database. Cancel will ignore any changes that have been made and will not invoke the data checking.

The data to be entered in this project is outlined in the Tables are on the next page.

Subcatchment Physical Data (Runoff Nodes)

Node Name Subcatchment


Area, ha


%Impervious (R_WIMP) Width, m


Slope, m/m


MH 1 1 1.08 16 105 0.015
MH 2 1 0.473 16 65 0.015
MH 2 2 0.283 20 50 0.02
MH 3 1 0.435 24 120 0.015
MH 4 1 0.23 31 45 0.012
MH 6 1 0.235 16 55 0.005
MH 8 1 0.65 20 95 0.016
detention 1 2 30 100 0.005

Manhole Data (Hydraulics Nodes)

Node Name Spill Crest (GRELEV) Invert (Z)
MH 1 410.5 407
MH 2 413 410
MH 3 409 406.2
MH 4 411 408
MH 6 409 406
MH 8 406 403.5
detention 400 397
outfall 396 390

Conduit Data

Conduit Name Shape


Length, m




Conduit US

Invert, m


Conduit DS

Invert, m


Diameter or Depth, m


Pipe A1 Circular (1) 112.00 0.014 407.00 406.20 0.300
Pipe A2 Circular (1) 112.00 0.014 410.00 408.00 0.300
Pipe A3 Circular (1) 70.00 0.014 406.20 406.00 0.300
Pipe A4 Circular (1) 76.00 0.014 408.00 406.00 0.300
Pipe A6 Circular (1) 134.00 0.014 406.00 403.50 0.400
Pipe A8 Circular (1) 57.00 0.014 403.50 399.00 0.400
Control orifice - - - - 0.060

Note: Pipe Slopes are not required data in the Extran layer. Any Value in that field will be ignored, however the expert system will notify with warnings if the data for slope does not match the inverts and length. Simply select the Solve routine in the conduit profile dialog to have the software calculate the slope for you.

This would be a good point to save your work.
Orifice Data

The orifice is circulat side outlet orifice at an elevation of 399 and an area of 0.1 m2.

Infiltration Data in the Global Database

The Global Database for a new project is empty since this information is internal to the XP file. The information can be entered into the Global Database by Selecting the command Tools=>Global Data. Select the Database Type as Infiltration on the left side of the dialog. Then add the record soil and select enter the data as shown below.

Rainfall Data in the Global Database

Select the Database Type as

Rainfall and add the record SCS Type II as shown below: Copy Icon

By using cumulative depth as the rainfall type then the hyetograph is easily scaled for depth and duration by using the multiplier and time controls. These screen shots show a 35mm depth over 6 hours, our hypothetical 2-yr return period. Not shown is the final value of 1.000 that would be entered by using the down arrow with the cursor in the sixth row.

With this record entered it can be duplicated and new multipliers entered that will represent the depth for a greater return period.

After the global databases have been entered go to the Subcatchment 1 of MH 1 and select the SCS Type II for the rainfall and Soil for the Infiltration records to be attached to this subcatchment. Then select the SCS Type II labeled button with the mouse and choose the Copy icon in the upper right hand corner of the dialog.

With this record now copied the rainfall can be attached to all nodes by returning to the network window and selecting the command Edit=>Paste Data. This pastes the “reference” to the global database record to all nodes for subcatchment 1. Since Node MH 2 has two subcatchments the fields will have to be updated by selecting. Of course if many nodes had 2nd subcatchments then we could copy and paste that field.

This process needs to be repeated for the infiltration record “soil” that must be attached for all node subcatchments.

Additional Data for Outfalls and Storage Data

The “outfall” node should have the outfall button checked and free outfall selected (Type 1) using as the control the minimum of Yc or Yn.

The node “detention” has storage properties as shown below using Stepwise Linear, and a Node Surcharge Elevation of 400 m. The depth field is the depth to the node invert and the are is in units of hectares.

Job Control (Simulation Limits and Criteria)

Separate Job Control data is required for Runoff Layer and the Hydraulics Layer. This data sets the simulation start and simulation end as well as time step.

Buttons without check boxes are mandatory, so in reference to the Runoff layer the Evaporation, Time Control, and Print Control data is required and is shown below.

For the Hydraulics Layer, simply select the same time period and choose an appropriate time step. In this simulation we will use 15 seconds. All other data is optional and should be used with discretion.

The last item to select to make our model run is the Mode Properties. This dialog directs the program to which layers (modes) should be solved. We will choose as solve mode Runoff and Hydraulics by selecting the command Tools=>Mode Properties.

Importing XY Coordinates for the Nodes using XPX

Although the nodes were digitized on the screen and coordinates were assigned they are only as accurate as the screen placement. However, the node coordinates are able to be stored with double precision.

Select the command Special=>Import Data:XPX and choose the file coord1.xpx. The contents of this file is shown below. Select the Import Button to perform the command, whereas the OK button stores the changes made in this dialog.


NODE 134 "MH 2" 208107 611922

NODE 134 "MH 4" 208165 612018

NODE 134 "MH 6" 208225 611971

NODE 134 "MH 8" 208155 611857

NODE 133 "detention" 208161 611797

NODE 134 "MH 1" 208268 611828

NODE 134 "MH 3" 208287 611938

NODE 134 "outfall" 208220 611794

NODE 134 "exfiltration" 208160 611767

NODE 134 "emergency" 208082 611868

This node command creates or updates a node nominated in quotes to the x and y coordinates specified. We are using it to precisely place the nodes at the “known” GPS coordinates.

Exporting the Data to an XPX File

Similar to importing XPX files the data entered can be exported to a text file. To export all the data or a selection of data choose the command Special=>Export Data to see the following dialog:

The Select Button allows the user to pick a list of data to export.

The XPX file generated can include data and results. A partial list is shown below including some results.

NODE 134 "MH 2" 208107 611921

NODE 134 "MH 4" 208165 612018

NODE 134 "MH 6" 208225 611971

NODE 134 "MH 8" 208155 611857

NODE 133 "detention" 208161 611797

NODE 134 "MH 1" 208268 611828

NODE 134 "MH 3" 208287 611938

NODE 134 "outfall" 208220 611794

NODE 134 "exfiltration" 208160 611767

NODE 134 "emergency" 208082 611868

LINK 136 "Pipe A2" "MH 2" "MH 4"

LINK 136 "Pipe A4" "MH 4" "MH 6"

LINK 136 "Pipe A6" "MH 6" "MH 8"

LINK 136 "Pipe A8" "MH 8" "detention"

LINK 136 "Pipe A1" "MH 1" "MH 3"

LINK 136 "Pipe A3" "MH 3" "MH 6"

LINK 138 "control" "detention" "outfall"

LINK 138 "loss" "detention" "exfiltration"

LINK 136 "swale" "MH 3" "detention"

LINK 136 "spillway" "detention" "emergency"



DATA R_RFCMNT "MH 2" 0 5 1 1 0 0 0

DATA R_WAREA "MH 2" 0 5 .473 .283 "" "" ""

DATA R_WIMP "MH 2" 0 5 16. 20. "" "" ""

DATA R_WIDTH "MH 2" 0 5 65. 50. "" "" ""

DATA R_WSLOPE "MH 2" 0 5 0.015 0.02 "" "" ""

DATA R_WQTAG "MH 2" 0 1 1

DATA R_WQTAG "MH 2" 1 1 1

DATA R_SMTAG "MH 2" 0 1 0

DATA R_SMTAG "MH 2" 1 1 0

DATA R_GWTAG "MH 2" 0 1 0

DATA R_GWTAG "MH 2" 1 1 0

DATA R_GWFLAG "MH 2" 0 1 0

DATA R_GWFLAG "MH 2" 1 1 0



DATA R_INFILSEL "MH 2" 0 1 "soil"

DATA R_INFILSEL "MH 2" 1 1 "soil"

DATA R_FSCS "MH 2" 0 1 0

DATA R_FSCS "MH 2" 1 1 0

DATA R_ERLEN "MH 2" 0 1 0.0

DATA R_ERLEN "MH 2" 1 1 0.0

DATA R_ERTAG "MH 2" 0 1 0

DATA R_ERTAG "MH 2" 1 1 0

DATA T_NTYPE "MH 2" 0 1 19


DATA T_FOUTS "MH 2" 0 1 1

DATA T_FSEWIN "MH 2" 0 1 0

DATA T_NYN "MH 2" 0 1 0

DATA T_NPE "MH 2" 0 1 0

DATA T_QCON "MH 2" 0 1 .01

DATA T_FUDEF "MH 2" 0 1 1

DATA T_FCHCGO "MH 2" 0 1 0

DATA T_FCON "MH 2" 0 1 1

DATA GRELEV "MH 2" 0 1 413.

DATA Z "MH 2" 0 1 410.

DATA QINST "MH 2" 0 1 0.

DATA Y0 "MH 2" 0 1 0.

DATA NODST "MH 2" 0 1 0


DATA SFLOOD "MH 2" 0 1 0

DATA INQ "MH 2" 0 1 0

DATA JPRT "MH 2" 0 1 0

DATA JPLT "MH 2" 0 1 0

DATA JNRR "MH 2" 0 1 0

DATA ICAP "MH 2" 0 1 0


DATA R_RSRFRUN "MH 2" 0 1 21.0889537

DATA R_RRAINFL "MH 2" 0 1 35

DATA R_RINFILT "MH 2" 0 1 15.0984068




DATA R_RTLLOAD "MH 2" 0 2 0 .022521466

DATA R_RMNCONC "MH 2" 0 2 0 0

DATA R_RMXCONC "MH 2" 0 2 0 4.19094411

DATA R_RTBULDP "MH 2" 0 2 0 0

DATA R_RTWASHF "MH 2" 0 2 0 .637357500

DATA R_RPWASHF "MH 2" 0 2 0 0

DATA R_RMAXFLO "MH 2" 0 1 .140501867

DATA R_RRUNVOL "MH 2" 0 1 21.0889537

DATA R_RMXIFRT "MH 2" 0 1 5.59166453

DATA R_RMNINRT "MH 2" 0 1 1.58999786


DATA R_REVAPSF "MH 2" 0 1 .011750122







DATA E_RSRFDTH "MH 2" 0 1 .837030255

DATA E_RSRFELV "MH 2" 0 1 410.837030

DATA E_RSRFARE "MH 2" 0 1 1.22

DATA E_RVOLUME "MH 2" 0 1 1.13143736

DATA E_REGLELV "MH 2" 0 1 410.837030

DATA E_REGLREL "MH 2" 0 1 2.16296974

DATA E_RFREEBD "MH 2" 0 1 2.16296974

DATA E_RMNDITR "MH 2" 0 1 2.91956967

DATA E_RNSURCH "MH 2" 0 1 2.75

DATA E_RCONTER "MH 2" 0 1 .204390568

DATA E_RFLDLSS "MH 2" 0 1 1.4485E-19

DATA E_RTNDITR "MH 2" 0 1 5699

DATA E_RNDINFL "MH 2" 0 1 156.229842

Trouble Shooting Error Messages and Running the Model

To solve a model the user must select the command Special=>Solve or select the Solve Icon (Space Shuttle) from the toolstrip. Before the Solve commences the entire database is checked for errors. These checks go beyond the checking performed when a dialog is closed with the OK button and ensure that no data is missing and that all of the dependencies are satisfied. For example all conduit inverts are checked against the invert elevations of the connecting nodes to ensure they are equal or higher.

Any errors are warnings are displayed in the user specified editor. This editor is selected in the SWMXP.INI file and by default is NOTEPAD.EXE. A shareware version of notepad plus is installed in the vhydro directory and allows multiple and large files to be edited.

The error and warning messages are comprehensive and tell the user which layer, which objects and an explanation of the problem. Since one error can cascade to create many problems work your way from the first to the last error by periodically rechecking the model by selecting solve. The errors can be redisplayed by selecting the command Special=>Show Errors or by minimizing the error screen and switching to that window.

Interpreting Flooding Using Review Results, Long Section and Output File

Each of these tools can be used to determine if flooding occurs, when and in the case of the output file the quantity. Selecting MH 3 and then the Tools=>Review Results command will show the HGL over time and that the HGL will reach the Ground Surface and remain at that level for some time.

Capabilities of interest in this function include: changing titles, zooming in the graph, marking data points, including labels, exporting graphics, and exporting data. Double clicking in the graph, right mouse clicking on the graph and selecting the options icon on the Toolstrip, accesses these commands.

The Tools=>Long Section command will animate the HGL within a selection of links. Select a continuous set of links (branching not allowed) and choose the Tools=>Long Section command or the Long Section Icon from the Toolstrip. Plotting elements other than conduits requires a length to be assigned for items such as orifices, weirs and pumps. Choose the Plot button in the multi-link dialog to plot through these objects.

The Long Section command allows animation to play, stop, pause, move backward and forward step by step, rewind, speed up, slow down, zoom, pan, and various annotation. In this model we see the HGL at MH 3 is at the ground so flooding is occurring.

Using the command Special=>Browse File or clicking on the Notepad icon will allow the user to select the output file created from the Solve. The output file is the most comprehensive simulation report and it contains summaries and tables for the entire simulation. The Tables are numbered and a list of tables appears near the top of the output file. Table E20 lists flooding and surcharge results for each node. A sample is shown below:

Out of

System Stored in System

Junction Surcharged Flooded Flooded Maximum Ponding Allowed

Name Time (min) Time(min) Volume Volume Flood Pond Volume

Leave a Reply