Skip to content

Nodes

Read current node values through a Live View tied to the current project generation. Edit stable declarations through node.settings, using individual properties or the atomic settings.update(**changes) operation.

StorageSettings, OutfallSettings, and DividerSettings inherit common node settings. You can update common and subtype fields together, and the whole update succeeds or fails as one operation. Junctions use NodeSettings directly.

from swmmrs import Simulation
from swmmrs.objects import Outfall

with Simulation("model.inp", "model.rpt") as simulation:
    node = simulation.nodes["OUT-1"]
    if isinstance(node, Outfall):
        # Common and outfall-specific declarations form one atomic update.
        node.settings.update(
            invert_elevation=102.5,
            surcharge_depth=1.0,
            has_flap_gate=True,
        )

StorageShape, StorageExfiltration, OutfallBoundary, and DividerRule are frozen caller values. Their related curves and time series are Live Views, as are Outfall.settings.route_to_subcatchment and Divider.settings.diverted_link; public object indexes are not accepted. Storage shapes expose SWMM's canonical stored coefficients, which makes reads and writes round-trip without attempting to reconstruct geometry discarded by the parser.

from swmmrs import Simulation
from swmmrs.objects import (
    Divider,
    DividerRule,
    Outfall,
    OutfallBoundary,
    StorageNode,
    StorageShape,
)

with Simulation("model.inp", "model.rpt") as simulation:
    storage = simulation.nodes["STORAGE-1"]
    if isinstance(storage, StorageNode):
        storage.settings.shape = StorageShape("cylindrical", (6.5, 0.0, 0.0))

    outfall = simulation.nodes["OUT-1"]
    if isinstance(outfall, Outfall):
        outfall.settings.update(
            boundary=OutfallBoundary(
                "timeseries",
                reference=simulation.time_series["OUTFALL-STAGE"],
            ),
            route_to_subcatchment=simulation.subcatchments["S-1"],
        )

    divider = simulation.nodes["DIV-1"]
    if isinstance(divider, Divider):
        divider.settings.update(
            rule=DividerRule("tabular", curve=simulation.curves["DIVERSION"]),
            diverted_link=simulation.links["C-2"],
        )

The settings keep your complete requested declaration. Reads return the requested invert elevation, full depth, surcharge, ponding, and initial-depth values even while configuration is dirty or after a failed start().

The solver prepares the consequences separately: link crowns and slopes, storage volume and exfiltration geometry, outfall buffers, and divider flow limits. A successful start() installs those changes together. Runtime hydraulics, routed loads, and forcing retain their separate state.

from swmmrs import ConfigurationError, Simulation

with Simulation("model.inp", "model.rpt") as simulation:
    node = simulation.nodes["J-1"]
    # This relationally invalid candidate is retained for repair at start().
    node.settings.update(full_depth=4.5, initial_depth=6.0)
    assert node.settings.initial_depth == 6.0  # Requested value is visible now.

    try:
        simulation.start()  # Rebuild and validate dependent geometry atomically.
    except ConfigurationError as error:
        for diagnostic in error.diagnostics:
            print(diagnostic.property_path, diagnostic.message)
        node.settings.initial_depth = 0.25
        simulation.start()  # Retry without reopening the project.

Node identity, external inflow, fixed-stage runtime override, current quality, results, snapshots, and statistics remain top-level runtime capabilities and are not accepted by node.settings.update().

from swmmrs import Simulation
from swmmrs.objects import Outfall

with Simulation("model.inp", "model.rpt") as simulation:
    node = simulation.nodes["J-1"]
    node.external_inflow = 0.25

    outfall = simulation.nodes["OUT-1"]
    if isinstance(outfall, Outfall):
        outfall.fixed_stage = 101.5  # Runtime override, not a settings edit.

    simulation.start()
    while simulation.step() is not None:
        print(node.id, node.depth, node.total_inflow)

    hydraulics = simulation.nodes.snapshot(["J-1", "OUT-1"])
    statistics = simulation.nodes.statistics()

pollut_quality, inflow concentration, and reactor concentration are immutable current-result mappings. override_pollutant_concentrations({...}) atomically queues nonnegative concentrations for the next quality-routing step only. external_pollutant_mass_flux is instead a persistent live mutable mapping: item assignment and update() are sparse atomic mutations, deletion resets one configured pollutant to zero, and clear() resets all configured pollutants. Whole-property assignment is unsupported.

from swmmrs import Simulation

