Select objects, tick a list of drawing files, and DWGPUSH copies those objects into every one of them and saves them — all without opening a single drawing in the editor.
What DwgPush does
This is the job that otherwise means opening thirty drawings one at a time, pasting to the same coordinates in each, saving and closing. On a revision that adds a new north arrow, a revised legend or an updated general note to a whole drawing set, an afternoon becomes a few seconds.
Objects land in the same layout name they were copied from. Copy from the Model tab and they arrive in Model space; copy from a layout called A-101 and they arrive in the target’s A-101 layout, which is created if it does not exist.
Coordinates are preserved exactly, so anything positioned relative to a title block stays where it belongs.
How to use it
- Test on copies first. See the warning below.
- Load the routine with
APPLOAD, or put it on your support file search path. - Type
DWGPUSH. - Select the source objects. Viewports are excluded — they cannot be meaningfully copied between drawings.
- Tick the target files in the multi-file browser.
- Read the count at the end. It tells you how many did not take.
How it works
The heavy lifting is done by ObjectDBX, a database-only interface that opens a DWG file’s contents in memory with no editor window, no regeneration, no view and no plot settings to reconcile. It is dramatically faster than scripting the real editor, and it cannot disturb the drawing you are working in.
The source objects are packed into a safearray variant, which is the only form vla-CopyObjects accepts. Then for each target: get a document object, find or create the matching layout, copy the objects into that layout’s block, and save.
That last step has an important subtlety. If a target drawing is already open in this AutoCAD session, ObjectDBX must not be used on it — two independent handles on one file will overwrite each other’s changes. The routine builds an index of every open document up front and routes those files through the live document object instead.
The currently active drawing is skipped altogether. Copying objects into the drawing you are copying them from would duplicate them, and the save that follows would commit that duplication without asking.
Notes and limits
- Saving is unconditional and there is no undo across files. Run it on a test copy first if the target set matters.
- Targets open in another AutoCAD session, or held read-only, are reported as failures and skipped. The count at the end tells you how many did not take — read it.
- Viewports cannot be pushed. They are excluded at selection.
- The active drawing is never a target, deliberately.
Download and details
| Name | DwgPush — copy objects into other drawings without opening them |
| Download | DwgPush.lsp — 43.3 KB, plain AutoLISP source. Downloads directly; no zip to unpack. |
| Type | AutoCAD AutoLISP routine |
| Command | DWGPUSH |
| Requires | the ActiveX layer (loaded automatically by the routine with vl-load-com); nothing extra — the dialog is written to a temporary file at run time and deleted again, so there is no .dcl to install. |
| Source size | 43.3 KB, 1,039 lines |
| Error handling | Yes — a *error* handler restores every system variable it changed, on cancel as well as on error. |
| Undo | The whole operation is wrapped in a single undo group, so one U reverses all of it. |
| Compatibility | AutoCAD (any release with AutoLISP), BricsCAD, ZWCAD, GstarCAD, ProgeCAD and other IntelliCAD-based platforms. AutoCAD LT needs a LISP enabler. No .NET, no ObjectARX, no installer. |
| Author | YZ, August 2026 |
| Licence | Free to use, supplied “as is” with no warranty. |
References
- BATCHSCRIPT LISP — run any command across a folder instead of copying objects
- BORROW LISP — pull definitions the other way, from a drawing into yours
- ATTPUSH LISP — write attribute values across a folder
- More free AutoLISP routines on this site
- Wisey’s Steel Shapes — free structural steel section drawing program