Edward-James Surveying banner

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:

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.

Drawing Setup dialog

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 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

Text style setup

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".

DIMSTYLE Manager

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.

Dimension Style text tab
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.

DIMSTYLE Fit

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:

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

DIMSTYLE Override

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.