CivilLegendManager

AutoLisp · Civil CAD · 2019–present

Legend Manager

A growing suite of AutoLisp routines for civil designers who are tired of rebuilding the same legends, labels, and linework by hand. One command where there used to be forty clicks.

Built for AutoCAD · BricsCAD · ZWCAD · Free to try, MIT-licensed core

Who builds this

I'm a civil CAD designer who got tired of the same drafting chore every single project: the legend. The one that has to match the sheet, match the layer standard, and get redrawn when the client changes a pipe size. So I started writing AutoLisp to do it for me.

Legend Manager is the result — a collection of routines I use daily on real road, drainage, and site plans, now packaged so other designers can drop them straight into their own workflow.

What it does

  • Generates legends from the drawing's actual layer table — no retyping.
  • Builds match-line, north-arrow, and title-block labels in one pass.
  • Batch-updates text styles, heights, and layer assignments across a sheet set.
  • Cleans duplicate entities and orphaned layers before you plot.

Why AutoLisp

Because it ships inside the drawing. No external app, no plugin store, no subscription. The routines live in a single .lsp file you APPLOAD and forget about — they're just there, in every session, on every machine that opens your drawings.

"The legend used to take me an afternoon. Now it's one command and a coffee."

— a drainage designer, on the match-line routine

Current build

v2.4 of the core suite is in testing — the new LegendSync routine keeps legends in step with layer renames across a whole sheet set. Roadmap: a pipe-run labeler that reads alignment geometry directly.

The routines

Each one solves a specific drafting pain. Load the whole suite, or cherry-pick the ones you need.

LM-LEGEND

Builds a legend from the layer table in the active drawing. Sorts by layer, pulls linetype and colour, and lays it out at your chosen scale — no retyping, no drift.

Core

LM-MATCHLINE

Draws a match line with the sheet reference, north arrow, and "CONTINUED ON SHEET" label in a single command. Handles the sheet-numbering logic for you.

Core

LM-TEXTFIX

Scans a selection for text height, style, and layer mismatches against your standard, and fixes them in one pass. The pre-plot sanity check you forgot you needed.

Utility

LM-CLEAN

Deletes duplicate entities, merges overlapping lines, and purges orphaned layers and blocks. Runs quietly in the background while you keep drafting.

Utility

LM-LEGENDSYNC

New in v2.4. Keeps every legend in a sheet set in step with layer renames — rename once, all legends update. Currently in testing.

Beta

LM-PIPELABEL

Labels pipe runs from alignment geometry — size, material, invert level — placed and rotated to the run. On the roadmap for the next release.

Roadmap

Selected work

Drag the band sideways. Each card is a real project the routines were built against.

Rural road realignment

Match lines and sheet references across a 14-sheet plan set. LM-MATCHLINE cut the layout time from a day to an afternoon.

Road · 14 sheets

Storm drainage network

Pipe labels and legend sync across a 40-inlet network. LM-LEGEND kept the legend honest as layers got renamed mid-project.

Drainage · 40 inlets

Site grading plan

Spot elevations and a clean legend from a messy inherited file. LM-CLEAN purged 600 orphaned layers before plotting.

Site · inherited file

Utility corridor

Text style standardisation across a multi-discipline set. LM-TEXTFIX normalised heights and styles in one pass.

Utilities · multi-discipline

Intersection upgrade

Match lines, north arrows, and legend from the layer table — the full suite working together on a tight deadline.

Road · tight deadline

From the drafting desk

Short notes on the routines, the CAD life, and what's next.

Why legends are the perfect first routine

Every civil project has one, nobody enjoys building it, and it's almost pure data transformation — layer table in, clean legend out. It's the ideal thing to automate first because it's boring enough that you'll never want to do it by hand again.

APPLOAD once, forget forever

The whole point of AutoLisp is that it lives inside the drawing. I keep the suite in one file, load it at startup, and never think about it again. That's the bar every routine has to clear — if it's more effort to run than to do by hand, it's not worth shipping.

What LegendSync is solving

Rename a layer in a 20-sheet set and every legend quietly goes stale. LegendSync watches the layer table and updates all legends in the set at once. It's the routine I wish I'd had three years ago.

Get the routines

The core suite is free to try. Send a note and I'll point you to the download and the docs.