VDCSMOOTHSURF_REMOVE is part of Smooth Surface (fix wavy contours); the full section follows.
Fixes wavy (squiggly) TIN contours by editing the surface, not the picture: wavy spans are detected on test contours, then Minimize Flat Areas + region-limited Natural Neighbor (NNI) smoothing are applied as ordinary definition edits. Honest by construction: contours of the smoothed surface cannot cross, and the run reports exactly how far the surface moved.
Wavy contour (before)
Smoothed contour (after)
Region / NNI points
Breakline (never moves)
What it does, per run
- Extracts test contours at the chosen interval (temporary, read and erased; the drawing is untouched) and flags wavy spans: stretches that keep flipping bend direction, go nowhere on net, and bulge within the amplitude band (default 0.1–3 ft; deeper bends are landform and left alone).
- Audit only mode stops there, palette (double-click zooms to each span) + CSV.
- Audit + Smooth: spans are padded (default 25 ft), merged into regions, carved into a protected mosaic, no cell within the keep-clear distance (default 5 ft) of an existing surface vertex, so corridor curb/EOP linework is never touched, and fixed with Minimize Flat Areas (optional) + NNI smoothing in the surviving cells; the surface rebuilds.
- Re-check + honesty meter: contours re-scanned; surface movement inside the regions measured before/after and reported (max / mean).
- Smooth + Breaklines mode (the island fix): every span the grid cannot reach, narrow parking islands, protected zones, gets an auto-breakline: the span ironed smooth, drawn as a no-plot 3D polyline at contour grade, added to the surface as a standard breakline. The automated version of tracing a feature line by hand; visible, editable, capped per run, erased by REMOVE, regenerated by REFRESH.
- Both edits sit in Definition → Edits like any manual edit, visible, saved, rebuilt with the surface. A stamp on the surface records the op GUIDs + settings.
Companions & guidance
- VDCSMOOTHSURF_REFRESH, after any design change: removes the stamped edits, re-detects on current geometry, re-applies, re-stamps. VDCREFRESHALL chains it as its final step.
- VDCSMOOTHSURF_REMOVE, takes every stamped edit back out; the surface returns to exactly what its own data builds. Unconditional.
- Re-running is always a clean re-run, prior VDC edits come out first; edits never stack.
- Why not style contour smoothing? Spline smoothing redraws the picture over the same jagged TIN, contours can cross and contradict spot elevations. Surface smoothing cannot.
- Leftover spans = missing data, not insufficient smoothing, add the breakline the TIN is missing.
- Draft work product, review the movement report; keep hundredth-critical areas in mind (breakline-protected grades never move).
- Settings
%APPDATA%\VDC\SmoothSurf\settings.json(envVDC_SMOOTHSURF_SETTINGS), schema-tolerant.
Dialog

VDCSMOOTHSURFVDCSMOOTHSURF_REFRESH, No dialog, runs on the whole drawing with no prompt.VDCSMOOTHSURF_REMOVE, No dialog, runs on the whole drawing with no prompt.When to use it
- A PE red-lines the squiggly contours on a grading or road plan.
- The old fix - tracing a smooth feature line over each bad span - is eating hours and goes stale with every regrade.
- You want smooth plotted contours WITHOUT style spline smoothing (which can cross and contradicts spot elevations).
How to run it
- Run VDCSMOOTHSURF; pick the TIN surface.
- Start in Audit only mode - review the flagged spans in the palette (double-click zooms).
- Re-run in Audit + Smooth mode; keep Minimize Flat Areas on and the default 5-ft NNI grid.
- Read the summary: spans found -> regions smoothed -> points added -> spans remaining -> max surface movement.
- Chase any remaining spans with a breakline (usually missing data), and re-run VDCSMOOTHSURF_REFRESH after design changes - VDCREFRESHALL chains it automatically.
Options
- Mode: Audit only (report, change nothing), Audit + Smooth (apply the surface edits), or Smooth + Breaklines (also draw an auto-breakline at contour grade through every span the grid can't reach - the island fix).
- Sensitivity: Conservative / Normal / Aggressive - how much alternation it takes to call a span wavy.
- Amplitude band: wiggles shallower than the floor are invisible; bends deeper than the cap are real landform. Default 0.1-3 ft.
- NNI grid spacing: interpolated-point spacing inside each region (default 5 ft; finer = smoother + heavier).
- Region padding: how far the fix extends past each flagged span before regions merge (default 25 ft).
- Keep clear (protection): no smoothing point within this distance of an existing surface vertex (default 5 ft) - corridor curb/EOP linework is automatically protected.
Watch out for
- Smoothing re-grades the infill between design features - review the movement report before using the surface where hundredths matter, and run earthwork off the pre-smooth surface if the (microscopic) volume delta matters.
- Spans that remain after smoothing usually mean MISSING DATA, not insufficient smoothing - add the breakline the TIN is missing instead of tightening the grid.
- Re-running is always a clean re-run (prior VDC edits come out first); VDCSMOOTHSURF_REMOVE takes everything back out and the surface returns to what its own data builds.
- Regions are captured at run time - after a regrade the old regions are stale. That is exactly what VDCSMOOTHSURF_REFRESH (and VDCREFRESHALL) exist for.
- All output is draft work product - review and approval by a qualified professional required.
Related: Auto-Grade Lots · Surface QC · Refresh All · Ground Thin