EchoCad

Features

The free edition makes a drawing visible in QGIS — one drawing at a time. Pro turns a whole folder of them into data you can query and analyse.

FeatureFreePro
Layers, colours, line types, hatches, textyesyes
How many drawings per runone, by handa whole folder
Drawing text turned into shape attributesyes
Batch conversion with a CSV reportyes
Open polylines closed into polygonsyes
Georeferencing from two reference pointsyes
Elevations (Z) keptyes
Mapping profilesyes
Block attributes as fieldsyes
Runs from the Processing toolbox / modelsyes
Getting the converterone buttonbundled — no internet

0. What both editions do — reading the drawing

This part is the same code in both editions. Nothing is held back to make the free edition worse: a drawing that opens correctly in Pro opens correctly free.

  • One QGIS layer per CAD layer, split by geometry type
  • Entity colour, line type (solid / dashed / dash-dot) and line width kept
  • Text placed at its original size, rotation and colour
  • Hatch patterns rebuilt from the drawing’s own definitions — not flattened to a solid blob
  • Korean, Japanese and Chinese text read correctly whatever the drawing’s encoding says
  • Optional GeoPackage output, and the coordinate system taken from your project
  • Failures say why — unsupported format, empty drawing and timeout are told apart

The difference is how much of it you can do at once, and what you get back. Free is one drawing per run, through the import window, by hand, with no limit on how many. What Pro adds is below.

1. Block attributes as queryable fields

Most of the information in a drawing is not in the lines. It is in block attributes (ATTRIB): manhole numbers, pipe diameters, asset codes, parcel numbers. QGIS’s own importer does not bring 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.

  • cad_layer and block_name come first, then the tag fields
  • Tags a block does not carry are left NULL, so blocks with different tag sets still land in one layer
  • The original tag name is kept as the QGIS field alias, so a normalised field name loses nothing

Below is a room-information layer actually extracted from a public sample (a Swiss facility-management drawing), opened in the QGIS attribute table. 85 room-stamp blocks in the drawing became 85 rows with fields.

The QGIS attribute table showing columns cad_layer, block_name, FLAECHE, RAUMBEZ and RNR2 with room areas and names.
The real QGIS attribute table. Area, room name and room number each became a column.
block_nameFLAECHERAUMBEZRNR2BWD
bbl-raumstempel11.58Treppe2011.DM.04.001VBeton gestrichenBeton gestrichenBeton gestrichen
bbl-raumstempel1.78Steigzone2011.DM.04.003F
bbl-raumstempel10.11Warenlift2011.DM.04.004VHolzMetallHolz
bbl-raumstempel10.11Warenlift2011.DM.04.005VHolzMetallHolz

Sum the areas (FLAECHE), classify by room name (RAUMBEZ), join to your register on the room number (RNR2). The door layer of the same drawing produced 16 fields including fire rating, acoustic rating and size. In the free edition this table does not exist at all.

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 rule that matches wins, so order is priority.

{
  "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" }
}
The QGIS layer panel after importing without a mapping profile: 23 layers with raw CAD names.
Before — 23 layers with the raw CAD names
The QGIS layer panel after applying a mapping profile: 11 layers grouped into building, services, room and drawing furniture.
After — grouped into 11

Same drawing. Seven rules turned 23 layers into 10. The Defpoints at the top matched no rule: it keeps its original name and is listed as unmatched, so you know immediately whether something was left out.

  • Several CAD layers merge into one output layer
  • geometry fixes the geometry type, or auto splits as the drawing does
  • {cad_layer} is replaced by the original layer name
  • One JSON file, so a team can share it and keep it in git

You do not have to write the rules from scratch. Create example… in the dialog writes the file above, and you edit it in any text editor.

3. Batch folder conversion with a per-file report

Drawings usually arrive by the folder, not one at a time. The free edition converts one drawing per run — open the window, pick the file, pick the coordinate system, import, repeat. That is fine for one drawing and 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, so you can see later what failed and why
  • The mapping profile and coordinate system apply to the whole run
  • It runs as a Processing algorithm, so it goes into a model or a script and can be re-run on next month’s delivery unchanged
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",
})

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.

filestatusnotelayersfeaturessec
facility-2011-dm-a04.dwgok427,1728.8
cafm-plan-de.dwgokDropped 1 features with broken coordinates233,5173.9
fire-station.dwgok133,6212.2
floorplan-elevation.dwgok191,1114.0
building-a-floor0.dwgok183272.3
site-survey-3.dwgunsupportedFormat AC1012. Only R14 and newer are supported.000.0
tourist-home.dwgokDropped 5 features with broken coordinates3417,4966.6

Features dropped for broken coordinates are counted too. Drop them silently and nobody can explain the missing count later.

The free edition registers no Processing algorithms at all. Everything there goes through the import window, one drawing at a time.

4. Converter bundled — works on an isolated network

The free edition gets its converter with a single Set up automatically button too — but only where there is internet. The converter (LibreDWG) is GPL-3, so it cannot ship inside the free edition.

Pro carries the Windows and macOS builds. 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 free edition converter setup window, with buttons to open the download page, copy the instructions and browse for the path.
The free edition goes through this window once. Pro does not have this step.

Corresponding source for the bundled converter is pointed to in bin/SOURCE.md, as GPL-3 requires.

Next

See the price Documentation