with Simulation("model.inp", "model.rpt") as simulation:
    node = simulation.nodes["J-1"]
    flux = node.external_pollutant_mass_flux
    flux["TSS"] = 2.5
    flux.update({"Lead": 0.10})
    del flux["Lead"]  # Reset just Lead to zero.

    simulation.start()
    node.override_pollutant_concentrations({"TSS": 100.0})
    simulation.step()  # The override is consumed by this quality-routing step.
    print(dict(node.pollut_quality))

    flux.clear()  # Atomically reset every configured pollutant to zero.

Typed, generation-bound views over configured SWMM project objects.

All view instances retain the simulation and project generation that created them. They validate that identity before accessing native state, so retained views cannot silently address a subsequently reopened project.

CLASS DESCRIPTION
NodeCollection

Provide node lookup and aligned hydraulic, quality, and statistics snapshots.

Node

Expose node identity, forcing, hydraulics, quality, and statistics.

NodeSettings

Expose stable common-node settings through one atomic owner.

Junction

Expose a generation-bound junction node.

Divider

Expose a generation-bound flow-divider node.

DividerSettings

Expose stable flow-divider settings and rule replacement.

DividerRule

Store one mutually exclusive divider rule in project units.

Outfall

Expose a generation-bound outfall node and its runtime capabilities.

OutfallSettings

Expose stable outfall settings and boundary replacement.

OutfallBoundary

Store one mutually exclusive outfall boundary declaration.

StorageNode

Expose a generation-bound storage node and its runtime capabilities.

StorageSettings

Expose stable storage-node settings and declarations.

StorageExfiltration

Store one storage Green-Ampt or seepage declaration in project units.

StorageShape

Store one round-trippable canonical storage surface declaration.

NodeCollection


              flowchart TD
              swmmrs.objects.NodeCollection[NodeCollection]
              swmmrs.objects._collections._Collection[_Collection]

                              swmmrs.objects._collections._Collection --> swmmrs.objects.NodeCollection
                


              click swmmrs.objects.NodeCollection href "" "swmmrs.objects.NodeCollection"
              click swmmrs.objects._collections._Collection href "" "swmmrs.objects._collections._Collection"
            

Provide node lookup and aligned hydraulic, quality, and statistics snapshots.

METHOD DESCRIPTION
__contains__

Return whether a case-insensitive object ID is configured.

__getitem__

Return a node view by case-insensitive configured ID.

__iter__

Return an iterator over object IDs in configured project order.

__len__

Return the number of configured objects in this collection.

by_index

Return a node view by its zero-based configured position.

quality_snapshot

Copy current node quality in canonical or requested order.

snapshot

Copy current node hydraulics in canonical or requested order.

statistics

Copy cumulative node statistics in canonical or requested order.

__contains__

__contains__(key: object) -> bool

Return whether a case-insensitive object ID is configured.

PARAMETER DESCRIPTION
key

Candidate object ID.

TYPE: object

RETURNS DESCRIPTION
bool

True when key identifies a configured object; otherwise False.

__getitem__

__getitem__(key: str | int) -> Node

Return a node view by case-insensitive configured ID.

__iter__

__iter__() -> Iterator[str]

Return an iterator over object IDs in configured project order.

__len__

__len__() -> int

Return the number of configured objects in this collection.

by_index

by_index(index: int) -> Node

Return a node view by its zero-based configured position.

quality_snapshot

quality_snapshot(ids: str | int | Iterable[str | int] | None = None) -> NodeQualitySnapshot

Copy current node quality in canonical or requested order.

snapshot

snapshot(ids: str | int | Iterable[str | int] | None = None) -> NodeSnapshot

Copy current node hydraulics in canonical or requested order.

statistics

statistics(ids: str | int | Iterable[str | int] | None = None) -> NodeStatisticsSnapshot

Copy cumulative node statistics in canonical or requested order.

Node


              flowchart TD
              swmmrs.objects.Node[Node]
              swmmrs.objects._base._LiveView[_LiveView]

                              swmmrs.objects._base._LiveView --> swmmrs.objects.Node
                


              click swmmrs.objects.Node href "" "swmmrs.objects.Node"
              click swmmrs.objects._base._LiveView href "" "swmmrs.objects._base._LiveView"
            

Expose node identity, forcing, hydraulics, quality, and statistics.

Notes

The concrete view is Junction, Outfall, StorageNode, or Divider according to the configured node kind.

METHOD DESCRIPTION
override_pollutant_concentrations

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

ATTRIBUTE DESCRIPTION
depth

Return current node depth in configured project length units.

TYPE: float

external_inflow

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

TYPE: float

external_pollutant_mass_flux

Return canonical persistent mass fluxes as a live mutable mapping.

TYPE: MutableMapping[str, float]

flooding

