AutoCAD – Drawings

An AutoCAD hatch area lisp: total your floor finishes without double counting

An AutoCAD hatch area lisp that totals hatched regions for finishes take-off, plus the trap that quietly doubles the figure. Free download with source.

  • TS. Đỗ Quốc Hoàng
  • 8 min read
The command line after sweeping the whole drawing: seven shapes counted where only three hatches exist, so the total doubles Photo: AutoCAD 2027

Taking off floor finishes, you hatch each room and then need the total. An AutoCAD hatch area lisp does that in one command instead of clicking each patch and adding the figures by hand.

There is a trap that nearly doubles that figure, and no prompt warns you about it. This article names the trap first and gets to the file second. For the whole discipline of taking quantities off a drawing, the Institute runs an AutoCAD course for construction.

The hatch area property is trustworthy, and here is why

A hatch is not decoration drawn on top. It is an object carrying an Area property, and that figure is the real area of what was filled.

Three shapes built to known dimensions, then read back:

Shape filledCorrect areaReported
Rectangle 600 × 400240,000240,000
Rectangle 500 × 300150,000150,000
Circle, radius 200125,663.706125,663.706
Rectangle 600 × 400 with a 100 × 100 hole230,000230,000

The last row is the one that matters. A hatch with a hole in it reports 230,000, not 240,000 — the hole is already deducted. Autodesk calls enclosed regions inside a boundary islands, and states: "Enclosed areas or text objects inside hatch boundaries are treated as islands."

That is why a hatch beats measuring the outer boundary and subtracting by hand. Columns, risers and lift shafts sitting inside a slab come off automatically, with nobody having to remember them.

One caveat about hatch islands is worth knowing before you trust the figure. AutoCAD carries three island styles, chosen when the hatch is made rather than when you read it. The same rectangle with the same hole, hatched three times:

Island styleArea reported
Normal230,000 — hole deducted
Outer230,000 — hole deducted
Ignore240,000 — hole not deducted

Under Ignore the fill runs straight over the hole, so the hole counts as floor. Two of the three styles behave the way a quantity surveyor expects and one does not. Where a slab area looks suspiciously round, select the hatch, run HATCHEDIT, and check which style it carries.

The trap that doubles your total hatch area in autocad

This part is worth reading carefully, because it corrupts quantities rather than just a displayed number.

When you hatch an area, the boundary is still there. If that boundary is a closed polyline, it is also a shape with an area. A routine that sweeps the whole drawing adds both: the hatch and its own boundary.

The same drawing, holding exactly three hatches, gives two very different answers:

How the selection is madeShapes countedTotal
Sweep the whole drawing71.260 m²
Filter to hatches only30.620 m²
The report reads seven shapes counted, while the drawing holds only three hatches — the other four are boundaries Photo: AutoCAD 2027

Seven is three hatches plus four closed boundaries, the hole's boundary included. The figure 1.260 m² is not bad arithmetic; it answers a different question from the one you meant to ask.

The rule that follows is simple: to sum hatch areas for a finishes take-off, filter to hatches first and never sweep the drawing.

The Institute's file: six commands

Download DT-IIC.LSPload it with APPLOAD, or take the whole set from our article on an AutoCAD LISP library.
CommandWhat it does
TDTSelect objects and sum the area of closed shapes, hatches included
TDTXSum every closed shape in the drawing, with no selection
TDTPNet covered area: overlaps counted once
TDTPXNet covered area for the whole drawing
GDTSelect shapes and write the figure inside each one
GDTXWrite the figure into every closed shape in the drawing

For floor finishes, use TDT and select only the hatches. The quickest way: type QSELECT, set Object type to Hatch, accept, and the whole drawing narrows to hatches; then call TDT and press Enter.

The command prints four lines: what unit it believes the drawing uses, how many shapes it counted, how many it skipped as not closed, and the total. The count line is where you catch the trap — if it exceeds the number of hatches you know you have, you are adding boundaries too. That count line is the one feature to look for in an autocad hatch area lisp of any origin; without it you have a total and no way to tell whether it is the total you wanted.

