Land Desktop Text and Dimension Styles
When placing text and dimensions in modelspace in AutoCAD, there is a constant issue
of what size the text should be. Standard AutoCAD users often have little
tables pinned next to their workstations, containing the heights of various text
sizes at various scales. Or maybe the user creates tons of Text and Dimension
Styles, one for each size of text at each likely Drawing Scale, creating an absolute
nightmare of styles. Land Desktop users have things slightly better, in that
Land Desktop provides some support for automatically calculating the correct heights
for text. Unfortunately, the "help" it provides is not exactly as
"helpful" as it could be, and sometimes it is even "too helpful".
Getting the desired results can be very tricky.
Before we start, we should note that there are a myriad of ways to work with Autocad.
The following article describes only one way of using Text and Dimension styles,
but it is a way that works particularly well for Civil drawings and also manages
to (mostly) avoid the pitfalls and "gotchas" in Land Desktop.
The instructions herein make the following assumptions:
- Drawings are in Imperial units, with 1 modelspace unit = 1 foot;
- Drawings are plotted from paperspace, with 1 paperspace unit = 1 inch on the drawing;
- Text and Dimensions are placed primarily in modelspace, but can also be placed in
paperspace;
- Text may be placed in modelspace in Details that are scaled differently from the
Main View.
Many of the principles explained herein will work in other methodologies, but the
details will differ. For example, working in Metric drawings is much the same
as the process described herein, although details will vary since a typical Metric
Civil drawing uses 1 modelspace unit = 1 meter, and 1 paperspace unit = 1 centimeter.
A note on dimensioning...
There is a long-standing debate over whether Dimensions and Text should be placed
in modelspace or paperspace, with one school of thought saying that all dimensions
and text should be placed in paperspace. This debate is outside the scope
of this article. But for a number of reasons I won't go into here, we find
placing all dimensions and text in paperspace to be a poor solution, at least for
the type of work we do. The problems are compounded by the fact that there
are various Land Desktop commands (such as Static Labels, Dynamic Labels, and Label
Line/Curve By Points, etc.) that do not work (or do not work correctly) in paperspace.
Therefore, this article assumes that the user desires to do most dimensioning and
labeling in modelspace, with occasional dimensions and labels placed in paperspace.
The "Drawing Scale"
Placing text in paperspace is relatively simple, assuming the page is to be plotted
at a 1:1 scale (1 paperspace unit = 1 inch on the plotted sheet). By creating
a Text Style with Height = 0, the user can simply specify the Height of the text.
A piece of text with Height=0.10 would be plotted 0.10 inches tall on paper.
Text in modelspace is a bit more problematic. In order to have AutoCAD automatically
calculate the correct height, we need to tell it what sort of scale factor will
be used in the paperspace viewport. And that means we need to know what the
Scale of the final plotted drawing will be.
The first step in determining the drawing scale is to get the basic linework into
the drawing in modelspace. This linework may be created directly in the drawing,
or it may be XREF'd in from another drawing. Once the linework is in the drawing,
switch to paperspace and create a layout of the correct size (e.g., 24"x36").
If the layout is to have a title block, place the title block in the layout.
Then pan and zoom the viewport so that it displays the correct linework at the correct
scale. This determines the "Drawing Scale". For example, if
you zoom the viewport so that 1 paperspace unit (1 inch) = 40 modelspace units (40
feet), then the Drawing Scale would be "1 inch = 40 feet".
Once you determine the Drawing Scale, set it in the Drawing Setup, on the Scale
tab. You can get to Drawing Setup through the Projects menu. It is critical
that you configure the Drawing Scale before you place any text or dimensions.
Land Desktop's concept of "Drawing Scale" is somewhat limited. With
one key exception that we'll discuss later, Land Desktop doesn't really pay any
attention to this setting. However, when you change this setting, Land
Desktop will change a series of other settings that actually do have an effect.
Most people tend to think of the Drawing Scale as a "property" of the
drawing. As a result, most people will set this Drawing Scale at the very
beginning of working with a drawing, and then leave it there. But it's probably
more-correct to think of the Drawing Scale as a type of "quick-set wizard".
Changing the Drawing Scale is really just a shortcut, a "quick and easy"
way to adjust a variety of settings.
For the most part, Land Desktop doesn't really use the Drawing Scale directly.
(There are two major exceptions: the Drawing Scale is used when loading Text Style
Sets, and Land Desktop also uses the Drawing Scale to auto-generate DIMSCALE overrides.
We'll explore these two topics in detail in a moment.) It almost seems like
Autodesk might have originally intended the Drawing Scale to be a more-useful concept
than it currently is, but then something got lost somewhere between design and implementation.
As a result, when the user changes the Drawing Scale in the Drawing Setup, Land
Desktop basically only performs the following tasks:
- The "Height" stored in all Text Styles is adjusted (styles with Height=0 are not
affected).
- The Global Linetype Scale (LTSCALE) is set to the selected Drawing Scale.
- A number of (often unwanted) Dimension Overrides may be applied to the current Dimstyle.
The first item in this list is the useful one. The second item can be useful,
but can also be unwanted. The last item in the list is basically worthless
and can actually cause problems, for reasons we'll see later. This means that
the only really useful effect of changing the Drawing Scale in Drawing Setup is
that it causes Land Desktop to go through all the Text Styles, automatically adjusting
the Heights to the correct values for the new Drawing Scale. But in order
to fully understand what happens, we first need to take a closer look at Text Styles.
Defining and Using Text Styles
With AutoCAD, the standard method of managing text styles is to create them directly
in the Drawing Template, using the Text Style editor. This way, the text styles
appear by default in every new AutoCAD drawing created. If a Text Style gets
purged, the user can browse to the Drawing Template using Design Center, find the
Text Style, and drag'n'drop it into the current drawing. It's possible to
perform this same task in Land Desktop, but for reasons we'll see later, it only
really works correctly when the Height = 0 in the Text Style. In order to
get around this issue, Land Desktop provides an alternate mechanism for defining
Text Styles, called Style Sets. Styles can still be created in the Text Style
Editor, but Text Style Sets should be considered the "preferred" option.
Text Style Sets
Style Sets are simple text files. Autodesk
has not provided a GUI for editing Style Sets, so you must edit them in a text editor.
Notepad works well for this task. Your Style Sets (.STP files) should be placed
in the directory containing your Drawing Setup Files, as specified in Projects->User
Preferences. The Style Sets will then show up in the panel on the left side
of the Text Style dialog in Projects->Drawing Setup, in the section called "Style
Set Name", as seen in the diagram to the right. When you select a Style
Set, you will see a list of all the Styles in the set appear in the center box,
in the section called "Styles In This Set". Hit the "Load"
button to load the Text Styles into the current drawing.
It is still possible to create Text Styles in a Drawing Template (.DWT file).
In fact, it is a good idea to "pre-load" all your commonly-used Text Styles
in your Drawing Template. But you should also define your text styles in a
Style Set (.STP file). The definition in the Style Set should be considered
the "official" definition. If you ever need to load a text style,
either because it has been purged from a drawing, or because it has been corrupted
by a "Bad User", you should load it from the Style Set. And should
you ever want to change your Text Styles, you should make the changes in the Style
Set (.STP file), and then load the new Style Set into your Drawing Templates (.DWT
file).
When using Imperial units, a common convention is to include the text size, in thousandths
of an inch, as a number in the Text Style name. For example, L100 text should
always print on paper with letters that are 0.10 inches tall, regardless of where
that text is placed in AutoCAD. If a "Bad User" starts changing
Text Heights in the Text Style Editor, this relationship can get disrupted.
Should this happen, the text styles can be fixed by simply reloading the Text Style
Set from the Drawing Setup dialog. (And then go find the "Bad User"
who mangled the text styles, and have them read this article, so they don't do it
again...)
The height specified in a Text Style Set (.STP file) is specified in paperspace
units ("inches" in our case). Therefore, the definition of the L100
Text Style should have height of "0.100" in the .STP file. However,
the Height in an AutoCAD Text Style is in Drawing units. When we Load a Text
Style Set into a drawing, Land Desktop will multiply this height by the current
Drawing Scale, thereby calculating the Height in AutoCAD Drawing units. This
is the value that ends up in the Height property of the text style. For example,
if our current Drawing Scale is 1" = 100', the Height of our L100 Text Style
will be set to 10.00 drawing units as it is Loaded from the Style Set (.STP file).
As stated earlier, when the user changes the Drawing Scale, Land Desktop will go
through all Text Styles and adjust their Heights. You can see this in action.
Create a new drawing and set the Drawing Scale to 1" = 100'. Load the
"leroy.stp" Style Set into the drawing (this Style Set should be part
of a default installation of Land Desktop). Now go to the Text Style Editor
and look at the text styles. You should see an L80 Text Style with Height
= 8.00, an L100 with Height = 10.00, etc. Now go back to Drawing Setup and
change the Drawing Scale to 1" = 20'. Now if you go back to the Text
Style Editor and browse through your Text Styles again, you will see that the Height
of L80 is now 1.60, the Height of L100 is 2.00, etc.
If you ever need to load Text Styles into a Land Desktop drawing, you should ALWAYS
do it from the Text Style tab of Drawing Setup. Do NOT use Design Center to
transfer Text Styles (unless the Text Style Height = 0). Otherwise,
you may end up with Text Styles that have incorrect Heights. As an example,
assume we have two Drawings: Drawing A has a Drawing Scale of 1" = 100',
while Drawing B has a Drawing Scale of 1" = 60'. We are working in Drawing
B, and we need to use our L100 Text Style. However, that style has been purged
from this particular drawing. But we happen to know that the L100 Text Style
still exists in Drawing A.
It might seem that we could use Design Center, and browse to the Text Styles in
Drawing A. Then we could drag'n'drop the L100 Text Style from Drawing A into
Drawing B. But unfortunately, the Design Center does not adjust the Height
of the L100 Text Style when we do this. So now, we have an L100 Text Style
in Drawing B, but it is set to create text with Height = 10.00. Drawing B
has a Drawing Scale of 1" = 60', so L100 text is supposed to be created with
Height = 6.00. Our Text Styles have gotten mangled.
On the other hand, if we use the Drawing Setup dialog to load the "leroy.stp"
Style Set into Drawing B, the L100 Text Style will be loaded correctly, with the
Height set correctly to 6.00.
Loading a Style Set in Drawing Setup will overwrite any Text Styles with the same
name that currently exist in your drawing. So if you ever find a drawing where
the Text Styles have gotten "messed up" by a "bad user", the
problem can be fixed by reloading the Text Style Set in Drawing Setup.
Zero-Height Text Styles
You may also want to make sure that all of your Text Style Sets also have a zero-height
version of the text style, as well (i.e., a Text Style with Height = 0). If
you add the zero-height version of the text style to the style set, you'll have
the complete set all in one place. But even if you do not add the zero-height
version to the .STP file, you should make sure that you create a zero-height version
in your Drawing Template (.DWT file). The zero-height version will be used
in Dimension Styles, as we'll see in a moment. Also, the zero-height Text
Style is the best choice for text placed in paperspace.
It would be very nice if we could do away with the need to use the zero-height LEROY
style in paperspace, and simply select L80 or L100 or L120 regardless of whether
we are in modelspace or paperspace. (NOTE: Starting in the 2008 release, you
can do something very similar to this, using Annotative text styles. However,
Annotative text styles are outside of the scope of this paper, which was written
prior to the introduction of Annotative text styles.) Unfortunately,
because of the way Land Desktop modifies the Heights in all the Text Styles every
time the user changes Drawing Scale, we're pretty much stuck using zero-height text
styles. For example, text in the L100 style is supposed to be 0.10 inches
tall on paper. This means that L100 text in paperspace should have a height
of 0.10 paperspace units. However, when we set our Drawing Scale is to 1"
= 100', Land Desktop modifies the L100 Text Style, setting the Height to 10.00.
This is the correct Height for text in modelspace, but not for text in paperspace.
If we use the L100 Text Style to add text to paperspace, it will be 10.00 paperspace
units tall, which is way too big. This is very undesirable behavior on the
part of Land Desktop, but it's the way the program works. We have to deal
with it somehow, and the easiest way around the issue is to use Text Styles that
have Height = 0 in paperspace, and Text Styles that have nonzero heights in modelspace.
As an alternative, you can also set the Drawing Scale to 1" = 1' whenever you
work in paperspace. However, this means you need to change your Drawing Scale
every time you switch between paperspace and modelspace. This works, but it
has drawbacks. In practice, it is generally easier to just use a zero-height
Text Style in paperspace.
When using zero-height Text Styles, the default height is set using the TEXTSIZE
system variable. If you want text of another height, you must manually type
the height. It may be tempting to create a series of Text Styles for paperspace
- e.g., a PS100 Text Style that has the Height set to 0.10, a PS80 Text Style that
has the Height set to 0.80, etc. The problem with this is that whenever the
user changes the Drawing Scale, Land Desktop will adjust the heights for these text
styles, just like it does for any Text Style with a nonzero height.
Defining and Using Dimension Styles
Dimension Styles are handy, but they can be easily abused. Many people will
customize the default "Standard" Dimstyle, and use that for everything.
This makes it hazardous to use the "Standard" Dimstyle for anything in
drawings you create. Instead, it is generally better to create custom Dimstyles
with distinctive names, so they are not likely to conflict with Dimstyles in any
drawings created by others. At our company, we start all our Dimstyle names
with the prefix "EJSI".

There are many ways to setup Dimension Styles. However, without careful thought,
it can be very easy to go overboard and create a huge plethora of Dimstyles.
This leads to a maintenance nightmare, and can even make it harder to use Dimstyles.
The method outlined herein is a very streamlined method, which utilizes a very small
set of Dimstyles. In fact, at our company, we typically use only four different
Dimstyles, and most drawings use only two or three of them. Those Dimstyles
are EJSI-60, EJSI-80, EJSI-100, and EJSI-120. As with Text Styles, the number
in the Dimstyle indicates the size of the text, measured in thousandths of an inch,
e.g., text in our EJSI-100 Dimstyle is 0.10 inches tall when plotted on paper.
Dimstyles are created and configured using the Dimension Style Manager (DIMSTYLE).
When configuring a Dimstyle, the various values are measured in paperspace units.
For example, an "Arrow size" of 0.18 indicates an arrow that will be 0.18
inches in size when it is plotted (assuming you are plotting from paperspace with
1 paperspace unit = 1 inch). In general, you can set all settings to whatever
you want, as long as it yields the desired appearance. It can take trial and
error to get the correct values. For options like "Suppress Extension
Lines" and "Precision", set the values to the settings you will use
most-often.

The text settings for the EJ-100 Dimension Style, using the EJTEXT
Text Style with a text height of 0.10 inches.
There are a couple of Dimstyle settings that are critical, however. One of
them is the "Text Style" setting, on the Text tab of the Modify Dimstyles
dialog. This Text Style should always be a zero-height Text Style, like the
LEROY Text Style we created earlier. Then, the text size should be specified
in the "Text Height" setting. Again, these settings use paperspace
units.
Text Styles that have Heights, such as our L80, L100, L120, etc., should not be
used in Dimension Styles. This is because Land Desktop automatically changes
their Heights, based on the current Drawing Scale. If the text keeps changing
size, it won't look right in relation to the arrows. Therefore, we MUST use
a zero-height Text Style in our Dimension Styles, or we will make life miserable
for ourselves.
The DIMSCALE in Land Desktop
When we place a Dimension in paperspace, the dimension should be created as specified
in the Dimension Style. However, when we place a Dimension in modelspace,
the Dimension needs to be scaled by the Drawing Scale in order to be the correct
size on the final print. It is important to note that we can't just scale
the text inside the dimension. The entire Dimension needs to be scaled
by the same amount to maintain the appearance of the Dimstyle. The text, the
arrows, the extension lines, even the gaps between lines and text - all aspects
of the Dimension must be scaled by the same amount. This scaling is controlled
by the DIMSCALE system variable.
DIMSCALE is another somewhat nebulous concept in Land Desktop. Much of the
confusion around Dimstyles is created by what Land Desktop does to the DIMSCALE.
Basically, Land Desktop tries to be "helpful" in a way, and tries to set
your DIMSCALE to an appropriate value. Unfortunately, Land Desktop isn't particularly
good at "helping", and usually ends up getting in the way more than anything.
There is a definite measure of "fighting Land Desktop" involved in using
Dimensions.
Each Dimstyle has an option called "Scale for dimension features", found
on the "Fit" tab in the Modify Dimension dialog. Whenever the user
makes a Dimstyle current, the DIMSCALE is set to whatever is in this field.
The option for "Scale dimensions to layout" is the same as DIMSCALE =
0.

The DIMSCALE = 0 option is used when creating dimensions from paperspace, while
"tunneled" into modelspace through a modelspace viewport. In other
words, go to paperspace and double-click on a modelspace viewport. You are
now "tunneled" into modelspace, through a viewport in paperspace.
(It is a good idea to lock the viewport when working in this manner, so you don't
accidentally pan or zoom the view.) With DIMSCALE = 0, the viewport zoom factor
is used to automatically scale any dimension you create, so it will look correct
in paperspace. If you have a "Detail" viewport showing a close-up
of one area, you can simply switch to that viewport. This time, the dimension
will be scaled by a different amount because of the different viewport zoom, but
it should still look correct when viewed from paperspace. You can even place
a dimension straight in paperspace, and it will still look right.
So far, DIMSCALE = 0 sounds like the perfect solution. Unfortunately, in order
for the dimensions to be scaled correctly in modelspace, they must be placed from
paperspace, through a modelspace viewport. If DIMSCALE = 0 and the user creates
a dimension directly in modelspace, then Land Desktop should use the Drawing Scale
to scale the dimension. However, the commands that create Dimensions do not
check the Drawing Scale, and the dimension gets created with no scale factor applied.
We could theoretically get around this problem if we decide we will only create
dimensions in either paperspace or in modelspace viewports, as annoying as that
may be, and never create dimensions directly in modelspace. That doesn't work,
though, because there is yet another problem...
Land Desktop has this really bad habit of constantly creating DIMSCALE overrides.
Every time you run a Land Desktop command, Land Desktop will check the current DIMSCALE
to see if it is the same as the current Drawing Scale (found in the Drawing Setup).
If the two values are different, Land Desktop will automatically create a Dimension
Override that sets the current DIMSCALE equal to the current Drawing Scale.
This means that if you try to use DIMSCALE = 0, Land Desktop will keep changing
your DIMSCALE to match your Drawing Scale, and you will be in a constant battle
against Land Desktop.
There is a related issue that causes even more problems. When the user switches
Dimstyles, the current DIMSCALE gets set to the overall scale value that is stored
in the "Scale for dimension features" setting in the Dimstyle definition.
If this value is not the same as your current Drawing Scale, then any dimensions
you create will not be scaled properly. The next time you run a Land Desktop
command, Land Desktop will notice that the DIMSCALE and Drawing Scale are not the
same, and it will create a DIMSCALE override. But until that override is created,
your dimensions won't look right. This problem would not exist if Land Desktop
didn't kill your Dimension Overrides every time you change Dimstyles. The
problem also would not exist if Land Desktop recreated the DIMSCALE override as
soon as the user changes the the Dimstyle, rather than waiting. There are
even better options, that sidestep the problem entirely. But unfortunately,
the actual behavior of Land Desktop is very unfriendly to users. There are
several ways of dealing with this issue:
- Option 1: Create the override yourself. Go into the Dimension
Manager, select your style, and hit the "Override" tab. Go to the "Fit" tab, and
find the "Scale for dimension features" section. Enter your Drawing Scale where
it says "Use overall scale of:". The drawback to this method is that it takes a
lot of keystrokes, and it forces you to constantly remember and type your Drawing
Scale.
- Option 2: Force Land Desktop to create the override. Every time
you change the current Dimstyle, start any Land Desktop command. Calling up
any dialog box, such as "Label Settings...", will work. I have my
"Point Settings..." command bound to an accelerator key, which also works.
All I have to do is hit CTRL-T, then hit ESC to cancel out of the dialog box, and
Land Desktop creates the override. I can then place dimensions. The
drawback to this method is that every time you change your Dimstyle, you must run
a Land Desktop command before you can place any Dimensions.
- Option 3: Modify the Dimstyles in each drawing. As soon as you
determine the Drawing Scale for your drawing, go into the Dimension Style Manager
and edit all your dimension styles so that they have the Drawing Scale in the "Scale
for dimension features" setting. (Make sure you use the "Modify"
button - do not just create an override.) For example, if you determine that
your Drawing Scale will be 1" = 100', go through each of your Dimstyles in
turn, and set the value for "Use overall scale of:" to "100"
for all Dimstyles. The drawback to this method is that you have to manually
edit your Dimstyles in every new drawing, instead of just using the Dimstyles that
came from the template. You also must make sure that you edit the Dimstyles
before you create any Dimensions. However, once you edit the Dimstyles,
you can switch Dimstyles all you want without issues (in modelspace, anyway).
We've found Option 2 works decently, but in general, we prefer Option 3. Since
we only use four Dimstyles, it is not too onerous a task to modify each style in
each new drawing. A small Lisp or VBA routine would undoubtedly make the task
simpler and easier.
Using Dimstyle Overrides
In general, Dimstyles in a drawing should never be Modified. We just saw one
example of an exception to this rule, but for the most part, you should make sure
your Dimstyles are setup correctly in your Drawing Template (.DWT) file, and then
don't change them. If you need to create Dimstyles that have modified properties,
use Dimstyle Overrides to temporarily change your Dimstyle without redefining it.
As an example, say your standard Dimstyles have a Precision of two decimal places.
You need to create a whole series of dimensions that have a Precision of zero decimal
places. In the Dimension Style Manager, click on the "Override"
button, and set the Precision to zero decimal places. You should now see the
override added to the Dimstyle, as in the diagram on the right. As long as
that override remains in place, any dimension you create will have its Precision
set to zero decimal places.
Dimstyle overrides are lost whenever you change Dimstyles. You can also discard
them manually by reselecting the current Dimstyle in either the Dimension Style
Manager or in the Style toolbar.
Placing Text and Dimensions in Details
It is common for drawings to contain areas that are too complex or too small to
be seen in the main drawing. These sections are shown, often at a smaller
scale, in an inset off to one side. For example, the overall drawing may have
a Drawing Scale of 1" = 100', but may have a small section in a Detail at a
scale of 1" = 10'. Despite the difference in scales, any text and dimensions
placed in the detail should look the same as they do in the main portion of the
drawing when we plot our drawing.
The easiest way to accomplish this task is to temporarily change our Drawing Scale
to 1" = 10'. Then we can just create all the text and dimensions for
our detail in the normal fashion. If we create all the labeling for the Detail
on dedicated layers, we can use VPFREEZE to make sure we see the correct text in
the correct viewport. Remember to change the Drawing Scale back to 1"
= 100' once you have finished adding text and dimensions to your Detail, to get
the drawing back to its normal state.
For drawings with detail views like this, it is standard practice to set PSLTSCALE
and LTSCALE both to 1. This causes linetypes to look the same, regardless
of whether they are in the main viewport or in the detail. This often makes
drawings look better. But as we found out way back at the beginning of this
article, changing the Drawing Scale will also change the LTSCALE. This is
useful sometimes, but In this case, we want our LTSCALE to stay at 1. Once
again, Land Desktop is trying to be "helpful", but instead it just causes
problems. It is simple enough to manually change the LTSCALE back to 1 after
you reset the Drawing Scale, but if you forget, the linetypes will not look right
when you print the drawing.
There is another thing to keep an eye on, which was mentioned briefly earlier.
Whenever the user changes the Drawing Scale, Land Desktop will create a set of Style
Overrides. The exact overrides created depends on various settings in your
drawing. These overrides are completely worthless, because they are lost the
first time you change your Dimstyle. Depending on a variety of factors, you
may not notice these overrides. Or they may be unwanted, and create undesirable
effects, such as Dimension text that is the wrong size, and so forth. The
important thing is to just be aware that, when you change your Drawing Scale, you
may need to manually discard some bogus Dimension Overrides before you place any
Dimensions.