Return current node flooding in configured project flow units.

TYPE: float

head

Return current node head in configured project length units.

TYPE: float

inflow_pollutant_concentration

Return current inflow concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

kind

Return the configured node subtype.

TYPE: NodeKind

lateral_inflow

Return current total lateral inflow in configured project flow units.

TYPE: float

losses

Return current node losses in configured project flow units.

TYPE: float

pollut_quality

Return immutable current concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

reactor_pollutant_concentration

Return current reactor concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

settings

Return stable common-node settings.

TYPE: NodeSettings

statistics

Return immutable cumulative common-node statistics.

TYPE: NodeStatistics

total_inflow

Return current total node inflow in configured project flow units.

TYPE: float

total_inflow_volume

Return cumulative node inflow in configured project volume units.

TYPE: float

total_outflow

Return current total node outflow in configured project flow units.

TYPE: float

volume

Return current node volume in configured project volume units.

TYPE: float

depth property

depth: float

Return current node depth in configured project length units.

external_inflow property writable

external_inflow: float

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

external_pollutant_mass_flux property

external_pollutant_mass_flux: MutableMapping[str, float]

Return canonical persistent mass fluxes as a live mutable mapping.

Item assignment and update() are atomic sparse mutations. Deletion resets one configured pollutant to zero; clear() atomically resets every pollutant. Mutation lifecycle: OPEN, RUNNING, ENDED.

flooding property

flooding: float

Return current node flooding in configured project flow units.

head property

head: float

Return current node head in configured project length units.

inflow_pollutant_concentration property

inflow_pollutant_concentration: Mapping[str, float]

Return current inflow concentrations by canonical pollutant ID.

kind property

kind: NodeKind

Return the configured node subtype.

lateral_inflow property

lateral_inflow: float

Return current total lateral inflow in configured project flow units.

losses property

losses: float

Return current node losses in configured project flow units.

pollut_quality property

pollut_quality: Mapping[str, float]

Return immutable current concentrations by canonical pollutant ID.

reactor_pollutant_concentration property

reactor_pollutant_concentration: Mapping[str, float]

Return current reactor concentrations by canonical pollutant ID.

settings property

settings: NodeSettings

Return stable common-node settings.

statistics property

statistics: NodeStatistics

Return immutable cumulative common-node statistics.

total_inflow property

total_inflow: float

Return current total node inflow in configured project flow units.

total_inflow_volume property

total_inflow_volume: float

Return cumulative node inflow in configured project volume units.

total_outflow property

total_outflow: float

Return current total node outflow in configured project flow units.

volume property

volume: float

Return current node volume in configured project volume units.

override_pollutant_concentrations

override_pollutant_concentrations(values: Mapping[str, float] | Iterable[tuple[str | int, float]]) -> None

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

NodeSettings

Expose stable common-node settings through one atomic owner.

METHOD DESCRIPTION
update

Atomically update supplied stable node settings in project units.

ATTRIBUTE DESCRIPTION
full_depth

Return node full depth in configured project length units.

TYPE: float

included_in_report

Return whether detailed output includes this node.

TYPE: bool

initial_depth

Return node initial depth in configured project length units.

TYPE: float

invert_elevation

Return node invert elevation in configured project length units.

TYPE: float

ponded_area

Return node ponded area in configured project area units.

TYPE: float

surcharge_depth

Return node surcharge depth in configured project length units.

TYPE: float

tag

Return the metadata tag.

TYPE: str

full_depth property writable

full_depth: float

Return node full depth in configured project length units.

included_in_report property writable

included_in_report: bool

Return whether detailed output includes this node.

initial_depth property writable

initial_depth: float

Return node initial depth in configured project length units.

invert_elevation property writable

invert_elevation: float

Return node invert elevation in configured project length units.

ponded_area property writable

ponded_area: float

Return node ponded area in configured project area units.

surcharge_depth property writable

surcharge_depth: float

Return node surcharge depth in configured project length units.

tag property writable

tag: str

Return the metadata tag.

update

update(**changes: object) -> None

Atomically update supplied stable node settings in project units.

Junction


              flowchart TD
              swmmrs.objects.Junction[Junction]
              swmmrs.objects._nodes.Node[Node]
              swmmrs.objects._base._LiveView[_LiveView]

                              swmmrs.objects._nodes.Node --> swmmrs.objects.Junction
                                swmmrs.objects._base._LiveView --> swmmrs.objects._nodes.Node
                



              click swmmrs.objects.Junction href "" "swmmrs.objects.Junction"
              click swmmrs.objects._nodes.Node href "" "swmmrs.objects._nodes.Node"
              click swmmrs.objects._base._LiveView href "" "swmmrs.objects._base._LiveView"
            

