DWG drawings in QGIS,
still readable
CAD layers, colours, line types, line widths, hatch patterns and text come across. Everything runs on your machine — drawings are never uploaded anywhere.
What Pro adds Install the free edition
There are two editions
The free edition makes a drawing visible in QGIS — one at a time, with no limit on how many. Pro turns a whole folder of them into data you can query and analyse. The part that reads the drawing is the same code in both — nothing is held back to make the free edition worse.
| Feature | Free | Pro |
|---|---|---|
| Import, colours, line types, hatches, text | yes | yes |
| How many drawings per run | one, by hand | a whole folder |
| Block attributes (ATTRIB) as queryable fields | — | yes |
| Mapping profiles — merge many CAD layers into one feature class | — | yes |
| Batch conversion with a per-file CSV report | — | yes |
| Runs from the Processing toolbox and models | — | yes |
| Drawing text turned into shape attributes | — | yes |
| Open polylines closed into polygons | — | yes |
| Georeferencing from two reference points | — | yes |
| Elevations (Z) kept | — | yes |
| Converter bundled — works the moment you install it | you obtain it | bundled |
Free — the drawing, visible in QGIS
Plugins → EchoCad → Import DWG opens a window. Pick the drawing, check the coordinate system, import. That is one drawing done. There is no limit on how many drawings, and no time limit.
- One QGIS layer per CAD layer, split into point, line and polygon, so you can style each one instead of fighting a single mixed layer
- Entity colour, line type (solid / dashed / dash-dot) and line width kept, so the distinctions the drawing already made are still visible in QGIS
- Text placed at its original size, rotation and colour — title block, notes and dimension text stay where they belong
- Hatch patterns rebuilt from the drawing’s own definitions. Angle, spacing and dash pattern are read out of the drawing, not flattened to a solid blob
- CJK text does not turn to mojibake. The encoding is decided from the actual bytes, not from what the header claims, so drawings with a wrong declaration still read
- The coordinate system comes from your project, so a drawing lands on top of the data you are already working with. Change it in the window whenever you want
- Optional GeoPackage output. Without it the layers are in memory and go away when you close QGIS
- Failures say why — unsupported format (R13 and older), empty drawing and timeout are told apart
The free edition needs the converter (LibreDWG dwg2dxf) obtained and pointed at
once. It is GPL-3, so it cannot ship inside the free edition. How to get it is in the
documentation.
Pro — the drawing, as data
Not geometry conversion — moving the drawing’s meaning into a GIS schema. That is the part QGIS’s own importer has not done for two years.
The free edition already shows you as many drawings as you like. What Pro changes is what happens next: it pulls the values written in the drawing out into fields, folds inconsistent layer names into your own schema, turns lines into polygons and drawing coordinates into real ones, and repeats all of it across a whole folder. Set it up once and next month’s delivery runs the same way. Every number below was measured on real drawings.
1. Block attributes (ATTRIB) as queryable fields
Most of the information in a drawing is not in the lines. It is in the block attributes: manhole numbers, pipe diameters, asset codes, parcel numbers. Neither the free edition nor QGIS’s own importer brings these across. The drawing opens; the attributes are gone.
Pro builds one block-reference point layer per CAD layer and spreads every attribute tag found there into a field. The original tag name is kept as the QGIS field alias, so a normalised field name loses nothing.
2. Mapping profiles — CAD layers onto your schema
A hundred drawings arrive with a hundred layer namings. A-WALL-EXST,
A-WALL-NEW and A-WALL-2F are all the same building wall,
but QGIS receives three layers.
A profile is a list of glob-pattern rules. The first match wins, so order is priority. A layer that matches nothing keeps its original name and is listed as unmatched, so you know at once whether something was left out. One JSON file, so a team can share it and keep it in git.
{
"version": 1,
"name": "example",
"rules": [
{ "match": "A-WALL-*", "layer_name": "building_wall", "geometry": "polygon" },
{ "match": "*-TEXT", "layer_name": "annotation", "geometry": "point" }
],
"default": { "layer_name": "{cad_layer}", "geometry": "auto" }
}
3. Batch folder conversion with a per-file report
Drawings arrive by the folder, not one at a time. The free edition does one per run: open the window, pick the file, pick the coordinate system, import, repeat. Fine for one drawing, unusable for eighty.
- Point it at a folder and every DWG inside is converted. Subfolders optional
- One file failing does not stop the rest. It does not halt half way
- Per-file results go into a CSV report
- The mapping profile and coordinate system apply to the whole run
Below is a real report from one run over a folder of nine drawings. One of them was an R13 file. The run did not stop there, and what failed and why is on the record.
| file | status | note | layers | features | sec |
|---|---|---|---|---|---|
| facility-2011-dm-a04.dwg | ok | 42 | 7,172 | 8.8 | |
| cafm-plan-de.dwg | ok | Dropped 1 features with broken coordinates | 23 | 3,517 | 3.9 |
| fire-station.dwg | ok | 13 | 3,621 | 2.2 | |
| floorplan-elevation.dwg | ok | 19 | 1,111 | 4.0 | |
| building-a-floor0.dwg | ok | 18 | 327 | 2.3 | |
| site-survey-3.dwg | unsupported | Format AC1012. Only R14 and newer are supported. | 0 | 0 | 0.0 |
| tourist-home.dwg | ok | Dropped 5 features with broken coordinates | 34 | 17,496 | 6.6 |
Features dropped for broken coordinates are counted too. Drop them silently and nobody can explain the missing count later.
4. Runs from the Processing toolbox
Pro registers two algorithms under
Processing Toolbox → EchoCad → DWG —
Import DWG and Batch import DWG. You can call them without
opening a window at all.
import processing
processing.run("echocad:batchimportdwg", {
"INPUT_FOLDER": "D:/deliveries/2026-03/dwg",
"RECURSIVE": True,
"CRS": "EPSG:5186",
"PROFILE": "D:/office/office-schema.json",
"EXTRACT_ATTRIBS": True,
"OUTPUT": "D:/work/gpkg",
"REPORT": "D:/work/report.csv",
})
So it drops into the model builder, and you can chain a buffer, a join and an export straight after the conversion and run the lot in one go. If deliveries arrive in the same shape every month, this is where the time actually goes. The free edition registers no algorithms at all — everything there goes through the import window, by hand.
5. Drawing text turned into shape attributes
Site drawings write their information as plain text, not as block attributes. Across our sample, nine real working drawings held zero block attributes and 3,558 texts. Received as free-floating labels, none of that can be queried or joined.
Pro finds one owner shape for each text and writes it into a
label field. A text inside a polygon belongs to that polygon; outside one it goes
to the nearest shape within a tolerance. The tolerance is worked out from the drawing’s
own size — units and scale differ per drawing, so a fixed value would attach everything
in one drawing and nothing in the next.
Measured on nine real drawings — 4,340 of 5,640 texts (77%) found a shape. Piping isometrics run around 99%; one site plan came in at 32%, which is correct because title-block and legend text should not attach to anything.
6. Open polylines closed into polygons
In CAD it is enough that a shape looks closed, so the last vertex is often a few millimetres off the first. GIS then receives a line, and you cannot compute an area or ask what is inside it. In our sample, 528 of 531 polylines in the real drawings were open.
Give a tolerance and anything within it is closed into a polygon. The original lines are left in place — a wrong tolerance would otherwise delete linework you needed, so the polygons are added on top and you can adjust and re-run. It is never on by default: closing a pipe run or a dimension line produces garbage.
Measured on nine real drawings (tolerance 1.0) — 1,986 polygons created. Because polygons are built before text is attached, the text hit rate rose from 74% to 77%.
7. Georeferencing from two reference points
Drawing near the origin is the CAD norm: 17 of 20 public sample drawings were in local coordinates. Dropped into QGIS as they are, they land nowhere near the site.
Give two points read off the drawing and their real-world coordinates, and Pro solves shift, rotation and scale in one step. Scale is applied equally to x and y: allowing shear would let a single mistyped digit skew the whole drawing silently. A wrong entry is better refused than quietly distorted.
Measured on a sample drawing — reference point error 0.000000000, width preserved at 14,382.7736, all 11,831 features moved.
8. Elevations (Z) kept
In drawings such as piping isometrics, height is half the information. Flattened to 2D you can no longer tell which level a run passes through.
Turn the option on and the layers come across as 2.5D with the height on every vertex. Where 2D features are mixed in, they are given a height of zero and kept in the same layer — better than splitting one CAD layer into two.
Measured on nine real drawings — all nine came through as 3D layers, with 1,757 to 27,330 distinct elevations in the piping isometrics. Previously every one of them was flattened to zero.
9. Converter bundled
Pro carries the Windows and macOS converters. Install it and it works. On macOS the execute permission and the quarantine flag are handled for you, so there is no reason to open a terminal. The setup step the free edition goes through once does not exist in Pro.
Pro installs as a separate plugin (echocad_pro), so it never collides with the
free edition and updates never overwrite each other. It never needs the internet, so it works
on an isolated network. More screens and examples are on the
features page.
Price
The first year of updates is included. After that, updates renew at $149 a year. It is not a subscription — the version you have keeps working whether or not you renew.
Check the free edition on your own drawings first. See whether this tool reads what you actually work with — how the layers come apart, whether the text survives, whether the hatches are rebuilt. If you then need block attributes, mapping profiles and batch conversion on top of that, that is Pro.
What you need
- QGIS 3.34 LTR or newer — checked on 3.44 and 4.x too
- Windows or macOS
- DWG R14 or newer. R13 and older are refused up front with a message
The interface follows your QGIS language. Ten are included: English, German, Spanish, French, Italian, Japanese, Korean, Polish, Portuguese and Chinese.