This example shows how a network can be built just through toolkit function calls, eliminating the need to always use an EPANET formatted input file. This creates opportunities to use other sources of network data in one's code, such as relational database files or GIS/CAD files.
Below is a schematic of the network to be built.
void netbuilder()
{
int index;
}
struct Project * EN_Project
The EPANET Project wrapper object.
Definition epanet2_2.h:49
int DLLEXPORT EN_addlink(EN_Project ph, const char *id, int linkType, const char *fromNode, const char *toNode, int *out_index)
Adds a new link to a project.
@ EN_RESERVOIR
Reservoir node.
Definition epanet2_enums.h:197
@ EN_JUNCTION
Junction node.
Definition epanet2_enums.h:196
@ EN_TANK
Storage tank node.
Definition epanet2_enums.h:198
@ EN_PUMP_HCURVE
Pump head v. flow curve index.
Definition epanet2_enums.h:97
@ EN_HW
Hazen-Williams.
Definition epanet2_enums.h:275
@ EN_PIPE
Pipe.
Definition epanet2_enums.h:207
@ EN_PUMP
Pump.
Definition epanet2_enums.h:208
@ EN_GPM
Gallons per minute.
Definition epanet2_enums.h:289
@ EN_ELEVATION
Elevation.
Definition epanet2_enums.h:37
int DLLEXPORT EN_setcurvevalue(EN_Project ph, int curveIndex, int pointIndex, double x, double y)
Sets the value of a single data point for a curve.
int DLLEXPORT EN_addcurve(EN_Project ph, const char *id)
Adds a new data curve to a project.
int DLLEXPORT EN_setlinkvalue(EN_Project ph, int index, int property, double value)
Sets a property value for a link.
int DLLEXPORT EN_setpipedata(EN_Project ph, int index, double length, double diam, double rough, double mloss)
Sets a group of properties for a pipe link.
int DLLEXPORT EN_setnodevalue(EN_Project ph, int index, int property, double value)
Sets a property value for a node.
int DLLEXPORT EN_addnode(EN_Project ph, const char *id, int nodeType, int *out_index)
Adds a new node to a project.
int DLLEXPORT EN_settankdata(EN_Project ph, int index, double elev, double initlvl, double minlvl, double maxlvl, double diam, double minvol, const char *volcurve)
Sets a group of properties for a tank node.
int DLLEXPORT EN_setjuncdata(EN_Project ph, int index, double elev, double dmnd, const char *dmndpat)
Sets a group of properties for a junction node.
int DLLEXPORT EN_saveinpfile(EN_Project ph, const char *filename)
Saves a project's data to an EPANET-formatted text file.
int DLLEXPORT EN_deleteproject(EN_Project ph)
Deletes a currently opened EPANET project.
int DLLEXPORT EN_createproject(EN_Project *ph)
Creates an EPANET project.
int DLLEXPORT EN_init(EN_Project ph, const char *rptFile, const char *outFile, int unitsType, int headLossType)
Initializes an EPANET project.