Expose a generation-bound junction node.

METHOD DESCRIPTION
override_pollutant_concentrations

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

ATTRIBUTE DESCRIPTION
depth

Return current node depth in configured project length units.

TYPE: float

external_inflow

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

TYPE: float

external_pollutant_mass_flux

Return canonical persistent mass fluxes as a live mutable mapping.

TYPE: MutableMapping[str, float]

flooding

Return current node flooding in configured project flow units.

TYPE: float

head

Return current node head in configured project length units.

TYPE: float

inflow_pollutant_concentration

Return current inflow concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

kind

Return the configured node subtype.

TYPE: NodeKind

lateral_inflow

Return current total lateral inflow in configured project flow units.

TYPE: float

losses

Return current node losses in configured project flow units.

TYPE: float

pollut_quality

Return immutable current concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

reactor_pollutant_concentration

Return current reactor concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

settings

Return stable common-node settings.

TYPE: NodeSettings

statistics

Return immutable cumulative common-node statistics.

TYPE: NodeStatistics

total_inflow

Return current total node inflow in configured project flow units.

TYPE: float

total_inflow_volume

Return cumulative node inflow in configured project volume units.

TYPE: float

total_outflow

Return current total node outflow in configured project flow units.

TYPE: float

volume

Return current node volume in configured project volume units.

TYPE: float

depth property

depth: float

Return current node depth in configured project length units.

external_inflow property writable

external_inflow: float

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

external_pollutant_mass_flux property

external_pollutant_mass_flux: MutableMapping[str, float]

Return canonical persistent mass fluxes as a live mutable mapping.

Item assignment and update() are atomic sparse mutations. Deletion resets one configured pollutant to zero; clear() atomically resets every pollutant. Mutation lifecycle: OPEN, RUNNING, ENDED.

flooding property

flooding: float

Return current node flooding in configured project flow units.

head property

head: float

Return current node head in configured project length units.

inflow_pollutant_concentration property

inflow_pollutant_concentration: Mapping[str, float]

Return current inflow concentrations by canonical pollutant ID.

kind property

kind: NodeKind

Return the configured node subtype.

lateral_inflow property

lateral_inflow: float

Return current total lateral inflow in configured project flow units.

losses property

losses: float

Return current node losses in configured project flow units.

pollut_quality property

pollut_quality: Mapping[str, float]

Return immutable current concentrations by canonical pollutant ID.

reactor_pollutant_concentration property

reactor_pollutant_concentration: Mapping[str, float]

Return current reactor concentrations by canonical pollutant ID.

settings property

settings: NodeSettings

Return stable common-node settings.

statistics property

statistics: NodeStatistics

Return immutable cumulative common-node statistics.

total_inflow property

total_inflow: float

Return current total node inflow in configured project flow units.

total_inflow_volume property

total_inflow_volume: float

Return cumulative node inflow in configured project volume units.

total_outflow property

total_outflow: float

Return current total node outflow in configured project flow units.

volume property

volume: float

Return current node volume in configured project volume units.

override_pollutant_concentrations

override_pollutant_concentrations(values: Mapping[str, float] | Iterable[tuple[str | int, float]]) -> None

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

Divider


              flowchart TD
              swmmrs.objects.Divider[Divider]
              swmmrs.objects._nodes.Node[Node]
              swmmrs.objects._base._LiveView[_LiveView]

                              swmmrs.objects._nodes.Node --> swmmrs.objects.Divider
                                swmmrs.objects._base._LiveView --> swmmrs.objects._nodes.Node
                



              click swmmrs.objects.Divider href "" "swmmrs.objects.Divider"
              click swmmrs.objects._nodes.Node href "" "swmmrs.objects._nodes.Node"
              click swmmrs.objects._base._LiveView href "" "swmmrs.objects._base._LiveView"
            

Expose a generation-bound flow-divider node.

METHOD DESCRIPTION
override_pollutant_concentrations

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

ATTRIBUTE DESCRIPTION
depth

Return current node depth in configured project length units.

TYPE: float

external_inflow

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

TYPE: float

external_pollutant_mass_flux

Return canonical persistent mass fluxes as a live mutable mapping.

TYPE: MutableMapping[str, float]

flooding

Return current node flooding in configured project flow units.

TYPE: float

head

Return current node head in configured project length units.

TYPE: float

inflow_pollutant_concentration

Return current inflow concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

kind

Return the configured node subtype.

TYPE: NodeKind

lateral_inflow