Measuring area in autocad without any lisp at all

If you need the figure once, measuring area in autocad needs no external file.

Select one hatch and open Properties with Ctrl+1. The Area box shows its area. Select several and the box reads *VARIES*, but the line directly beneath it, Cumulative Area, has already added them up.

Three actions, with no foreign code running on your machine. That is enough for a few rooms.

The lisp wins on three counts: it adds shapes that are not hatches in the same pass, TDTP removes overlap, and GDT writes the figure onto the drawing so whoever reads the set can see it. Other ways of measuring — AREA, MEASUREGEOM, regions — are covered in our article on area in AutoCAD.

A downloaded area lisp: three things to read first

People often search by the exact filename somebody once sent them. Filenames differ everywhere, but the three things to check in a downloaded area lisp are always the same.

One — does it filter to hatches? A file calling ssget with no filter adds everything your window touches, and you land straight back in the double-counting trap.

Two — how does it handle overlaps? Two hatches lying on top of one another have the shared part counted twice, unless the file converts shapes to regions and unions them first. Hatches cannot become regions, so any file promising a "net" area for hatches deserves a small test before you trust it.

Three — what does it assume about units? A file dividing by 1,000,000 assumes the drawing is in millimetres. Draw in metres and the figure is out by a factor of a million.

A .lsp file is plain text, so all three answers are visible in Notepad. Ten minutes of reading is cheaper than one wrong schedule.

One hatch object can cover many rooms

There is a detail that makes counting hatches harder than it looks. Autodesk's page on working with hatches states: "By default, when you apply a hatch to multiple areas within one command, the result is a single hatch object."

Run HATCH once and pick eight rooms, and you get one object, not eight. Its Area is the total of all eight.

The practical consequence: counting hatch objects tells you nothing about the number of rooms. To split them for a schedule, use HATCHEDIT to separate, or hatch each room in its own command. If you only want the total for a take-off, having them joined is simply tidier.

Drawing units decide whether the figure reads in m² or mm²

Construction drawings in Vietnam are drawn in millimetres almost without exception, so a 30 m² slab has an area of 30,000,000 square units. Nobody can read that.

The Institute's command reads the INSUNITS variable to learn what the drawing declares, then converts. When the drawing declares nothing, it says on the prompt line that it is assuming millimetres, so you can check. This is exactly where a routine goes quietly wrong: a file that says nothing about units leaves you guessing what it just divided by.

To declare units, type UNITS and set Insertion scale to Millimeters.

Three things often repeated that are not true

Often repeatedWhat was measured
A hatch area includes the holes in itHoles are deducted: 600×400 with a 100×100 hole reports 230,000
Sweeping the whole drawing is quickerIt adds the boundaries too; the example above doubles
Each hatched room is its own objectOne command over many areas makes a single object

Frequently asked questions

Which AutoCAD releases does this hatch area lisp run on?

It is standard AutoLISP with ActiveX, so any release with Visual LISP. This set is checked on AutoCAD 2027.

I selected everything and the total came out double. Why?

Because the closed boundaries of the hatches were added as well. Use QSELECT with Object type set to Hatch, then total again.

What happens when two hatches overlap?

The shared part is counted twice. For ordinary shapes TDTP removes the overlap, but hatches cannot become regions, so the command says so plainly rather than returning a wrong figure.

If I delete the boundary, does the hatch still have an area?

Yes. The area belongs to the hatch object itself. Deleting the boundary only breaks associativity.

How do I write the areas onto the drawing for someone else to read?

Use GDT, select the shapes, and the figure is written inside each one. GDTX does the whole drawing.

What unit does the figure come back in?

It converts to square metres and prints the unit with it. If the drawing has no INSUNITS set, the command says it is assuming millimetres.

About the author

TS. Đỗ Quốc Hoàng — Vice Director of the Institute of Information Technology in Civil Engineering, Hanoi University of Civil Engineering, and a specialist in software development for construction