Understanding units in AutoCAD

Thursday, May 21, 2026

Unit management is a recurring and often misunderstood topic in AutoCAD. To understand why, you have to remember that AutoCAD is a very old piece of software: its first version dates back to 1982. Originally, it simply didn't support the notion of units. A drawing was just a set of dimensionless coordinates: a length of 1 represented neither a meter nor an inch — it was up to the user to decide on the convention "in their head".

Software designed much later, such as Inventor or Revit, on the contrary builds the notion of units into its very foundations: every value intrinsically carries a physical dimension (mm, inches…), and conversions are handled transparently.

Autodesk gradually added partial unit support to AutoCAD, in successive layers, to address concrete needs (hatch scaling, block insertion between drawings, etc.). The result is that units are handled not by a single, coherent mechanism, but by several distinct notions that come into play at different moments: when the drawing is created, when it is printed, and when blocks are inserted. That's what makes the topic a little confusing. Let's go through it.

Metric or imperial: the choice at creation

When you create a new drawing, you usually start from a template (a .dwt file). AutoCAD ships with two families:

  • acad.dwt: an imperial template (inches);
  • acadiso.dwt: a metric template (millimeters).

You can also do without a template entirely. In the "Select template" dialog, the small drop-down next to the Open button offers two template-free options: "Imperial" (English system) and "Metric".

Open a drawing without a template, using the imperial or metric system

Here again, this choice amounts to setting whether the new drawing is metric or imperial.

This choice doesn't just change the displayed units: above all, it determines which files AutoCAD uses for hatches and linetypes.

  • In imperial, AutoCAD uses acad.pat (hatch patterns) and acad.lin (linetypes).
  • In metric, it uses acadiso.pat and acadiso.lin.

The difference matters: metric patterns are scaled for distances expressed in millimeters, imperial patterns for inches. Loading a "dashed" linetype from the wrong file will produce dashes that are either tiny or gigantic.

The MEASUREMENT variable

It's the MEASUREMENT system variable that drives this behavior, drawing by drawing:

  • 0: imperial, files acad.pat and acad.lin;
  • 1: metric, files acadiso.pat and acadiso.lin.

MEASUREMENT is stored in the drawing (PerDatabase): every DWG therefore has its own value.

There is a sibling variable, MEASUREINIT, which follows the same convention (0 imperial, 1 metric) but is used only to set the default value for a new drawing created from scratch, without a template. It, in turn, is stored in the registry (PerUser).

Layout units

In model space, you draw "full scale": a 5-meter part measures 5 units (regardless of whether those units represent meters, millimeters, or inches — you decide on the convention).

Layouts (paper space) introduce a distinct notion of unit: that of the paper. When you configure a page setup (the PAGESETUP command, or the Page Setup Manager), you tell AutoCAD whether the sheet is measured in millimeters or inches.

This paper unit is independent of the model space unit. It's the one combined with the plot scale to produce the final output. You find it directly in the Plot dialog, in the Plot scale section: the drop-down lets you choose between inches and millimeters.

Choosing the unit (inches or millimeters) in the Plot dialog

For example, a plot scale of "1 mm = 1 unit" on an A3 sheet (420 × 297 mm) does not give the same result as a scale of "1 inch = 1 unit". Choosing the right paper unit is therefore essential for your scales (1:50, 1:100, etc.) to be consistent.

We find the MEASUREMENT variable here too: it's what determines the default paper unit in layouts. With MEASUREMENT set to 0 (imperial), new layouts are configured in inches; at 1 (metric), they are configured in millimeters. The metric or imperial nature of the drawing therefore propagates all the way to paper space.

Block insertion units

This is probably the most subtle part. When you insert a block (or attach an external reference), AutoCAD can automatically scale the content so that its real-world size is preserved, even if the block was drawn in a unit different from the destination drawing.

Three system variables come into play:

  • INSUNITS: the insertion unit of the current drawing. It's the "real" unit that one drawing unit represents.
  • INSUNITSDEFSOURCE: the assumed source unit when the inserted block has an undetermined unit.
  • INSUNITSDEFTARGET: the assumed target unit when the current drawing has an undetermined unit.

INSUNITS accepts a long list of integer values. The most common ones:

Value Unit Value Unit
0 Unitless 5 Centimeters
1 Inches 6 Meters
2 Feet 7 Kilometers
3 Miles 10 Yards
4 Millimeters 14 Decimeters

AutoCAD's logic when inserting is as follows:

  1. It determines the source unit: this is the INSUNITS of the drawing the block comes from. If it is 0 (unitless), it falls back to INSUNITSDEFSOURCE.
  2. It determines the target unit: this is the INSUNITS of the current drawing. If it is 0, it falls back to INSUNITSDEFTARGET.
  3. It computes a scale factor that converts the source unit into the target unit and applies it to the block.

In other words, INSUNITSDEFSOURCE and INSUNITSDEFTARGET serve only as a safety net when one of the units is "unitless". If both your drawings have a correctly set INSUNITS, these two variables don't come into play.

A concrete example: a "1 × 1 square" block

Let's take a very simple block, containing a 1 × 1 square, and see what happens depending on the units.

Preparing the block. In a fresh drawing, set INSUNITS to Meters (6), draw a 1 × 1 square (so a square 1 m on each side in the real world), then make it into a block named Square. The source unit of this block is now "meters".

Inserting into a drawing in millimeters. In another drawing where INSUNITS is Millimeters (4), insert Square. AutoCAD compares the units:

  • source = meters,
  • target = millimeters,
  • scale factor = 1 m / 1 mm = 1000.

The square is inserted at scale 1000: it now measures 1000 × 1000 drawing units, i.e. 1000 mm. The real-world size (1 m) is therefore preserved.

Conversely, the same block inserted into a drawing in inches (1) would be scaled by 1 m / 1 inch ≈ 39.37: the square would be roughly 39.37 × 39.37 inches, which still corresponds to 1 m.

A few cases summarized, for our 1 × 1 square:

Source unit Target unit Applied factor Inserted size
Meters Millimeters 1000 1000 × 1000
Millimeters Meters 0.001 0.001 × 0.001
Inches Millimeters 25.4 25.4 × 25.4
Meters Meters 1 1 × 1

And the "unitless" case? Had we left INSUNITS at 0 (unitless) in the block's drawing, AutoCAD wouldn't have known the square was in meters. This is where INSUNITSDEFSOURCE comes in: by setting it to 6 (meters), you tell AutoCAD which unit to assume by default. Likewise, if the destination drawing is unitless, it's INSUNITSDEFTARGET that provides the assumed target unit.

In summary

  • At creation, the template and MEASUREMENT determine whether the drawing is metric or imperial, and therefore which hatch and linetype files are used.
  • Layouts have their own unit, that of the paper (mm or inches), distinct from model space.
  • On insertion, INSUNITS enables automatic scaling of blocks, with INSUNITSDEFSOURCE and INSUNITSDEFTARGET serving only for "unitless" content.

Setting these variables correctly from the start will save you many surprises: invisible hatches, blocks a thousand times too large, or inconsistent dimensions.


Helping hand Need an AutoCAD (AutoLISP, ObjectARX, .NET, VBA) development? Contact me for a free quote.

On the same topic