Return current total lateral inflow in configured project flow units.

TYPE: float

losses

Return current node losses in configured project flow units.

TYPE: float

pollut_quality

Return immutable current concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

reactor_pollutant_concentration

Return current reactor concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

settings

Return stable divider settings.

TYPE: DividerSettings

statistics

Return immutable cumulative common-node statistics.

TYPE: NodeStatistics

total_inflow

Return current total node inflow in configured project flow units.

TYPE: float

total_inflow_volume

Return cumulative node inflow in configured project volume units.

TYPE: float

total_outflow

Return current total node outflow in configured project flow units.

TYPE: float

volume

Return current node volume in configured project volume units.

TYPE: float

depth property

depth: float

Return current node depth in configured project length units.

external_inflow property writable

external_inflow: float

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

external_pollutant_mass_flux property

external_pollutant_mass_flux: MutableMapping[str, float]

Return canonical persistent mass fluxes as a live mutable mapping.

Item assignment and update() are atomic sparse mutations. Deletion resets one configured pollutant to zero; clear() atomically resets every pollutant. Mutation lifecycle: OPEN, RUNNING, ENDED.

flooding property

flooding: float

Return current node flooding in configured project flow units.

head property

head: float

Return current node head in configured project length units.

inflow_pollutant_concentration property

inflow_pollutant_concentration: Mapping[str, float]

Return current inflow concentrations by canonical pollutant ID.

kind property

kind: NodeKind

Return the configured node subtype.

lateral_inflow property

lateral_inflow: float

Return current total lateral inflow in configured project flow units.

losses property

losses: float

Return current node losses in configured project flow units.

pollut_quality property

pollut_quality: Mapping[str, float]

Return immutable current concentrations by canonical pollutant ID.

reactor_pollutant_concentration property

reactor_pollutant_concentration: Mapping[str, float]

Return current reactor concentrations by canonical pollutant ID.

settings property

settings: DividerSettings

Return stable divider settings.

statistics property

statistics: NodeStatistics

Return immutable cumulative common-node statistics.

total_inflow property

total_inflow: float

Return current total node inflow in configured project flow units.

total_inflow_volume property

total_inflow_volume: float

Return cumulative node inflow in configured project volume units.

total_outflow property

total_outflow: float

Return current total node outflow in configured project flow units.

volume property

volume: float

Return current node volume in configured project volume units.

override_pollutant_concentrations

override_pollutant_concentrations(values: Mapping[str, float] | Iterable[tuple[str | int, float]]) -> None

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

DividerSettings


              flowchart TD
              swmmrs.objects.DividerSettings[DividerSettings]
              swmmrs.objects._nodes.NodeSettings[NodeSettings]

                              swmmrs.objects._nodes.NodeSettings --> swmmrs.objects.DividerSettings
                


              click swmmrs.objects.DividerSettings href "" "swmmrs.objects.DividerSettings"
              click swmmrs.objects._nodes.NodeSettings href "" "swmmrs.objects._nodes.NodeSettings"
            

Expose stable flow-divider settings and rule replacement.

METHOD DESCRIPTION
update

Atomically update supplied stable node settings in project units.

ATTRIBUTE DESCRIPTION
diverted_link

Return the optional diverted-link relationship.

TYPE: Link | None

full_depth

Return node full depth in configured project length units.

TYPE: float

included_in_report

Return whether detailed output includes this node.

TYPE: bool

initial_depth

Return node initial depth in configured project length units.

TYPE: float

invert_elevation

Return node invert elevation in configured project length units.

TYPE: float

ponded_area

Return node ponded area in configured project area units.

TYPE: float

rule

Return the stable divider rule in project units.

TYPE: DividerRule

surcharge_depth

Return node surcharge depth in configured project length units.

TYPE: float

tag

Return the metadata tag.

TYPE: str

diverted_link: Link | None

Return the optional diverted-link relationship.

full_depth property writable

full_depth: float

Return node full depth in configured project length units.

included_in_report property writable

included_in_report: bool

Return whether detailed output includes this node.

initial_depth property writable

initial_depth: float

Return node initial depth in configured project length units.

invert_elevation property writable

invert_elevation: float

Return node invert elevation in configured project length units.

ponded_area property writable

ponded_area: float

Return node ponded area in configured project area units.

rule property writable

Return the stable divider rule in project units.

surcharge_depth property writable

surcharge_depth: float

Return node surcharge depth in configured project length units.

tag property writable

tag: str

Return the metadata tag.

update

update(**changes: object) -> None

Atomically update supplied stable node settings in project units.

DividerRule

Store one mutually exclusive divider rule in project units.

