Hi everyone,
I’ve been working on a small production tool in AutoLISP/VLISP for AutoCAD / Civil 3D and thought it might be useful to share here for anyone doing a lot of section or profile sheets.
## What problem it solves
On corridor / section jobs we often end up with several paper-space viewports that all need to:
- Use the same scale and twist
- Stay aligned to a centerline / path (alignment, guide polyline, etc.)
- Be re-centered after design changes
The usual manual workflow for us was:
1. Set up one “master” viewport with the correct scale, twist, layers, etc.
2. Copy that viewport across the layout for each station/section.
3. Manually PAN/ZOOM/DVIEW in each viewport to center the correct station along the path.
4. Repeat that pan/zoom step any time the design or alignment changed.
It works, but it’s tedious and easy to make mistakes when you have a lot of sheets.
## What SectionSync LITE does
SectionSync LITE is a compiled VLX that:
- Lets you pick a polyline path (e.g. alignment, section chain, etc.)
- Associates multiple paper-space viewports with positions along that path
- Updates the view center of each viewport so it “follows” the path
- Preserves the existing viewport scale and twist
- Can be re-run after design changes so you don’t have to manually re-pan everything
It was written mainly with Civil 3D section/profile sheets in mind, but it’s just working with standard AutoCAD viewports and a polyline.
## Technical notes
- Written in AutoLISP/Visual LISP and compiled to VLX for distribution.
- Uses vla/vlax functions to read and set viewport center, width/height, and twist.
- Path positions are based on cumulative distance along the selected polyline.
- No reactors or custom objects – it just runs on demand and updates existing VPs.
## Demo + download
Short demo video:
https://youtu.be/l1JRbz4_owQ
Download / more details (there’s a built-in 5-run / 7-day trial so you can test it on a real project):
https://autolispwizard.gumroad.com/l/civabs
If anyone is interested in the implementation details (polyline parameterization, handling UCS and VP twist, etc.) I’m happy to discuss approaches or share pseudo-code for the core parts.