Profile View

The profile view is a custom-drawn canvas occupying the left portion of each tab's profile row in the main window, next to the inline property panel. It renders the pipe network in profile along each alignment as a drafting-sheet exhibit, providing immediate visual feedback as you edit pipe geometry and run hydraulic calculations. The canvas is implemented as a WPF FrameworkElement that draws directly via DrawingContext for high-performance rendering.

Full profile view showing object-rendered structures, pipe callouts, HGL overlay, and ground surface
Full profile view showing object-rendered structures, pipe callouts, HGL overlay, and ground surface

Canvas Theme

From View > View Settings..., choose a canvas theme for the storm drain and culvert profiles:

  • Drafting Sheet (default) — Renders the profile as a white, plotted-drawing-style exhibit, with a title block above the frame and elevation axes labeled on both sides like a plotted profile sheet.
  • Dark — Keeps the dark instrument-panel canvas for on-screen work.

View Settings also configures, per storm and per overlay (HGL/EGL/Ground), the line color, width, and style, plus a top-right legend overlay listing the line style for each visible overlay.

What's Displayed

The base profile view always shows the following elements:

  • Pipe segments — Drawn as rectangular outlines between structures, showing the pipe barrel with inner diameter (or box dimensions).
  • Structures — Object-rendered rather than simple verticals: manholes draw as a barrel + cone + rim, inlets as a hollow box under the rim, matching the plan-sheet convention for each structure type. A data block alongside each structure lists its key data (rim, inverts, sump) left-to-right, plotted-sheet style, decimating to a compact station + name label when space is tight.
  • Pipe callouts — Always-on labels under each barrel showing length, size, and slope (e.g. "284 Lf – 24" @ 0.26%"), the way a plotted profile sheet labels its pipes.
  • Lateral continuation stubs — Where a lateral pipe discharges into a trunk shown in a different profile, a ghost of the receiving trunk pipe is drawn past the lateral's downstream end for continuity context.

Display Overlays

The toolbar (and, on the Culvert and Inlet tabs, a compact per-tab View ▾ button) provides toggle buttons to show or hide additional data overlays on the profile. Each overlay can be turned on or off independently.

Close-up of the display toggle buttons in the toolbar (HGL, EGL, Ground, Crossings, Fit)
Close-up of the display toggle buttons in the toolbar (HGL, EGL, Ground, Crossings, Fit)

HGL (Hydraulic Grade Line)

The HGL overlay plots the computed water surface elevation at each pipe as a continuous blue line across the profile (line color/width/style per storm are configurable in View Settings, but HGL is always blue by convention). This is the single most important overlay for storm drain design — it shows whether pipes are flowing under pressure (surcharged) or at partial depth. When the HGL rises above a pipe crown, the pipe segment is highlighted to indicate surcharge. When it rises above a structure rim, a critical overtopping warning is flagged. When enabled, a water-surface fill shades the water prism inside pipes and structures for the design storm, so surcharged runs and partial-flow spans read at a glance. A small ∇ tailwater marker is drawn only at true free discharges — an Outfall node or a dangling pipe end with no structure — not at a lateral's connection into a trunk, since that connection is downstream-only within the lateral's own profile rather than a true tailwater condition.

EGL (Energy Grade Line)

The EGL overlay is plotted as a dashed line above the HGL. It represents total energy (water surface plus velocity head, V²/2g). The vertical gap between HGL and EGL equals the velocity head in each pipe. At junctions, the EGL step represents the junction energy loss (hj).

Ground

When enabled, the ground surface profile from the Civil 3D surface model is drawn along the alignment. This is useful for visually checking pipe cover — the vertical distance between the ground line and the pipe crown. Insufficient cover is a common design issue flagged in the results table.

Crossings (Storm Drain tab only)

The crossings overlay marks locations where other pipes from the same or different pipe networks cross the current alignment. Crossings are detected from Civil 3D pipe network geometry by the PipeCrossingDetector. Each crossing is drawn as a marker at the crossing station and elevation, helping you identify potential conflicts during design.

Navigation

Action Control
Select a pipeClick it; Shift/Ctrl+click extends the selection
Select multiple pipesClick and drag a rectangle across them
Walk the runLeft / Right arrow keys
Fit to extentsCtrl+F or View menu → Fit to Extent
Fit to selectionCtrl+Shift+F, View menu → Fit to Selection, or double-click a pipe. See Fit to Selection below.
Pan the profile window (long runs only)Drag the scrollbar under the canvas; small step 25 ft, large step (click the track) one full window. See Long Runs & the Profile Window below.

The profile view is deliberately fit-based rather than free-zoom — there is no mouse-wheel zoom or drag-to-pan on the canvas itself. Fit to Extent frames the whole alignment run with comfortable margins (or, on a run longer than the configured window, the current station window — see below); Fit to Selection frames the pipes you're working on. The one exception is the long-run scrollbar: it pans the station window at a fixed scale, which is a pan, not a zoom — the true-scale readout in the corner doesn't change while you drag it. This keeps the view predictable while you edit: it never ends up scrolled somewhere unexpected.

Long Runs & the Profile Window

Compressing a very long pipe run onto one screen eventually makes pipe callouts and structure data blocks unreadable, no matter how aggressively they decimate. Rather than let that happen, HydraStorm caps how much station length the storm drain profile will fit at once: when a run exceeds the configured limit, Fit to Extent shows a scrollable station window of that length instead of compressing the entire run. Runs shorter than the limit are unaffected and render exactly as before.

A horizontal scrollbar appears under the profile canvas only when the current run is being windowed. Dragging it pans the window at a fixed scale — it never zooms in or out, so pipe and structure geometry stay at the same visual size while you scroll along the run.

Configuring the Window Length

Set the window length from View > View Settings... > Storm Drain tab, under LONG RUNS:

  • Limit profile window to [ ] ft — checked by default. Uncheck it to restore the old behavior of always fitting the entire run to the canvas, however long it is.
  • The length field defaults to 800 ft and accepts a minimum of 100 ft.

This is a per-user setting, like the rest of View Settings, and it applies only to the storm drain profile — the Culvert and Inlet tab profiles always fit their full extent.

How the Window Follows You

  • Selecting a pipe (grid row click or profile click) outside the current window slides the window the minimum distance needed to bring it into view. Selecting a pipe that's already visible never moves the view.
  • Fit to Selection and its sticky behavior take priority over windowing and work exactly as described below; the scrollbar hides while zoomed to a selection, since there's nothing to pan. Fit to Extent returns to the windowed view, positioned near wherever you last had a pipe selected rather than snapping back to the start of the run.
  • The window's position is preserved across edits and recalculations — it doesn't reset to the start of the run every time you change an invert or slope.
  • Vertical fit follows the contents of the current window rather than the whole run, so scrolling along a sloping run keeps the visible pipes, HGL/EGL, and ground framed as you go.

Selection

Click on a pipe segment in the profile to select it. The selected pipe's invert/crown outline strokes in accent blue in addition to the existing selection highlight band, and its properties appear in the property panel on the right side of the window. The corresponding row in the results table is also highlighted. Deselecting removes the highlight.

A pipe flagged missing-flow (amber) or invalid (red) keeps its validation color even when selected — a validation warning is never masked by clicking the pipe.

Use the Left and Right arrow keys to move the selection to the previous or next pipe in the network. This allows you to quickly walk through a pipe run without clicking each segment individually.

Tip: Keyboard Navigation

  • Use arrow keys to step through pipes sequentially along an alignment.
  • At a confluence (Y-junction), the arrow keys follow the main trunk by default.
  • Click directly on a branch pipe to switch to that branch.

Selected-Pipe Callout

Selecting a pipe shows an info chip anchored above the barrel midpoint, giving you the pipe's key data without opening the property panel:

  • First line — name, size, and slope, e.g. P-102: 24" @ 0.85%. Box culverts and other non-circular conduits show width × rise in feet, e.g. P-102: 3.0'x2.0' @ 0.85%.
  • Second lineL=245' · Q=12.4 cfs · Vf=6.2 fps. Length is always shown; total flow (Q) and full-flow velocity (Vf) appear once calculation results exist.

Chips are only drawn for selected pipes, and are skipped on pipes plotted narrower than about 50 pixels — this keeps a wide multi-pipe selection readable instead of stacking unreadable chips on top of each other. Zooming in (or using Fit to Selection) widens the pipe enough for its chip to appear. Deselecting the pipe removes its chip.

A selected pipe in the profile view with its info chip showing name/size/slope and length/flow/velocity
A selected pipe in the profile view with its info chip showing name/size/slope and length/flow/velocity

True Scale Annotation

The top-right corner of the canvas shows a live readout of the actual rendered scale, e.g. 1" = 42 ft · VE 8.3× — horizontal feet per screen inch, and the true vertical exaggeration as actually drawn. It updates continuously as you resize the window or the profile pane.

Note: On short, steep runs the displayed VE can read below the vertical exaggeration you requested. The exaggeration setting is a ceiling on how much the vertical axis is stretched, not a guarantee — fit-to-content always wins so the full run stays visible.

Structure Labels

Long structure labels are rotated to fit alongside the structure. When a rotated label would run off the top of the canvas, it now trims with an ellipsis instead of clipping mid-character.

Fit to Selection

Fit to Selection zooms the profile to the selected pipe(s) plus half of each adjacent pipe, so you always keep a bit of upstream/downstream context instead of framing the selection edge-to-edge. The elevation range always includes the HGL/EGL for every displayed storm, structure rims, and ground surface within the zoomed window.

Three ways to invoke it:

  • Ctrl+Shift+F
  • View menu → Fit to Selection
  • Double-click a pipe — selects the pipe and zooms to it in one action. Double-click also works on the Culvert tab's profile.

While zoomed to a selection:

  • The Left and Right arrow keys walk the run as usual, and the view follows each pipe as you step to it — you don't need to re-fit after every step.
  • Edits and recalculations keep the zoomed view instead of snapping back out to the full profile.

Press Ctrl+F or use View menu → Fit to Extent to return to the full profile — or, on a run longer than the long-run window limit, to the windowed view, positioned near your last selection.

Profile view zoomed to a selected pipe run via Fit to Selection, showing half of the adjacent pipes on each side for context
Profile view zoomed to a selected pipe run via Fit to Selection, showing half of the adjacent pipes on each side for context

Live Updates

The profile canvas is tightly coupled to the calculation engine. As you edit pipe inverts, sizes, slopes, or other properties in the property panel, the following happens automatically:

  1. The profile canvas redraws immediately to reflect the new geometry.
  2. A 300ms debounce timer starts (or resets if you're still typing).
  3. After the debounce period, the full hydraulic calculation runs on a background thread via Task.Run.
  4. Results are marshaled back to the UI thread, and the HGL/EGL overlays update to reflect the new hydraulic state.

This means you get near-instant visual feedback on geometry changes and slightly delayed (but still sub-second) feedback on hydraulic results. You never need to manually press Calculate to see the effect of your edits — though F5 is available if you want to force an immediate recalculation.

Note: The profile view shows one alignment at a time. Use the alignment grouping in the results table or the network selector to switch between alignments in the network.