Outfall


              flowchart TD
              swmmrs.objects.Outfall[Outfall]
              swmmrs.objects._nodes.Node[Node]
              swmmrs.objects._base._LiveView[_LiveView]

                              swmmrs.objects._nodes.Node --> swmmrs.objects.Outfall
                                swmmrs.objects._base._LiveView --> swmmrs.objects._nodes.Node
                



              click swmmrs.objects.Outfall href "" "swmmrs.objects.Outfall"
              click swmmrs.objects._nodes.Node href "" "swmmrs.objects._nodes.Node"
              click swmmrs.objects._base._LiveView href "" "swmmrs.objects._base._LiveView"
            

Expose a generation-bound outfall node and its runtime capabilities.

METHOD DESCRIPTION
override_pollutant_concentrations

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

ATTRIBUTE DESCRIPTION
depth

Return current node depth in configured project length units.

TYPE: float

external_inflow

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

TYPE: float

external_pollutant_mass_flux

Return canonical persistent mass fluxes as a live mutable mapping.

TYPE: MutableMapping[str, float]

fixed_stage

Current fixed-stage override without replacing the stable boundary declaration.

TYPE: float | None

flooding

Return current node flooding in configured project flow units.

TYPE: float

head

Return current node head in configured project length units.

TYPE: float

inflow_pollutant_concentration

Return current inflow concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

kind

Return the configured node subtype.

TYPE: NodeKind

lateral_inflow

Return current total lateral inflow in configured project flow units.

TYPE: float

losses

Return current node losses in configured project flow units.

TYPE: float

outfall_statistics

Return immutable cumulative outfall statistics.

TYPE: OutfallStatistics

pollut_quality

Return immutable current concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

reactor_pollutant_concentration

Return current reactor concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

settings

Return stable outfall settings.

TYPE: OutfallSettings

statistics

Return immutable cumulative common-node statistics.

TYPE: NodeStatistics

total_inflow

Return current total node inflow in configured project flow units.

TYPE: float

total_inflow_volume

Return cumulative node inflow in configured project volume units.

TYPE: float

total_outflow

Return current total node outflow in configured project flow units.

TYPE: float

volume

Return current node volume in configured project volume units.

TYPE: float

depth property

depth: float

Return current node depth in configured project length units.

external_inflow property writable

external_inflow: float

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

external_pollutant_mass_flux property

external_pollutant_mass_flux: MutableMapping[str, float]

Return canonical persistent mass fluxes as a live mutable mapping.

Item assignment and update() are atomic sparse mutations. Deletion resets one configured pollutant to zero; clear() atomically resets every pollutant. Mutation lifecycle: OPEN, RUNNING, ENDED.

fixed_stage property writable

fixed_stage: float | None

Current fixed-stage override without replacing the stable boundary declaration.

flooding property

flooding: float

Return current node flooding in configured project flow units.

head property

head: float

Return current node head in configured project length units.

inflow_pollutant_concentration property

inflow_pollutant_concentration: Mapping[str, float]

Return current inflow concentrations by canonical pollutant ID.

kind property

kind: NodeKind

Return the configured node subtype.

lateral_inflow property

lateral_inflow: float

Return current total lateral inflow in configured project flow units.

losses property

losses: float

Return current node losses in configured project flow units.

outfall_statistics property

outfall_statistics: OutfallStatistics

Return immutable cumulative outfall statistics.

pollut_quality property

pollut_quality: Mapping[str, float]

Return immutable current concentrations by canonical pollutant ID.

reactor_pollutant_concentration property

reactor_pollutant_concentration: Mapping[str, float]

Return current reactor concentrations by canonical pollutant ID.

settings property

settings: OutfallSettings

Return stable outfall settings.

statistics property

statistics: NodeStatistics

Return immutable cumulative common-node statistics.

total_inflow property

total_inflow: float

Return current total node inflow in configured project flow units.

total_inflow_volume property

total_inflow_volume: float

Return cumulative node inflow in configured project volume units.

total_outflow property

total_outflow: float

Return current total node outflow in configured project flow units.

volume property

volume: float

Return current node volume in configured project volume units.

override_pollutant_concentrations

override_pollutant_concentrations(values: Mapping[str, float] | Iterable[tuple[str | int, float]]) -> None

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

OutfallSettings


              flowchart TD
              swmmrs.objects.OutfallSettings[OutfallSettings]
              swmmrs.objects._nodes.NodeSettings[NodeSettings]

                              swmmrs.objects._nodes.NodeSettings --> swmmrs.objects.OutfallSettings
                


              click swmmrs.objects.OutfallSettings href "" "swmmrs.objects.OutfallSettings"
              click swmmrs.objects._nodes.NodeSettings href "" "swmmrs.objects._nodes.NodeSettings"
            

