Creates and renumbers L#/C# line and curve tag labels: the tags line/curve tables read; the tag letters are configurable for other conventions (LN12, CU-3, T4), from one dialog, with the start numbers where you can see them instead of the buried Toolspace > Settings > Table Tag Numbering values. The tags stay genuine Civil 3D tag labels: creation goes through Civil 3D's own segment-label API with real tag-mode styles, every renumber through its own renumber engine, and everything is verified against what the label actually displays. Tables follow automatically; nothing is ever swapped for plain text.
Boundary
Start corner (POB)
Walk direction / verified
Old → new tag
What it does, per run
- Dialog first, dialog last: the mode (dropdown, no command-line keywords), the Create style/layer choices, next L#, next C#, and increment all live in the dialog; every run ends with a summary dialog. Lines and curves count independently and the counters persist, so the next run continues the sequence.
- Create: select the lines / arcs / polylines / parcel segments to tag (optionally restricted to one source layer), each gets a tag at its midpoint (a polyline: one per line/arc segment) with the chosen tag-mode styles, on the label layer you name (auto-created), numbered from your counters. Skip already-tagged (default on) keeps re-runs additive. The style dropdowns list only styles whose Display Mode is TAG, tag-ness lives on the STYLE, and flipping a shared style would flip every label using it, so the tool never does.
- Pick: click tags in the order you want; each click assigns the next number for that tag's kind with a
L7 → L1tally and aNext: L2 / C1prompt. Failed assignments never advance the counter. - Boundary: pick a polyline OR a parcel (area label or boundary line both resolve to the ring); every tag anchored on it renumbers in one pass from the start corner in your chosen direction. Prints the resolved boundary + funnel: labels → readable tags → on the boundary.
- Duplicates: the first holder of each number keeps it; extras move to the next free numbers. Unique tags untouched.
How & why (the API gap)
- No API reads or writes a tag number (verified across .NET / COM / Dynamo), so the tool drives Civil 3D's own renumber engine: writes the drawing's renumbering counters, feeds the native command one label at a time, and verifies each result from the label's drawn output.
- Works on general segment AND parcel segment tag labels; a label not displaying a bare
L#/C#is skipped and counted. - Tags remain real Civil 3D tag labels, line/curve tables update themselves; Clear/undo story is plain AutoCAD undo.
- Settings: env
VDC_TAGRENUMBER_SETTINGS, default%APPDATA%\VDC\TagRenumber\settings.json. - Ribbon: VDC Survey tab → Boundary + Plats → Tag Labels.
Dialog

VDCTAGLABELSWhen to use it
- Tagging a plat boundary from scratch - no tags yet - then cutting the line/curve table.
- Before cutting the line/curve table, so L1 starts at the POB and runs clean around the boundary.
- After edits scrambled the tag order or left duplicate numbers.
- When the built-in Add Labels + Renumber Tags workflow costs too many clicks.
How to run it
- Run VDCTAGLABELS - the dialog opens with everything: the mode dropdown (Create / Pick / Boundary / Duplicates), the Create style + layer choices, the tag letters, next L number, next C number, and increment (all persist between runs).
- Create mode: select the lines/curves/parcel segments to tag (window or picks) - each gets a numbered tag at its midpoint; a polyline gets one per line/arc segment.
- Pick mode: click tags in order - each click assigns the next number and prints L7 -> L1 style feedback. ESC ends.
- Boundary mode: pick the boundary (a polyline OR a parcel - the area label or boundary line both work), the start corner, and the direction - every tag on it renumbers in one pass.
- Duplicates mode: nothing to pick; extra holders of a duplicated number move to the next free numbers.
- Read the summary dialog at the end - created / renumbered / failed counts and the next saved numbers.
Options
- LINE / CURVE tag label style: Create mode - the styles new tags are placed with. The dropdowns list only styles whose Display Mode is TAG (a tag IS a label whose style displays tag mode - there is no per-label switch). Empty lists = set a style's Display Mode to Tag in the Label Style Composer once.
- Only tag entities on layer: Create mode - window-select everything and still tag just the boundary layer; blank = every selected entity.
- Layer for new tag labels: Create mode - where created tags land (auto-created if missing); blank = wherever the style puts them.
- Skip already-tagged: Create mode, default on - re-running over the same window adds only what's missing, never a doubled tag.
- LINE / CURVE tag letters: default L / C; editable for styles that display other prefixes (LN12, CU-3, T4 - up to three letters each, and the two must differ). The letter comes from the label style - the tool reads it to tell lines from curves; this tool assigns numbers, never letters.
- Next L# / next C#: lines and curves count independently, matching how the table tags work; after a run the counters persist where they ended, so the next session continues the sequence.
- Increment: counter step, normally 1.
- Anchor tolerance: Boundary mode only - a tag joins the walk when its anchor sits this close to the picked boundary (default 1 unit; anchors sit on the labeled segment).
Watch out for
- Create numbers come from Civil's own creation counters - if a number is already allocated somewhere in the drawing the engine skips to the next free one (its no-duplicates behavior); the summary reports what was actually assigned. Renumber afterward if the order matters.
- A label that does not display a bare tag with the configured letters (not in tag display mode, a custom style format, or different letters than the dialog) is skipped and counted - the funnel line prints the letters searched for.
- Every assignment is verified after the fact; a FAILED line means Civil's engine rejected the scripted input on that drawing and that tag is unchanged - report it.
- Boundary mode orders by the tag's anchor point along the picked polyline - if a tag was dragged far from its segment, its anchor (not the dragged text) is what's measured.
Related: Deed Table · Adjoiner Tags · Plat QC