Expose stable outfall settings and boundary replacement.

METHOD DESCRIPTION
update

Atomically update supplied stable node settings in project units.

ATTRIBUTE DESCRIPTION
boundary

Return the stable boundary declaration in project units.

TYPE: OutfallBoundary

full_depth

Return node full depth in configured project length units.

TYPE: float

has_flap_gate

Return whether the outfall has a flap gate.

TYPE: bool

included_in_report

Return whether detailed output includes this node.

TYPE: bool

initial_depth

Return node initial depth in configured project length units.

TYPE: float

invert_elevation

Return node invert elevation in configured project length units.

TYPE: float

ponded_area

Return node ponded area in configured project area units.

TYPE: float

route_to_subcatchment

Return the optional receiving subcatchment relationship.

TYPE: Subcatchment | None

surcharge_depth

Return node surcharge depth in configured project length units.

TYPE: float

tag

Return the metadata tag.

TYPE: str

boundary property writable

boundary: OutfallBoundary

Return the stable boundary declaration in project units.

full_depth property writable

full_depth: float

Return node full depth in configured project length units.

has_flap_gate property writable

has_flap_gate: bool

Return whether the outfall has a flap gate.

included_in_report property writable

included_in_report: bool

Return whether detailed output includes this node.

initial_depth property writable

initial_depth: float

Return node initial depth in configured project length units.

invert_elevation property writable

invert_elevation: float

Return node invert elevation in configured project length units.

ponded_area property writable

ponded_area: float

Return node ponded area in configured project area units.

route_to_subcatchment property writable

route_to_subcatchment: Subcatchment | None

Return the optional receiving subcatchment relationship.

surcharge_depth property writable

surcharge_depth: float

Return node surcharge depth in configured project length units.

tag property writable

tag: str

Return the metadata tag.

update

update(**changes: object) -> None

Atomically update supplied stable node settings in project units.

OutfallBoundary

Store one mutually exclusive outfall boundary declaration.

StorageNode


              flowchart TD
              swmmrs.objects.StorageNode[StorageNode]
              swmmrs.objects._nodes.Node[Node]
              swmmrs.objects._base._LiveView[_LiveView]

                              swmmrs.objects._nodes.Node --> swmmrs.objects.StorageNode
                                swmmrs.objects._base._LiveView --> swmmrs.objects._nodes.Node
                



              click swmmrs.objects.StorageNode href "" "swmmrs.objects.StorageNode"
              click swmmrs.objects._nodes.Node href "" "swmmrs.objects._nodes.Node"
              click swmmrs.objects._base._LiveView href "" "swmmrs.objects._base._LiveView"
            

Expose a generation-bound storage node and its runtime capabilities.

METHOD DESCRIPTION
override_pollutant_concentrations

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

ATTRIBUTE DESCRIPTION
depth

Return current node depth in configured project length units.

TYPE: float

external_inflow

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

TYPE: float

external_pollutant_mass_flux

Return canonical persistent mass fluxes as a live mutable mapping.

TYPE: MutableMapping[str, float]

flooding

Return current node flooding in configured project flow units.

TYPE: float

head

Return current node head in configured project length units.

TYPE: float

hydraulic_retention_time

Return current storage hydraulic retention time.

TYPE: timedelta

inflow_pollutant_concentration

Return current inflow concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

kind

Return the configured node subtype.

TYPE: NodeKind

lateral_inflow

Return current total lateral inflow in configured project flow units.

TYPE: float

losses

Return current node losses in configured project flow units.

TYPE: float

pollut_quality

Return immutable current concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

reactor_pollutant_concentration

Return current reactor concentrations by canonical pollutant ID.

TYPE: Mapping[str, float]

settings

Return stable storage-node settings.

TYPE: StorageSettings

statistics

Return immutable cumulative common-node statistics.

TYPE: NodeStatistics

storage_statistics

Return immutable cumulative storage statistics.

TYPE: StorageStatistics

total_inflow

Return current total node inflow in configured project flow units.

TYPE: float

total_inflow_volume

Return cumulative node inflow in configured project volume units.

TYPE: float

total_outflow

Return current total node outflow in configured project flow units.

TYPE: float

volume

Return current node volume in configured project volume units.

TYPE: float

depth property

depth: float

Return current node depth in configured project length units.

external_inflow property writable

external_inflow: float

Additive external inflow. Setter lifecycle: OPEN, RUNNING, ENDED.

external_pollutant_mass_flux property

external_pollutant_mass_flux: MutableMapping[str, float]

Return canonical persistent mass fluxes as a live mutable mapping.

Item assignment and update() are atomic sparse mutations. Deletion resets one configured pollutant to zero; clear() atomically resets every pollutant. Mutation lifecycle: OPEN, RUNNING, ENDED.

flooding property

flooding: float

Return current node flooding in configured project flow units.

head property

head: float

Return current node head in configured project length units.

hydraulic_retention_time property

hydraulic_retention_time: timedelta

Return current storage hydraulic retention time.

inflow_pollutant_concentration property

inflow_pollutant_concentration: Mapping[str, float]

Return current inflow concentrations by canonical pollutant ID.

kind property

kind: NodeKind

Return the configured node subtype.

lateral_inflow property

lateral_inflow: float

Return current total lateral inflow in configured project flow units.

losses property

losses: float

Return current node losses in configured project flow units.

pollut_quality property

pollut_quality: Mapping[str, float]

Return immutable current concentrations by canonical pollutant ID.

reactor_pollutant_concentration property

reactor_pollutant_concentration: Mapping[str, float]

Return current reactor concentrations by canonical pollutant ID.

settings property

settings: StorageSettings

Return stable storage-node settings.

statistics property

statistics: NodeStatistics

Return immutable cumulative common-node statistics.

storage_statistics property

storage_statistics: StorageStatistics

Return immutable cumulative storage statistics.

total_inflow property

total_inflow: float

Return current total node inflow in configured project flow units.

total_inflow_volume property

total_inflow_volume: float

Return cumulative node inflow in configured project volume units.

total_outflow property

total_outflow: float

Return current total node outflow in configured project flow units.

volume property

volume: float

Return current node volume in configured project volume units.

override_pollutant_concentrations

override_pollutant_concentrations(values: Mapping[str, float] | Iterable[tuple[str | int, float]]) -> None

Atomically override concentrations for the next quality step. Lifecycle: RUNNING.

StorageSettings


              flowchart TD
              swmmrs.objects.StorageSettings[StorageSettings]
              swmmrs.objects._nodes.NodeSettings[NodeSettings]

                              swmmrs.objects._nodes.NodeSettings --> swmmrs.objects.StorageSettings
                


              click swmmrs.objects.StorageSettings href "" "swmmrs.objects.StorageSettings"
              click swmmrs.objects._nodes.NodeSettings href "" "swmmrs.objects._nodes.NodeSettings"
            

Expose stable storage-node settings and declarations.

METHOD DESCRIPTION
update

Atomically update supplied stable node settings in project units.

ATTRIBUTE DESCRIPTION
evaporation_fraction

Return the realized evaporation fraction.

TYPE: float

exfiltration

Return the optional storage exfiltration declaration.

TYPE: StorageExfiltration | None

full_depth

Return node full depth in configured project length units.

TYPE: float

included_in_report

Return whether detailed output includes this node.

TYPE: bool

initial_depth

Return node initial depth in configured project length units.

TYPE: float

invert_elevation

Return node invert elevation in configured project length units.

TYPE: float

ponded_area

Return node ponded area in configured project area units.

TYPE: float

shape

Return the canonical storage surface declaration.

TYPE: StorageShape

surcharge_depth

Return node surcharge depth in configured project length units.

TYPE: float

tag

Return the metadata tag.

TYPE: str

evaporation_fraction property writable

evaporation_fraction: float

Return the realized evaporation fraction.

exfiltration property writable

exfiltration: StorageExfiltration | None

Return the optional storage exfiltration declaration.

full_depth property writable

full_depth: float

Return node full depth in configured project length units.

included_in_report property writable

included_in_report: bool

Return whether detailed output includes this node.

initial_depth property writable

initial_depth: float

Return node initial depth in configured project length units.

invert_elevation property writable

invert_elevation: float

Return node invert elevation in configured project length units.

ponded_area property writable

ponded_area: float

Return node ponded area in configured project area units.

shape property writable

shape: StorageShape

Return the canonical storage surface declaration.

surcharge_depth property writable

surcharge_depth: float

Return node surcharge depth in configured project length units.

tag property writable

tag: str

Return the metadata tag.

update

update(**changes: object) -> None

Atomically update supplied stable node settings in project units.

StorageExfiltration

Store one storage Green-Ampt or seepage declaration in project units.

StorageShape

Store one round-trippable canonical storage surface declaration.

coefficients are SWMM's stored C-compatible a0, a1, and a2 values in configured project units. Tabular shapes use zero coefficients and a Curve Live View.