Other Help
==========

   Configuration Variable Files
   Font Cell Libraries
   Database Reference
   Viewing and Plotting Raster Files
   Database Interface Enhancements
   EdG
   Memory Use and Configuration
   Digitizing Tablets
   Connecting a Plotter


Configuration Variable Files
----------------------------

MicroStation uses configuration variable files to get values for settings 
that vary from system to system and from user to user. From a development 
standpoint, MicroStation configuration variables are simply a mechanism for 
"expanding" (translating) one text string into another.

For example, MicroStation needs to find its main resource file. Rather than 
always looking for a file named "ustation.rsc" in a specific directory, it 
expands the configuration variable MS_RSRC (defined in the configuration 
variable file) to get a file name and location. That way (assuming the 
configuration variable file is correct) MicroStation finds the file 
regardless of its name and location.

Each configuration variable has two parts -- its name and its definition. 
Variable definitions can be literal strings or combinations of strings and 
references to other variables.

When MicroStation needs the value of a variable, it looks in the variables 
table (kept in memory) to find the definition. If the variable is found, it 
then expands any nested variable references in the definition. If the 
variable cannot be found, it then attempts to find a system-level 
environment variable of the same name. If a system-level environment 
variable is defined, MicroStation uses that value as if it were defined in 
the variables table. This means that pre-Version 5.0 configurations should 
continue to work with Version 5.0 without any modifications.

The following table shows how system-level environment variables are 
defined on different operating systems:

System          Defined by 

DOS             SET command or using the supplied 
                bsiset utility. 

UNIX            Exported shell variables.

Windows NT      SET command.

Macintosh       (not possible)



   The Main Configuration Variable File
   Configuration Variable File Syntax
   Debugging Variable Definition Files


The Main Configuration Variable File
------------------------------------

The system-level environment variable MS_CONFIG should point to the main 
configuration variable file, "msconfig.cfg," which "segregates" 
configuration variables into five levels:

Level        Defined By

System       MicroStation

Application  Third-party 
             applications

Site         System manager

Project      Project manager

User         Users



It begins by assigning five configuration variables; _USTN_SYSTEM, 
_USTN_APPL, _USTN_SITE, _USTN_PROJECT, and _USTN_USER. These configuration 
variables define directories in which additional configuration variables 
files may be located. By default, the values for these _USTN_xxx are 
sub-directories of MicroStation's "config" directory. However, they can be 
overridden with system-level environment variables with the same names.

The "msconfig.cfg" file includes (processes) all of the configuration 
variable files in each of the system, application, and site directories (in 
that order). Within each directory, it includes all of the configuration 
variable files in alphabetical order. Because the variable files are 
included in this order, application level configuration variables can 
override system-level ones, site level configuration variables can override 
application level ones, and so on.

After processing all of those files, the "msconfig.cfg" file includes a 
single user configuration variable file. You can designate the name of your 
user configuration variable file with the _USTN_USERNAME system-level 
environment variable. The project configuration variable file is typically 
included by reference in the user configuration variable file as a means of 
implementing workspaces (see *Xref: UG, What is a Workspace?).

In practical terms, the first three levels are meant to be set by system 
and site managers using a text editor (Configuration Variable File Syntax). 
The project level is meant to be set by project managers using the Project 
Configuration Variables dialog box. The user level can be freely modified 
by each user using the User Configuration Variables dialog box without 
danger of disturbing the configuration of coworkers.



Configuration Variable File Syntax
----------------------------------

Configuration variable files are text files that consist of a series of 
lines. Each line contains a configuration variable name and definition in 
the following syntax
   <VARIABLENAME> <operator> <new_value>* # comment
or a preprocessor directive in this syntax:
   %<preprocessor directive>
   
VARIABLENAME is the name of the configuration variable defined. All 
variable names used by MicroStation begin with "MS_" or "_USTN_." Variables 
whose names begin with an underbar ( _ ) are not displayed in the 
Configuration Variables dialog box.

Variable names can contain only alphanumeric characters (A-Z, 0-9). 
Although variable names are not case sensitive, uppercase letters are used 
by convention. There is no limit on the length of a variable name, but as a 
practical matter it should be kept under 40 characters. White space (space 
or tab characters) before and after the variable name is ignored.

Available values for operator are:

Operator   Meaning

=          assign new_value to VARIABLENAME.

:          assign new_value to VARIABLENAME only if 
           that variable does not already exist.

+          append new_value to current value of 
           VARIABLENAME. Uses a space as a 
           separator.[a]

>[b]       append directory or file lists defined by 
           new_value (to the end of) a variable 
           definition that defines a path. If no 
           current value for VARIABLENAME exists, this 
           is equivalent to the = operator. Otherwise, 
           it appends a path separator character (a 
           semicolon (;) on DOS, Windows, and 
           Macintosh, and a colon (:) on UNIX) and then 
           new_value.

<[c]       "prepend" directory or file lists defined by 
           new_value (to the beginning of) a variable 
           definition that defines a path. If no 
           current value for VARIABLENAME exists, this 
           is equivalent to the = operator. Otherwise, 
           it prepends new_value followed by a path 
           separator character (a semicolon (;) on DOS, 
           Windows, and Macintosh, and a colon (:) on 
           UNIX).

[a]This operator could be useful for building a string, but it should not 
be used for directory or file lists.
   
[b]This character points towards the end of the existing directory of file 
lists, where the new value is added.
   
[c]This character points to the beginning of the existing directory of file 
lists, where the new value is added.
   
Anything after a # on a line is treated as a comment and is ignored.

Note:
On all platforms, file path names should entered using the forward slash 
(/). On DOS and Windows NT systems, all forward slashes (/) in new_value 
are converted to backslashes (\). This allows a variable file to work 
properly on different systems. If you want a forward slash, put two of them 
in a row ("//"). Also, all directory definitions should end with a trailing 
forward slash.

This is an example of a valid directory definition:

   MS_DEF = /network/dgn/
These definitions are not valid:

   MS_DEF = /network/dgn #no trailing slash
   MS_DEF = \network\dgn\ #backslashes
   Variable definition references
   MicroStation-defined variables
   Preprocessor directives


Variable definition references
------------------------------

A variable definition can contain references to other variables. References 
to other variables are made with the following syntax

Reference       Meaning

$(VARIABLEREF)  Expand VARIABLEREF when this variable 
                is used.

${VARIABLEREF}  Expand to current value of 
                VARIABLEREF.





MicroStation-defined variables
------------------------------

MicroStation defines some of the following configuration variables itself, 
depending upon the operating system. Configuration variable files can test 
for the existence of these variables to determine the operating system in 
which MicroStation is running.

Variable name   Defined when

_msdos          DOS operating system.

_unix           UNIX operating system.

_winNT          Windows NT operating system.

_XWindow        X Window graphics system.

_EnvironV       Intergraph EnvironV operating system.

_clipper, _IP32 Intergraph CLIPPER-based 
                workstations.

_sparc          Sun SPARCstations and compatibles.

_hp700          Hewlett-Packard Apollo 9000 Series 
                700 workstations.

_macintosh      Apple Macintosh.

_vax            DEC VAXstation.

_mips           MIPS processor.

_rs6000         IBM RS/6000

_ROOTDIR        The directory where the MicroStation 
                application resides.

_WORKDIR        The directory from which MicroStation 
                was started.



MicroStation and MicroStation Review each define one of the following 
configuration variables to indicate which software is running:

Variable name   Defined when

_MICROSTATION   MicroStation is running.

_MSREVIEW       MicroStation Review is running.





Preprocessor directives
-----------------------

Preprocessor directives control the way that MicroStation processes 
configuration variable files. Preprocessor directives always begin with %. 
The following preprocessor directives are available.

Directive        Meaning

%include<filenameInclude (process) another 
                 configuration variable file. filename 
                 can contain variable references. In 
                 addition, it can contain the wildcard 
                 character (*), in which case all files 
                 that satisfy the wildcard 
                 specification are included.

%if <expression> Execute the following lines if 
                 expression is true. Expressions can be 
                 composed of Boolean combinations 
                 of:defined () - true if variable is 
                 defined. exists () - true if file 
                 exists. || - logical OR. && - logical 
                 AND. ! - negate. ( ) - grouping.

%else            Execute the following lines if the 
                 last %if was false.

%elif <expressionExecute the following lines if the 
                 last %if was false and expression is 
                 true.

%endif           End of conditional block.

%error <string>  Print string and exit MicroStation.

%undef <varName> Undefines and deletes the 
                 configuration variable varName. (To 
                 keep the variable defined with a 
                 translation of NULL, use varName = 
                 <space>).



For example, assume that MicroStation is running on a DOS system and that 
the following system-level environment variables are defined before 
MicroStation starts:

Variable name    Current value

MS_DEF           c:\dgn\

PROJDIR          \project33\



When started, MicroStation processes the following configuration variable 
file:
#**make sure the project directory is set up

PROJDIR:/noproj/********# if no project is active

#**define my design file directories

MS_OLDDEF***=*${MS_DEF}

%if defined (TRAINING)

MS_DEF ***=*c:/ustation/dgn/

%endif

MS_DEF***<*f:/usr2/dgn/****# a network drive

PROJDGN***:*$(PROJDIR)dgn/****# set up accounting information

%if defined (MSDOS) && !defined (NOACCNT)

ACCNTFILE***=*$(PROJDIR)accnt.dat

%elif defined (UNIX)

ACCNTFILE***=*$(PROJDIR)unixacnt.dat

%else

%error***Accounting not supported on this platform.

%endif

The variables table (stored in memory by MicroStation) contains the 
information in the first two columns of the following chart. When 
MicroStation expands a variable definition, it will have the value of the 
corresponding item in the third column:

Variable     Definition       Expands to
name

MS_DEF       c:/dgn/;f:/usr2/dc:\dgn\;f:\usr2\dgn\

PROJDIR      /project33/      \project33\

MS_OLDDEF    c:/dgn/          c:\dgn\

PROJDGN      $(PROJDIR)dgn/   \project33\dgn\

ACCNTFILE    $(PROJDIR)accnt.d\project33\accnt.dat





Debugging Variable Definition Files
-----------------------------------

To determine whether your configuration variable files are being processed 
properly, start MicroStation with the -debug=n command line switch. On UNIX 
systems, for example, enter
   ustation32 -debug
On a DOS system, enter

   mgds -debug=n
or, if running from ustation.bat:

   ustation -debug=n
where n is a value from 1 to 5. MicroStation displays the names of all of 
the configuration variable files it processes and the names and values for 
all variable definitions. Then MicroStation exits.

Use one of the following values for n:

Value of   Type of report:
n:

1          Brief report (the default) that shows the current 
           string value of each configuration variable as it is 
           processed

2          In addition, shows the current translation of each 
           configuration variable as it is processed

3          In addition, shows conditional break information by 
           displaying the line number when each "if" preprocessor 
           directive is processed

4          In addition, prints final translations of all 
           configuration variables at the end of the report

5          In addition, shows final values of all configuration 
           variables at each level (system, application, site, 
           project, user)



For most purposes, the value 4 gives the most meaningful report: It shows 
the values of the configuration variables as they exist while MicroStation 
is running.

The information in the report is printed to the screen and saved as ASCII 
text in the file "msdebug.txt" in the current directory.





















Font Cell Libraries
-------------------

A font cell library is a standard cell library that contains cells that 
define the characters and symbols in a traditional MicroStation font and 
the font's attributes. This section is intended for users who have (or 
intend to acquire) font cell libraries or wish to create them.

   Font Attributes
   Unsupported font attributes
   Creating a traditional MicroStation font:
   Creating symbol cells
   Cell Naming


Font Attributes
---------------

Font attributes are defined in a special cell in a font cell library named 
$FONT$. (The $FONT$ cell previously contained default command modifiers for 
the Font Librarian utility supplied with previous versions of 
MicroStation.)

The following font attributes are specified in text elements on level 63 of 
$FONT$ (the syntax is given for each):
   class -- identifies the font as a character font or a symbol font. If 
this attribute is not specified then the font is assumed to be a character 
font.
   /class=<character|symbol>
   
   color -- specifies that the font may support multiple color characters. 
This attribute mainly applies to symbol fonts.
   /color
   
   descender -- specifies the uniform descender, in positional units, to be 
applied to all characters in the font.
   /descender=n
   
   description -- specifies a textual font description.
   /description="text"
   
   height -- specifies the uniform height, in positional units, to be 
applied to all characters in the font. The default value is 8192.
   /height=n
   
   international -- affects the specification of fraction characters. With 
this qualifier only 1/2 through 31/32 are allowed. Without it 1/2 through 
63/64 are allowed.
   /international
   
   name -- specifies the name of the font. The default is the name of the 
font cell library.
   /name=string
   
   nofast -- specifies that the font should never be drawn using a Fast 
Font substitute.
   /nofast
   
   nofractions -- specifies that the font does not contain fraction 
characters.
   /nofractions
   
   number -- specifies the default compatibility font number (0-127) for 
this font.
   /number=n
   
   tolerance -- specifies the chord-distance stroking tolerance that is to 
be used for processing curved element types.
   /tolerance=n
   
   Unicode -- indicates that all character values are to be of the Unicode 
character set.
   /unicode
   


Unsupported font attributes
---------------------------

The following font attributes are not supported
*  /dimension
*  /double_width
*  /fastfont
*  /origin=x,y
*  /vector_size=<byte|word>
   


Creating a traditional MicroStation font
----------------------------------------

1. Create a 2D design file.
2. Set the working units for a large working area. The recommended settings 
are 10,000 positional units per sub-unit and 100 sub-units per master unit. 
A grid with 10 sub-units between grid points and references spaced each 10 
grid points is a useful drawing aid.
3. Save the settings.
4. Create and attach a cell library.
5. Create the $FONT$ cell in which font attributes are specified. Be sure 
that $FONT$ contains only text elements on level 63. For more information, 
see Font Attributes.
6. Create a character cell or symbol cell for each character and symbol in 
the font. See To create a character cell:.
   
Hint:
To more easily create multiple fonts with the same attributes (for the sake 
of uniformity), store the same $FONT$ cell in multiple font cell libraries.

Note:
Drawing fonts is a craft that requires familiarity with typography. Working 
knowledge of typography is therefore assumed in this procedure.

   To create a character cell:


To create a character cell
--------------------------

1. Draw the character tile box as a block on level 63 in the solid (code 0) 
line style with line weight 0.
   The tile box height in positional units should be equal to the value 
that will be specified for the height attribute in the $FONT$ cell. This 
means the heights of tile boxes should be the same for each character cell 
in the font cell library. The default height attribute is 8192, so it is 
reasonable to draw the tile box with a height of 8192 positional units.
   The tile box width is influenced by whether the cell is to contain a 
character in a monospaced or proportional font. The widths of tile boxes 
should be the same for each character cell in a monospaced font cell 
library. On the other hand, the widths of the tile boxes for characters in 
a proportional font cell library should be in proportion to the widths of 
the characters.
   It is easiest to draw the tile box with the Place Block tool and a 
precision input key-in; for example, the key-in DX=::8192,::8192 can be 
used to draw a tile box 8192 positional units square.
   A sensible technique, especially for drawing a monospaced font, is to 
draw one tile box and make enough copies to accommodate all of the 
characters.
   
2. Draw the character in the tile box on levels 1-62 with only the 
following types of elements: lines, shapes, arcs, ellipses, and line 
strings. Line strings must be in the solid (code 0) or dotted (code 1) line 
style.
   If the character has descenders, such as lowercase "g" or "p", extend 
the descenders below the tile box. A parenthesis can extend above the tile 
box.
   Leave space between the left edge of the character and the tile box 
unless the character is an uppercase "O" or similar. In general, leave more 
space to the right of the character than to the left (but it is more 
important to be consistent from character to character). Horizontal 
positioning determines inter-character spacing.
   Text is permitted on level 63 for documentation purposes.
   
3. (Optional) Draw the character range box as a block on level 63 in the 
dotted (code 1) line style with line weight 0 to define the range of the 
elements that comprise the character.
4. Select or fence the elements comprising the character, including the 
tile box and if present, the range box.
5. Use the Define Cell Origin tool to define the cell origin at the lower 
left corner of the tile box.
6. Name and create the cell as a graphic cell. For naming requirements, see 
Cell Naming.
   


Creating symbol cells
---------------------

Creation of symbol cells differs from creation of character cells in the 
following ways
*  The tile box should be square.
*  You can define the origin of the cell at one of nine different locations 
on the tile box.
   The cell origin determines the symbol origin and keypoint for snapping, 
even with text placement tools (the active text justification setting is 
ignored). If a string of symbols is placed, the origin is the origin of the 
first symbol.
   
The following are guidelines for drawing an arrowhead symbol:
*  Center the arrowhead so that there is an equal amount of space above and 
below it.
*  Point the arrow to the right.
*  Make the arrowhead as large as possible without extending it outside the 
tile box.
   


Cell Naming
-----------

This section describes the naming requirements for character and symbol 
cells in font cell libraries. In general, cell names are restricted to six 
Radix-50 characters (that is, uppercase A through Z, zero (0) through nine 
(9), dollar ($), period (.) and underscore ( _ ).

   Numeric code names
   Alphabetic letter names
   Special names
   Fraction names


Numeric code names
------------------

Cell names can be specified that represent the actual character (glyph) 
code values. Numeric codes can be specified as octal, decimal, or 
hexadecimal. The following are general forms for specifying numeric code 
names
*  OCTooo
*  Oooooo
*  DECddd
*  Dddddd
*  HEXhh
*  Xhhhh
   
ooo represents octal digits, ddd represents decimal digits, and hhh 
represents hexadecimal digits.



Alphabetic letter names
-----------------------

The standard uppercase letters can be specified by using the single 
uppercase letter (for example, "A"). Since Radix-50 does not allow for 
lowercase letters, they can be specified by prefixing the letter with a 
period (for example, ".A").



Special names
-------------

The following table identifies additional names that can be used to specify 
characters. All names must be truncated to six characters.

Unicode Ustn    Char     Name

0020    32               SPACE, BLANK

0021    33      !        EXCLAM

0022    34      "        QUOTE, QUOTEDBL

0023    35      #        NUMBER

0024    36      $        DOLLAR

0025    37      %        PRCENT, PERCENT, PERCNT

0026    38      &        ANDSGN, AMPERSAND

0027    39      '        SQUOTE, QUOTESINGLE, 
                         APOSTROPHE, TICK

0028    40      (        LPAREN, PARENLEFT

0029    41      )        RPAREN, PARENRIGHT

002A    42      *        STAR, ASTERISK, ASTRIX, 
                         ASTERX

002B    43      +        PLUS

002C    44      ,        COMMA

002D    45      -        MINUS, HYPHEN, DASH

002E    46      .        PERIOD

002F    47      /        SLASH

0030    48      0        0, ZERO

0031    49      1        1, ONE

0032    50      2        2, TWO

0033    51      3        3, THREE

0034    52      4        4, FOUR

0035    53      5        5, FIVE

0036    54      6        6, SIX

0037    55      7        7, SEVEN

0038    56      8        8, EIGHT

0039    57      9        9, NINE

003A    58      :        COLON

003B    59      ;        SEMCOL, SEMICOLON

003C    60      <        LT, LESS, ANGLELEFT

003D    61      =        EQUALS

003E    62      >        GT, GREATER, ANGLERIGHT

003F    63      ?        QSTION, QUESTION, 
                         QUESTN

0040    64      @        ATSIGN

005B    91      [        LBRACK, BRACKLEFT, 
                         LSQUARE

005C    92      \        BSLASH, BACKSLASH

005D    93      ]        RBRACK, BRACKRIGHT, 
                         RSQUARE

005E    94      ^        CAROT, FLEX, CIRCUMFLEX

005F    95      _        ULINE, UNDERLINE, 
                         UNDERSCORE

0060    96      `        GRAVE

007B    123     {        LBRACE, BRACELEFT, 
                         CURLYLEFT

007C    124     |        VLINE, VBAR, BAR

007D    125     }        RBRACE, BRACERIGHT, 
                         CURLYRIGHT

007E    126     ~        TILDE

00A2    -                CENT

00A3    -                POUND, STERLING

00A4    -                CURRENCY

00A5    -       x        YEN

00A9    -                COPYRIGHT

00AC    -                NOTSIGN

00B0    -       d        DEGREE

00B1    200              PLSMIN, PLUSMINUS

00B5    -                MICRO

00B6    -                PARAGRAPH



Note:
You cannot insert a font from a font cell library in which there is more 
than one cell for the same character. For example, if you create a cell 
"PRCENT" for the percent sign (%), you cannot create either "DEC37" or 
"OCT45" in the same font cell library.



Fraction names
--------------

The names of cells that contain fraction characters are specified using the 
following general form
   .nn$dd
   nn is the numerator and dd is the denominator.
   
Unicode Ustn    Fraction

00BD    129     1/2

2153    -       1/3

2154    -       2/3

00BC    130     1/4

00BE    131     3/4

2155    -       1/5

2156    -       2/5

2157    -       3/5

2158    -       4/5

2159    -       1/6

215A    -       5/6

215B    132     1/8

215C    133     3/8

215D    134     5/8

215E    135     7/8

F400    -       1/10

F401    -       3/10

F402    -       7/10

F403    -       9/10

F404    136     1/16

F405    137     3/16

F406    138     5/16

F407    139     7/16

F408    140     9/16

F409    141     11/16

F40A    142     13/16

F40B    143     15/16

F40C    144     1/32

F40D    145     3/32

F40E    146     5/32

F40F    147     7/32

F410    148     9/32

F411    149     11/32

F412    150     13/32

F413    151     15/32

F414    152     17/32

F415    153     19/32

F416    154     21/32

F417    155     23/32

F418    156     25/32

F419    157     27/32

F41A    158     29/32

F41B    159     31/32

F41C    160     1/64

F41D    161     3/64

F41E    162     5/64

F41F    163     7/64

F420    164     9/64

F421    165     11/64

F422    166     13/64

F423    167     15/64

F424    168     17/64

F425    169     19/64

F426    170     21/64

F427    171     23/64

F428    172     25/64

F429    173     27/64

F42A    174     29/64

F42B    175     31/64

F42C    176     33/64

F42D    177     35/64

F42E    178     37/64

F42F    179     39/64

F430    180     41/64

F431    181     43/64

F432    182     45/64

F433    183     47/64

F434    184     49/64

F435    185     51/64

F436    186     53/64

F437    187     55/64

F438    188     57/64

F439    189     59/64

F43A    190     61/64

F43B    191     63/64























Database Reference
------------------




   Database palette
   Key-ins


Database palette
----------------

TBD

To:                      Select in the 
                         Database palette:

Link the active entity toAttach Active Entity
element.

Link the active entity toAttach Active Entity to Fence Contents
element in the fence.

Display the linkage mode.Show Linkage Mode

Display the active entityShow Active Entity

Set a database row as theDefine Active Entity Graphically
active entity.

Interactively display theReview Database Attributes of Element
database attributes of an 
element.

Detach database linkages Detach Database Linkage
an element.

Detach database linkages Detach Database Linkage from Fence Contents
each element contained in the 
fence.

Link an empty text node tAttach Displayable Attributes
database row.

Load a displayable attribLoad Displayable Attributes
text node with data attributes.

Load displayable attributLoad Displayable Attributes to Fence Contents
nodes contained in the fence 
with data attributes.

Generate a report table fGenerate Report Table
each table with linkages to 
elements in the fence.



   Attach Active Entity
   Attach Active Entity to Fence Contents
   Show Linkage Mode
   Show Active Entity
   Define Active Entity Graphically
   Review Database Attributes of Element
   Detach Database Linkage
   Detach Database Linkage from Fence Contents
   Attach Displayable Attributes
   Load Displayable Attributes
   Load Displayable Attributes to Fence Contents
   Generate Report Table


Attach Active Entity
--------------------

Used to link the active entity to an element. Table rows can be linked to 
any type of simple or complex element, and a single element can have 
multiple linkages to multiple tables.

The linkage mode is set in the Database settings box. If the linkage mode 
is New, the active entity is copied and added to the database as a new row. 
The identified element is linked to the new row.

In any other linkage mode, the active entity is a row in the database, not 
a prototype row. The element is linked to this row; a new row is not added.

>> To link the active entity to an element:

1. Select the Attach Active Entity tool.
2. Identify the element to be linked with the active entity.
3. Accept the element.
   
Key-in: ATTACH AE



Attach Active Entity to Fence Contents
--------------------------------------

Used to link the active entity to each element contained in the fence. The 
linkage mode is set in the Database settings box.

>> To link the active entity to each element in the fence:

1. Select the Attach Active Entity to Fence Contents tool.
2. Enter a data point.
   
Key-in: FENCE ATTACH

Note:
As with most fence tools, the fence contents are determined by the Fence 
Selection Mode (see *XRef). 



Show Linkage Mode
-----------------

Used to display the Linkage Mode (see *XRef) in the Command Window.

>> To display the Linkage Mode:

1. Select the Show Linkage Mode tool.
   
Key-in: ACTIVE LINKAGE



Show Active Entity
------------------

Used to display the active entity.

>> To display the active entity:

1. Select the Show Active Entity tool.
   The database row corresponding to the active entity is displayed in the 
SQL Window.
   
Key-in: SHOW AE or AE=$



Define Active Entity Graphically
--------------------------------

Used to set a database row as the active entity. Once an active entity is 
defined, it can be attached to an element or edited.

>> To set a database row as the active entity:

1. Select the Define Active Entity Graphically tool. 
2. Identify an element that is linked to the desired database row.
3. Accept the element.
   If Confirm Rows is off in the Database settings box, the first row 
linked to the element is set as the active entity.
   If Confirm Rows is on, the first row is displayed in the SQL Window. If 
there is more than one linked row, you can click the Next button to reject 
rows. To accept a row as the active entity, click the Accept button. To 
return to step 2, click the Stop button.
   
Key-in: DEFINE AE



Review Database Attributes of Element
-------------------------------------

Used to interactively display the database attributes of an element. 

If Forms is set to Text Screen in the Database settings box, the screen 
form specified in the screenform column of MSCATALOG is used to display 
each linked row. Screen forms must be in a directory pointed to by the 
MS_DBASE configuration variable.

If Forms is set to None or no screen form is specified in the screenform 
column, the SQL SELECT statement defined by the ACTIVE REVIEW (RA=) key-in 
determines the display format. If no SELECT statement is defined, SELECT * 
is used. If there are multiple linkages to an element, they display 
sequentially. The linkage(s) appear in the SQL Window.

>> To review the database attributes of an element:

1. Select the Review Database Attributes of Element tool.
2. Identify the element for which you want to display database attributes.
3. Accept the element. 
   Selected columns in the first linked row are displayed. If there is more 
than one linked row, you can advance to the next row by exiting the screen 
form package or clicking the Next button in the SQL Window. To abort the 
display of rows and return to step 2, Reset (screen form) or click the Stop 
button (SQL Window).
   
Key-in: REVIEW



Detach Database Linkage
-----------------------

Used to detach database linkages from an element. Once a linkage is 
detached, the element is no longer associated with the database row. The 
row is deleted from the database if Delete Linked Database Rows is on in 
the Database settings box.

This tool can be used to detach only linkages of the type(s) named in the 
MS_LINKTYPE configuration variable definition, not other user data 
linkages.

>> To detach database linkages from an element:

1. Select the Detach Database Linkage tool.
2. Identify the element.
3. Accept the element.
   
Key-in: DETACH



Detach Database Linkage from Fence Contents
-------------------------------------------

Used to detach database linkages from each element contained in the fence. 
Once a linkage is detached, the element is no longer associated with the 
database row. The row is deleted from the database if Delete Linked 
Database Rows is on in the Database settings box.

This tool can be used to detach only linkages of the type(s) named in the 
MS_LINKTYPE configuration variable definition, not other user data 
linkages.

>> To detach database linkages from each element contained in the fence:

1. Select the Detach Database Linkage from Fence Contents tool.
2. Accept the fence contents.
   
Key-in: FENCE DETACH

As with most fence tools, the fence contents are determined by the Fence 
Selection Mode (see *XRef). 



Attach Displayable Attributes
-----------------------------

Used to link an empty text node to a database row. After a linkage is 
established, the text node becomes a displayable attribute text node that 
can be loaded to display attribute data with the Load Displayable 
Attributes or Load Displayable Attributes to Fence Contents tool. A special 
database linkage is written to the text node identifying the node as a 
displayable attribute text node. The database linkage is informational and 
cannot contribute to reports.

The displayable attribute type (1-255) is set in a pop-down field from the 
Database palette or in the Database settings box. This type determines the 
template format for loading attribute data in the text node.

>> To link an empty text node to a database row:

1. Select the Attach Displayable Attributes tool.
2. Identify the element that contains the desired database linkage.
3. Accept the element.
    If Confirm Rows is on in the Database settings box, the first row 
linked to the element is displayed in the SQL Window. If there is more than 
one linked row, you can click the Next button to reject rows. To accept a 
row as the row to which the empty text node will be linked, click the 
Accept button or press <Ctrl-A>. To return to step 2, click the Stop 
button.
4. Identify the empty text node.
   If Confirm Rows is off, the empty text node is linked to the first row 
linked to the element.
   
Key-in: ATTACH DA



Load Displayable Attributes
---------------------------

Used to load a displayable attribute text node with database attributes. If 
the database has been changed, this tool can be used to refresh the text in 
a displayable attribute text node.

If Forms is set to Text Screen in the Database settings box, the screen 
form specified for the displayable attribute type in the form column of the 
displayable attribute table is used to supply the template for the 
attribute information. The screen form must be in the directory(s) pointed 
to by the MS_DBASE configuration variable. 

If Forms is set to None or no screen form is specified in the form column, 
the SQL SELECT statement for the displayable attribute type defined in the 
sqldas column of the displayable attribute table determines the list of 
columns that are loaded. If no SELECT statement is defined, SELECT * is 
used.

>> To load a displayable attribute text node:

1. Select the Load Displayable Attributes tool.
2. Identify the text node containing the linkage.
3. Accept the text node.
   
Key-in: LOAD DA

Many MicroStation fonts are proportionally spaced, which can mean that 
columns in a screen form will not line up correctly when the form is 
converted to text elements in the design file. For this reason, use of a 
fixed width font, such as font 3, is recommended to preserve column 
spacing.


Load Displayable Attributes to Fence Contents
---------------------------------------------

Used to load displayable attribute text nodes contained in the fence with 
database attributes.

>> To load displayable attribute text nodes contained in the fence:

1. Select the Load Displayable Attributes to Fence Contents tool.
2. Accept the fence contents.
   
Key-in: FENCE LOAD

Note:
As with most fence tools, the fence contents are determined by the Fence 
Selection Mode (see *XRef).



Generate Report Table
---------------------

Used to generate a report table for each table with linkages to elements 
contained in the fence. A separate row is written to the corresponding 
report table for each linkage.

The name of each report table is specified with the ACTIVE REPORT (RS=) 
key-in. The structure of each report table is identical to the structure of 
the master table.

>> To generate a report table:

1. Select the Generate Report Table tool.
2. Enter a data point.
   
For each database linkage to an element contained in the fence, the 
corresponding row from the master table is copied to the corresponding 
report table. Thus, there is one row in the report table for each linkage. 
Rows can be duplicated if there are multiple linkages within the fence that 
identify the same row in the original table.

After generating a report table, the final formatted report is generated 
with the database's reporting module.

Key-in: FENCE REPORT

Warning:
When a report table is generated, any existing tables of the same name are 
overwritten.

Note:
As with most fence tools, the fence contents are determined by the Fence 
Selection Mode (see *XRef).



Key-ins
-------

TBD

To:                      Key in:

TBD                      ACTIVE DATABASE (DB=)

Define the active entity ACTIVE ENTITY (AE=)
without specifying an existing 
row.

Name a report table.     ACTIVE REPORT (RS=)

Specify a statement that ACTIVE REVIEW (RA=)
selects which row can be 
reviewed.

Specify and activate a feDEFINE SEARCH (DS=)
filter.

Edit the active entity.  EDIT AE

Select a row and set thatFIND (FI=)
as the active entity.

Interactively display a sFORMS DISPLAY
form.

Enable or disable automatSESSION AUTOCOMMIT [OFF|ON]
committing of SQL statements to 
the database for processing.

Enable or disable listingSESSION DEBUG [OFF|ON]
database transaction details as 
they occur.

Interrogate the database SQL
add, edit, and remove rows.



   ACTIVE DATABASE (DB=)
   ACTIVE ENTITY (AE=)
   ACTIVE REPORT (RS=)
   ACTIVE REVIEW (RA=)
   DEFINE SEARCH (DS=)
   EDIT AE
   FIND (FI=)
   FORMS DISPLAY
   SESSION AUTOCOMMIT [OFF|ON]
   SESSION DEBUG [OFF|ON]
   SQL
   SQL Window
   Database settings box
   Cell Link settings box
   Attach Linkages dialog box
   Database Verification settings box
   Database Linkages settings box


ACTIVE DATABASE (DB=)
---------------------

TBD



ACTIVE ENTITY (AE=)
-------------------

Used to define the Active Entity without specifying an existing row.

>> To define the Active Entity:

1. Key in:
   *ACTIVE ENTITY <SQL_INSERT_statement>
   *or
   *AE=<SQL_INSERT_statement>
   SQL_INSERT_statement specifies the contents of the row that is to be 
established as the Active Entity. The statement must specify a table in 
mscatatlog and provide a list of column names and values. For example:
   AE=insert into pumps (cost, vendor) values (25.45, 'Gould')
   
The ACTIVE ENTITY key-in does not add a row to the database. The Linkage 
Mode (see *XRef) determines whether the Active Entity is copied and added 
to the database each time an element is linked with the Attach Active 
Entity tool or the Attach Active Entity to Fence Contents tool 



ACTIVE REPORT (RS=)
-------------------

Used to name a report table that can be generated with the Generate Report 
Table tool. Each table in a database can have a corresponding report table 
that can be loaded with all occurrences of rows linked to elements 
contained in the fence. For each table, the report table name is stored in 
the reporttable column of the row for the table in mscatalog.

>> To name a report table:

1. Key in ACTIVE REPORT <table>:<report_table>
   or
   RS= <table>:<report_table>
   <table> is a table in the database and <report_table> is the report 
table name.
   
>> To display the active report table names in the SQL Window:

1. Key in RS=$ in the Command Window. 
   Clicking the Next button in the SQL Window retrieves the next row.
   


ACTIVE REVIEW (RA=)
-------------------

Used to specify an SQL SELECT statement that selects which row can be 
reviewed with the Review Database Attributes of Element tool. Certain 
columns of the row can be selected, as can corresponding columns of other 
tables that are related through "join" columns.

For each table in the database, the SELECT statement is stored in the 
sqlreview column of the row for the table in mscatalog. When more than one 
table appears after the FROM clause in a SELECT statement, mscatalog is 
changed for only the first table.

>> To select which row can be reviewed:

1. Key in ACTIVE REVIEW <SQL_SELECT_statement>
   or
   RA= <SQL_SELECT_statement>
   
>> To display the active review SELECT statements in the SQL Window:

1. Key in RA=$ in the Command Window. 
   Clicking the Next button in the SQL Window retrieves the next row.
   
The selection criteria has no effect on the Review Database Attributes of 
Element tool if Forms is set to Text Screen in the Database settings box 
and the screen form is specified in the screenform column of mscatalog.



DEFINE SEARCH (DS=)
-------------------

Used to specify and activate a fence filter (an SQL SELECT statement that 
determines which elements can be selected for fence operations). There can 
be one fence filter active for each table in the database. For each table, 
the SELECT statement is stored in the fencefilter column of the row for the 
table in MSCATALOG. 

>> To specify and activate a fence filter:

1. Key in DEFINE SEARCH <SQL_SELECT_statement>
   or
   DS=<SQL_SELECT_statement>
   
>> To display the current fence filters in the SQL Window:

1. Key in DS=$ in the Command Window. 
   Clicking the Next button in the SQL Window retrieves the next row.
   
>> To disable all fence filters:

1. Key in DS=NONE.
   


EDIT AE
-------

Used to edit the Active Entity.

If Forms is on in the Database settings box, the edit screen specified in 
the form table if used for editing. If an edit form is not specified or if 
Forms is off, an error message is displayed.

>> To edit the active entity:

1. Key in EDIT AE.
   The edit screen form is displayed.
2. Edit the Active Entity. 
   If the screen form has more than one page, press <PgDn> or click the 
Page Down button to advance.
3. Click the OK button.
   
Note:
Depending on the Linkage Mode (see *XRef), editing the Active Entity can 
change a row in the database. If Linkage Mode is set to New, the Active 
Entity is a prototype record; editing the Active Entity does not affect any 
rows. However, if Linkage Mode is not set to New, editing the Active Entity 
changes the corresponding row. Linkage Mode is set in the Database settings 
box.



FIND (FI=)
----------

Used to select a row and set that row as the Active Entity.

>> To select a row and set it as the Active Entity:

1. Key in: FIND <SQL_SELECT_statement>
   or
   FI=<SQL_SELECT_statement>
   For example:
   FI=select * from parts where pc='8255' and cost=2.10
   
If the SELECT statement returns more than one row, the first such row 
becomes the Active Entity.



FORMS DISPLAY
-------------

Used to interactively display an Oracle SQL*Forms screen form in 
MicroStation.

To use this key-in, Forms must be set to Text Screen in the Database 
settings box.

>> To interactively display a screen form:

1. Key in FORMS DISPLAY <form_name> <arguments>.
   MicroStation searches the list of directories pointed to by the MS_DBASE 
configuration variable for the form name and passes the argument list to 
the Oracle runform utility. Runform displays the screen forms. There are 
several command line arguments recognized by runform. These can be used to 
control the screen mode, generate a log file, accumulate statistics, etc.
   


SESSION AUTOCOMMIT [OFF|ON]
---------------------------

Used to activate a mode in which MicroStation does not automatically commit 
SQL statements to the database software for processing.

SQL statements are generated by MicroStation each time you use certain 
database tools and key-ins. For example, MicroStation generates an SQL 
INSERT statement when you use the Attach Active Entity tool. You can also 
submit SQL statements in the SQL Window.

By default, MicroStation immediately commits SQL statements to the database 
software. In the alternate mode, MicroStation commits statements only when 
your input necessitates the addition of a row to a database table. The 
process of adding rows requires the database software to lock tables, and 
commitment is required to release those locks. The alternate mode can be 
useful when it is desirable to be able to undo uncommitted SQL statements.

>> To activate the mode in which MicroStation does not automatically commit 
SQL statements:

1. Key in SESSION AUTOCOMMIT OFF.
   
In the alternate mode, you can explicitly request MicroStation to commit 
statements by submitting COMMIT in the SQL Window. To undo all statements 
to the last commit point, submit ROLLBACK in the SQL Window.

>> To reactivate the default mode:

1. Key in SESSION AUTOCOMMIT ON.
   


SESSION DEBUG [OFF|ON]
----------------------

Used to list database transaction details as they occur. The transaction 
log can be useful for isolating the causes of unexpected interactions 
between MicroStation and the database.

Transaction details include SQL statements (generated by MicroStation or an 
application or submitted by the user in the SQL Window), MicroStation 
database requests, and status and error messages issued by the database 
software. MicroStation database requests are listed in UPPERCASE.

>> List database transaction details:

1. Key in SESSION DEBUG ON.
   The Messages window opens, in which the transaction log is displayed.
   
>> To discontinue the transaction log:

1. Key in SESSION DEBUG OFF.
   The Messages window remains open until you close it.
   


SQL
---

Opens the SQL Window, which is used to interactively interrogate the 
database and to add, edit, and remove rows from tables.



SQL Window
----------

Used to process statements to interactively interrogate the database and 
add, edit, and remove rows from tables. Opens when SQL is keyed in the 
Command Window.

Some of the more powerful SQL commands available are:

CREATE                Define and add a new 
                      table.

DELETE                Delete rows.

DROP                  Delete an existing table.

INSERT                Add new rows.

SELECT                Query tables.

UPDATE                Edit rows.


Error messages are displayed in the Command Window.

   Submit
   Next
   Stop
   File menu/Open...
   File menu/Save As...


Submit
------

Submits the typed SQL statement. 

The result of the database query is displayed row by row.



Next
----

Retrieves the next row.



Stop
----

Aborts the display of rows.

Changes to mscatalog resulting from SQL statements typed and submitted by 
the user in the SQL Window are not automatically reflected in the copy of 
that table maintained internally by MicroStation. 

>> To force MicroStation to reread mscatalog and update its copy:

1.  Submit a RELOAD statement in the SQL Window. 
   


File menu/Open...
-----------------

Opens the Open SQL Command File dialog box, which is used to open a SQL 
command file and submit the SQL statement in the file. 

A SQL command file is an ASCII file that contains a single SQL statement. 
SQL command files are useful for storing frequently used SQL statements. 
The statement can be continued on multiple lines. 

Any SQL statement that begins with the "@" character is treated as a 
reference to a command file. If the ".sql" extension is omitted, it is 
assumed. For example:
   @query
   processes the SQL statement in the file "query.sql."


File menu/Save As...
--------------------

Opens the Save SQL Command File As dialog box, which is used to specify a 
command file in which to save the SQL statement in the text field in the 
SQL Window. 



Database settings box
---------------------

TBD

*Database settings box

   Linkage Mode
   Forms
   Displayable Attribute Type
   Delete Linked Database Rows
   Confirm Rows


Linkage Mode
------------

Sets the Linkage Mode, which determines how the Active Entity is treated 
when linked to a graphic element. The available linkage modes and their 
characteristics are summarized in the following table.

Linkage Mode    New Row      Comment

New             yes          new row added for 
                             every linkage

Duplicate       no           all linkages from 
                             the same Active 
                             Entity point to the 
                             same row

Information     no           same as Duplicate; 
                             information 
                             property bit set 
                             for use by 
                             applications

None            no           no linkages can be 
                             generated



After you choose a mode from the option menu, MicroStation displays the new 
mode in the Command Window. When the linkage mode is changed, the active 
entity must be redefined.
New -- The most common operating mode for most applications is the New 
linkage mode. In this mode, the Active Entity can be thought of as a 
"prototype" row. Each time a linkage is created, the Active Entity is 
copied and added to the database as a new row. The element is then linked 
to the new row.

The ACTIVE ENTITY (AE=) key-in is used to create the Active Entity. An SQL 
INSERT statement in the key-in string defines the prototype row.

Alternatively, the FIND (FI=) key-in can be used to locate an existing row 
in the database and set up a copy of that row as the active entity. This 
method uses an existing row as a template or basis for the new row in the 
database.

For example, an architectural application may need to draw doors that are 
uniquely identified by a tag number. The doors share a common set of 
characteristics such as weight, width, and height. 

Therefore, the scheme to develop the appropriate database linkages could be 
as follows:
3. Use the ACTIVE ENTITY (AE=) key-in to create a prototype row for all 
doors of a certain type.
4. Submit an UPDATE AE SQL statement to interactively edit the row and add 
the unique field (tag number) to the row.
5. Use the Attach Active Entity tool to add the active entity to the 
database as a new row and link that row to an element.
   
Duplicate -- For a given active entity, the Duplicate linkage mode links 
each element to the same database row. This is useful when you need to 
associate elements only with a generic type of row rather than a unique 
instance of that row type.

When a fence report is generated, the database report file contains 
multiple copies of every linked row. One copy of the linked row is added to 
the report file for every linkage within the fence. Therefore, applications 
can track quantities of materials because the database report contains as 
many rows as linkages.

Information -- The Information linkage mode is identical to the Duplicate 
mode except that the information property bit is set in the user data 
linkage. Application software may examine this property bit while 
processing linkages.

No linkage mode -- When the linkage mode is set to None, no linkages can be 
added to the design file.

Key-in: ACTIVE LINKAGE [DUPLICATE | INFORMATION | NEW | NONE]



Forms
-----

If set to Text Screen, the database screen forms tool is enabled in 
MicroStation. This option menu is dimmed if the database interface is not 
configured. If set to None (the default), the screen forms tool is disabled 
in MicroStation

Key-in: FORMS [OFF | ON]



Displayable Attribute Type
--------------------------

An integer value that identifies the SQL SELECT statement or the screen 
form for loading displayable attributes in a text node linked to a database 
row. The mapping between displayable attribute types, SELECT statements, 
and screen forms is in the displayable attributes table. A value of zero 
disables displayable attribute typing of text nodes.

Key-in: ACTIVE DATYPE <value> DA=<value>



Delete Linked Database Rows
---------------------------

If on, database rows are deleted when linked elements are either deleted 
with the Delete Element or Delete Fence Contents tool or detached with the 
Detach Database Linkage or Detach Database Linkage from Fence Contents 
tool.

Key-in: SET DELETE [OFF | ON]



Confirm Rows
------------

If off (the default), when you use the Attach Displayable Attributes tool 
or the Define Active Entity Graphically tool, MicroStation operates upon 
the first database row linked to the identified element. Frequently, only 
one row is linked to each element.

If on, MicroStation displays each database row sequentially and waits for 
you to accept one.

Key-in: SET CONFIRM [OFF | ON]



Cell Link settings box
----------------------

Used to link a cell library with an existing database table. Opens upon 
loading of the MDL application, "celllink.ma."

   Cell Name (list box)
   File menu/Attach...
   Settings menu/Select All Cells


Cell Name (list box)
--------------------

Shows every cell in the attached cell library and any database linkages 
present on the cell headers. For every linkage, the list box shows the 
database table and the mslink key in the linkage. If a cell has no 
linkages, the Table and mslink column are blank.



File menu/Attach...
-------------------

Opens the standard Attach Cell Library dialog box. You must attach a cell 
library before you can attach or detach database linkages.

When a cell library is attached, its file specification is shown near the 
top of the Cell Link settings box.



Settings menu/Select All Cells
------------------------------

Processes all of the cells in the library. The Attach and Detach buttons 
work on the currently selected cells in the list box. Normally, there will 
be one cell selected in the list box. 



Attach Linkages dialog box
--------------------------

TBD

   Tables
   Columns


Tables
------

TBD



Columns
-------

TBD



Database Verification settings box
----------------------------------

Used to check elements with linkages for corresponding rows in the 
database. Opens upon loading of the MDL application, "dbcheck.ma."

   Linkage types
   Information Only 
   Move to New Level 
   Detach Bad Linkage
   Delete Element 
   File 
   List Box 
   Text File Output
   Go
   File


Linkage types
-------------

Any or all of the four types of linkages can be verified. The following 
table shows the correspondence of the settings to linkage types

Setting         Linkage type

Oracle          ORACLE

dBASE           DBASE

Informix        INFORMIX

RIS             RIS



The default settings are determined by the MS_LINKTYPE configuration 
variable.



Information Only 
-----------------

If on, elements with orphan linkages will not be manipulated. When this 
option is on, all other options are automatically turned off.



Move to New Level 
------------------

If on, elements with orphan linkages will be moved to the specified level. 
The default is level 60, but the text field allows you to specify any level 
(1-63). When this option is chosen (turned on), Information Only is 
automatically turned off.



Detach Bad Linkage
------------------

If on, linkages to elements with orphan linkages will be removed, and the 
elements will be rewritten to the end of the design file. When this option 
is chosen (turned on), Information Only is automatically turned off.



Delete Element 
---------------

If on, elements with orphan linkages will be deleted from the design file. 
When this option is chosen (turned on), Information Only is automatically 
turned off.



File 
-----

If on, linkage information will be written to a text file. To specify the 
destination file, click the File button and use the File Name dialog box. 
If a destination file is not specified, the utility creates a file named 
"dbcheck.txt" in the directory pointed to by the MS_DBASE configuration 
variable.



List Box 
---------

If on, linkage information will be displayed in the Database Linkages 
settings box, which has controls for manipulating elements with linkages.



Text File Output
----------------

TBD



Go
--

TBD



File
----

TBD



Database Linkages settings box
------------------------------

TBD





















Viewing and Plotting Raster Files
---------------------------------

Beginning with Version 5.0, MicroStation includes an extension for viewing 
and plotting raster files. The extension is the MDL application, BRAS 
("bras.ma"). When BRAS is loaded, the Raster menu is added to the menu bar 
in the Command Window.

If you chose to configure MicroStation to automatically load BRAS upon 
opening a design file, the MS_DGNAPPS configuration variable definition was 
modified to allow this.

If you chose not to configure MicroStation to automatically load BRAS and 
wish to change this, you can do so by reconfiguring MicroStation.

   Raster Concepts
   Loading BRAS
   Viewing Raster Files
   Viewing a design file with raster attachments
   Displaying a raster file
   Positioning the active layer
   Adjusting the view of a raster layer
   Unloading a raster file
   Plotting Raster Files
   Configuration Variables


Raster Concepts
---------------

Raster files are files containing raster data. Raster data is different 
than vector data. MicroStation design files consist of vector data objects 
such as lines, shapes, arcs, and text known as elements. A vector data 
object is an indivisible entity. Raster data, on the other hand, is 
composed of many tiny foreground and background pixels, arranged to give 
the appearance of lines, shapes, and characters. The spacing and size of 
the pixels depend on the resolution of the raster file, which is expressed 
in dots per inch (dpi) or dots per centimeter (dpcm).

Raster data can be collected with a scanning device, such as an ANA Tech 
Eagle scanner, or created from scratch with software such as the I/RAS 
family of raster editor products (I/RAS B and I/RAS PC). MicroStation can 
be used to view and plot raster files, but not to create or edit them.

You can view raster files with black-and-white raster data, called line 
art, in the following file formats:
*  .RLE Run Length Encoded -- Intergraph's run-length encoding format. 
Run-length encoding is a method of representing line art data where 
contiguous sequences of black or white pixels in each row are identified 
and recorded to compress the data. The premise for this type of data 
compression is that it takes fewer bits to describe the length of a 
contiguous segment of identical pixels than it does to actually record each 
pixel, one-by-one.
*  .CIT Group 4 -- Intergraph's line art encoding format based on the CCITT 
Group 4 standard -- a two-dimensional method of data compression in which 
black-white and white-black transitions are represented by offsets from the 
corresponding transition location in the previous line of data. The premise 
for this method of data compression is that raster objects usually consist 
of many pixels, and the boundary of an object usually makes only a small 
shift from one line of data to the next, so it is possible to describe 
raster data as a collection of pixel shifts. .CIT is a more efficient form 
of data compression than .RLE for storing line art.
*  .TG4 Tiled Group 4 -- Intergraph's tiling format based on the CCITT 
Group 4 standard. The process of dividing graphic data into smaller blocks 
is known as tiling. Compression techniques for these smaller blocks are 
similar to .CIT. The advantage of .TG4 is that some graphics applications 
that implement tiling can access particular chunks of data much more 
quickly, because specific blocks can be accessed rather than the entire 
image. This may result in better performance for some applications.
   
MicroStation displays design files and raster files simultaneously. This 
permits the viewing of hybrid raster/vector drawings. For instance, a 
scanned drawing, a related design file, and redlines all can be displayed 
in the same view.

While design file data can be displayed together with raster data, there is 
no interaction between these two data types. Raster and vector data exist 
in separate worlds.

   Raster layers
   Positioning raster layers


Raster layers
-------------

Up to 64 raster files can be displayed at the same time in MicroStation. 
Each raster file is loaded into a layer, and the layers are stacked on top 
of each other. The top layer -- the most recently loaded layer -- is known 
as the active layer.

Raster layers are numbered from 0 to 63. The first layer to be loaded is 
layer 0. Each layer is displayed in a different color. Colors are assigned 
according to the default MicroStation color sequence (white, blue, green, 
red ...). For example, layer 0 is displayed in white (color 0).



Positioning raster layers
-------------------------

The relative position of a raster layer to the design file depends on the 
position of the raster layer. Positioning can be set in two ways
*  Raster layers are always positioned automatically when initially 
displayed in MicroStation. Raster files contain a transformation matrix 
that defines the position or placement of the raster file with respect to 
the design file coordinate system. The transformation is created and stored 
in the raster file header by a raster editor (such as I/RAS PC or I/RAS B). 
The raster file placement is specified during the cleanup and/or check-in 
process that creates the raster file.
   As a MicroStation user, you will not typically be concerned with the 
raster file placement, since MicroStation automatically uses the 
transformation data contained in each raster file in order to position the 
layer.
*  The position of raster layers can always be changed with special view 
controls. However, changes cannot be saved.


Loading BRAS
------------

BRAS can be loaded manually or automatically. The application is loaded 
automatically if the MS_DGNAPPS configuration variable definition includes 
"bras."

>> To manually load BRAS:

1. In the MDL settings box, select BRAS and click Load.
   or
   Key in MDL LOAD BRAS.
   The Raster menu is added to the Command Window's menu bar.
   


Viewing Raster Files
--------------------

This lesson serves as an introduction to using raster files with 
MicroStation.

   Preview


Preview
-------

In this lesson, you will learn how to use the BRAS application to
*  View a design file with raster attachments.
*  Display a raster file.
*  Reposition a raster layer.
*  Adjust the view of a raster layer.
*  Unload a raster file.
   
This lesson assumes BRAS is loaded. This condition is indicated by the 
presence of the Raster menu in the Command Window menu bar.



Viewing a design file with raster attachments
---------------------------------------------

Although there is no relationship between raster data and vector data, 
I/RAS raster editor software (such as I/RAS PC or I/RAS B) can be used to 
attach one or more raster files to a design file. Such raster files are 
sometimes referred to as "raster reference files." Many MicroStation users 
will need to view raster files only if attached to design files.

For example, a cartographer uses MicroStation to create a design file 
representing a longitude and latitude coordinate system. Scanned map data 
in raster files can be attached and displayed together with the coordinate 
system.

A configuration variable controls whether attached raster files are 
automatically loaded and displayed with the design file when the design 
file is opened as the active design file. The "as delivered" definition of 
the configuration variable dictates that the files will be automatically 
loaded. It is assumed here this definition has not been changed. 

The sample design file "longlat.dgn" has an attached raster file, which is 
included with the sample files as well. These files are in MicroStation's 
"wrkspace/modules/learning/dgn" directory.
1. Open "longlat.dgn" as the active design file.
   The raster file "longlat.cit" is automatically loaded into layer 0 and 
displayed in View 1. Then the design file is displayed. Notice the raster 
file contains a contour map that overlays the longitude and latitude lines 
in the design file.
The Raster menu's Viewing sub-menu has items for selecting special view 
controls for adjusting views of raster files. For example, there is a view 
control for fitting the design file and any loaded raster files into a 
view.

>> To fit the files in View 1:

1. Choose Fit All from the Raster menu's Viewing sub-menu.
2. Select View 1.
   
Note:
Raster attachment information is stored in the design file and includes the 
path to each attached raster file.

Note:
For information about the configuration variable that controls whether 
attached raster files are automatically loaded when the design file is 
opened, see Configuration Variables.



Displaying a raster file
------------------------

The Open Raster File dialog box is used to load and display individual 
raster files.

>> To load and display raster files:

1. First open "plant.dgn" as the active design file. This file, and its 
companion raster file, "plant.cit," are in MicroStation's 
"wrkspace/modules/learning/dgn" directory.
   The design is a drawing sheet template for an imaginary company, Acme 
Widget.
2. From the Raster menu, choose Open.
   The Open Raster File dialog box opens.
3. Double-click "plant.cit" to load that file into layer 0.
   After a few moments, the raster file is displayed. The drawing shows a 
portion of a waste treatment plant.
   
While loading a raster file, BRAS checks whether any placement information 
is contained in the file. If placement information is present, this 
information is used to position the raster layer. If no placement 
information is present in the raster file, the layer is fitted in the 
lowest numbered open view.

Hint:
To view only raster data, with no vector data, use a design file that does 
not contain vector data (graphic elements).



Positioning the active layer
----------------------------

The raster layer is positioned in the upper left corner of the drawing 
sheet template. Reposition the active layer in the center of the template

>> To position the active layer:

1. Choose By Rectangle from the Placement sub-menu of the Raster menu's 
Viewing sub-menu.
2. Enter a data point in the lower right corner of the drawing area above 
the "T" in the word "WIDGET." This data point will define the position of 
the lower right corner of the active layer.
   A rectangle is dynamically displayed to aid positioning.
3. Move the pointer up and to the left, and observe that the active layer 
will be resized as it is repositioned, but that its aspect ratio 
(height/width) will be maintained.
4. Enter a data point to define the position of the upper left corner of 
the active layer.
   The active layer is fitted into the area delineated by the rectangle.
   
Note:
The new placement information is not saved.



Adjusting the view of a raster layer
------------------------------------

You can adjust the view of a raster layer with the standard  MicroStation 
view controls such as Window Area, Zoom In, and Zoom Out.

>> To enlarge the displayed raster layer to show more detail:

1. Zoom in repeatedly until the borders of individual pixels become 
visible.
   
Hint:
If you become "lost" when examining a raster file, just choose Fit All from 
the Raster menu's Viewing sub-menu and select a view to regain your 
bearings.



Unloading a raster file
-----------------------

When you no longer want to display a raster file, you can remove the 
corresponding layer and unload the file. When all raster layers are 
removed, only the design file remains visible.

It is possible to remove an individual layer only if that layer is the 
active layer. Recall the active layer is the most recently added layer -- 
the top layer. Hence, if you were to have more than one layer loaded and 
you wanted to remove a layer other than the active layer, you would need to 
remove additional layers first.

Here you are working with a single layer, the layer corresponding to 
"plant.cit." 

>> To remove the layer corresponding to "plant.cit":

1. From the Raster menu's Close sub-menu, choose Active Layer.
   
Hint:
If you have more than one layer loaded and you want to remove them all, 
choose All Layers from the Raster menu's Close sub-menu.



Plotting Raster Files
---------------------

BRAS lets you plot raster files. Raster-oriented plotters, such as 
electrostatic plotters and laser printers, are recommended rather than pen 
plotters.

As described in *Xref "Plotting" in the MicroStation User's Guide, 
MicroStation lets you generate a plotfile, which contains all the necessary 
information about the area specified for plotting as well as the commands 
necessary to drive the plotter. If raster plotting is enabled and the area 
specified for plotting contains raster data, a raster image file is created 
and merged into the output plotfile.

Sequences of consecutive foreground pixels in the raster image file are 
written to the plotfile as vectors. These vectors are stacked up in 
consecutive scan lines to stroke the vector representation of the raster 
image. This allows raster data to be plotted on all MicroStation-supported 
plotters, including electrostatic plotters, laser printers, and even pen 
plotters.

For the same reason, it is necessary for BRAS to be aware of the resolution 
of the output device. For example, a 300 dpi plotter requires that BRAS 
stroke the vectors at 300 scan lines per inch. Otherwise, the output raster 
image may look like zebra stripes with gaps between scan lines. The 
Resolution and Weight settings in the Raster Plot dialog box let you 
specify the output plotter resolution and line weight for stroking the 
vectors in the raster image.

>> To generate a plotfile for a plot of an area that contains raster data:

1. From the File menu, choose Plot to open the Preview Plot dialog box.
2. Click the Raster button in the Preview Plot dialog box to open the 
Raster Plot dialog box. (The Raster button appears in the Preview Plot 
dialog box only if the MDL BRAS application is loaded.)
3. In the Raster Plot dialog box, choose On from the Raster option menu if 
On is not already chosen.
4. (Optional) Set Resolution and Weight in the Raster Plot dialog box. For 
more information about these settings, see Raster Plot dialog box.
5. Click OK.
6. Use the Preview Plot dialog box to generate the plotfile as described in 
*Xref "Plotting" in the MicroStation User's Guide.
   
   Raster Plot dialog box


Raster Plot dialog box
----------------------

Opens the Raster Plot dialog box. This dialog box has controls for settings 
that affect the plotting of raster data.

   Raster
   Resolution/Weight


Raster
------

If On, raster plotting is enabled. Raster plotting is enabled each time the 
MDL BRAS application is loaded.

Key-in: BRAS PLOT RASTER <OFF|ON>



Resolution/Weight
-----------------

The Resolution and Weight settings are interrelated. Resolution is the 
raster plot density in lines per inch or lines per millimeter; the units 
are specified by the RESOLUTION record in the plotter configuration file. 
Weight is device-dependent and is used to specify the line weight, in 
plotter pixels, of the vectors used to stroke the raster data; some 
plotters ignore this setting.

At plot creation time, the lesser of the Resolution value or the target 
output plotter resolution is used. Setting Resolution to a value larger 
than the target output plotter resolution does not result in better output 
quality. However, by setting Resolution to a value that is smaller than the 
target output plotter resolution, and correspondingly increasing the Weight 
value, you can generate a smaller plotfile. The apparent loss in output 
quality may be a satisfactory tradeoff for a smaller plotfile and faster 
plot throughput. This may be the case for proof and working plots.

For example, to plot to a 300 dpi PostScript laser printer, you could set 
Resolution to 300 and Weight to 0. Some PostScript devices interpret a line 
weight of 0 as one plotter pixel wide. The size of the plotfile depends on 
the Resolution value.

Using the PostScript laser printer example again, decreasing the Resolution 
setting to 100 and increasing the Weight setting to 2 will generate a 
smaller plotfile and faster plot throughput. The Weight value of 2 is 
interpreted by some PostScript devices as a line weight of 3 pixels (one 
pixel more than the specified Weight value).

Key-in: BRAS PLOT RASTER RESOLUTION <value>

Even pen plotters can be used to create a hybrid plot of the MicroStation 
design file and raster data. This is possible since the raster data is 
stroked as vectors to the output device. The Weight value is ignored for 
pen plotters, but you can control the Resolution value for stroking the 
raster data as vectors. For example, setting Resolution to 20 specifies 20 
vector strokes per inch (or millimeter) for the raster data. When using a 
pen plotter, use the Resolution setting to control the plot quality.

Notice that the Resolution value is measured in dots per inch (dpi) or dots 
per millimeter (dpmm) depending on the RESOLUTION record in the plotter 
configuration file. The Resolution value does not depend on or interact 
with the density and resolution of the raster layer (or layers) to be 
plotted. The raster data is automatically scaled to match the requested 
plot size and resolution.

Key-in: BRAS PLOT RASTER WEIGHT <value>.

To check the raster plotting settings without opening the Raster Plot 
dialog box, key in BRAS PLOT MODE. The settings are displayed in the 
Command Window.



Configuration Variables
-----------------------

BRAS uses configuration variables whose names begin with BRAS_. These can 
be set in the B/RAS section of the Configuration Variables dialog box. 
*Xref. The following table lists these configuration variables with 
descriptions and their default or "as delivered" definitions.

Configuration   Type     Default         Description
Var.                     Definition

BRAS_AUTOLOAD   keyword  NO              If YES, attached 
                                         raster files are 
                                         automatically 
                                         loaded upon opening 
                                         of a design file.

BRAS_BKLOAD_SCANkeyword  10              Number of raster 
                                         scan lines loaded 
                                         during each fast 
                                         loading time slice.

BRAS_BKLOAD_TICKkeyword  2               Number of 
                                         MicroStation timer 
                                         ticks between fast 
                                         loading time 
                                         slices.

BRAS_FILTER     file     "*.*"           Default filter for 
                filter                   Open Raster File 
                                         and Preview Raster 
                                         File dialog boxes.

BRAS_MAX_FG_RUNSkeyword  2048            Maximum number of 
                                         foreground run 
                                         lengths per scan 
                                         line.1

BRAS_MAX_SCAN   keyword  65000           Maximum number of 
                                         scan lines per 
                                         raster layer.2

BRAS_MAX_X      keyword  65000           Maximum pixel width 
                                         of storage for 
                                         raster layers.3

BRAS_RASTER     directory".\" (current   Default directory 
                         directory)      for Open Raster 
                                         File and Preview 
                                         Raster File dialog 
                                         boxes.



1 BRAS stores raster data internally as foreground run lengths rather than 
as an image bitmap. The default BRAS_MAX_FG_RUNS value of 2048 (foreground 
run lengths per scan line) is quite sufficient for most industrial 
applications. For example, an image that is 40 inches wide with 25 
foreground run lengths per inch has 1000 foreground run lengths per scan 
line (far less than 2048).
This limitation is a potential problem only with dithered or halftoned 
images. If a raster layer exceeds the maximum number of foreground run 
lengths per scan line, the remaining run lengths in the scan line are 
ignored (not displayed), making the edge of the layer look ragged due to 
missing data.

2 Each scan line requires 8 bytes of disk space. Thus, with the default 
definition of BRAS_MAX_SCAN (65000), the scan line table used by BRAS is 
520,000 bytes (8 bytes x 65,000) per layer. If you are working with long 
images -- for example, well logs -- you may want to redefine BRAS_MAX_SCAN 
with a larger value. On the other hand, if you always work with small 
images or multiple layers, you can save disk space and file load time by 
redefining BRAS_MAX_SCAN with a smaller value. For example, an image that 
is 40 inches long at 200 dpi requires 8,000 scan lines or 64,000 bytes of 
scan table disk storage for each layer.
If you attempt to load a raster file that exceeds BRAS_MAX_SCAN, an error 
message is displayed in the Command Window, and the file is not loaded.

3 The configuration variable BRAS_MAX_X is used to specify the maximum 
pixel width of storage for raster layers. Increasing or decreasing the 
value of BRAS_MAX_X from the default (65000) does not significantly affect 
the amount of internal disk space used by BRAS. If you attempt to load a 
raster file that exceeds BRAS_MAX_X, an error message is displayed in the 
Command Window, and the file is not loaded. 



















Database Interface Enhancements
-------------------------------

In Version 5.0, MicroStation will again offer interfaces to a number of 
relational database software packages, such as Oracle. New for Version 5.0 
is the Xbase Database Interface. Also, in Version 5.0, the RIS Database 
Interface will be provided for DOS, Windows NT, and SPARC, as well as the 
Intergraph workstation.

The advantages of using an external database are as follows:
*  The database is designed to hold a large amount of data.
*  The database supports Structured Query Language (SQL) for accessing and 
modifying data.
   
   formtable mscatalog column
   EDIT AE key-in
   Database server error codes
   Oracle Database Interface
   Xbase Database Interface
   RIS Database Interface


formtable mscatalog column
--------------------------

An additional optional column, formtable, is now available in the mscatalog 
table. If used, formtable specifies the table used to locate screen forms.

The formtable column in mscatalog has the following format:

column       type        NULLS
name

formtable    char(64)     YES


The form table has the following format:

column       type        NULLS
name

tablename    char(32)    NO

type         char(64)    NO

formname     char(64)    NO


The type column can have either of the following values: review or edit.

When you use the Review Database Attributes of Element tool, if Forms is on 
in the Database settings box, the database server finds the name of the 
screen form by first looking at the formtable column of the mscatalog 
table. If a form table is specified and the form table exists, its contents 
are searched for the name of the form to use. If a form name is found for 
the table for the current linkage and its type is review, this form is 
used. However, if you are editing the row (or editing the Active Entity 
with the EDIT AE key-in [see EDIT AE key-in]), the form of type edit is 
used.

If a form table is not found, the form specified in the screenform column 
of mscatalog is used for review operations. For edit operations, if a form 
of type edit is not found, an error message is displayed.



EDIT AE key-in
--------------

The EDIT AE key-in (formerly available only with the old dBASE interface) 
(see *Xref) is used to edit the Active Entity.



Database server error codes
---------------------------

Error codes for the database servers have been consolidated for Version 
5.0. Formerly, there were two sets of codes



Oracle Database Interface
-------------------------

The Oracle database interface is included with this Beta version. However, 
SQL*Forms is not yet supported.

To set up MicroStation for the Oracle database, define configuration 
variables as for the Xbase interface (see Setting up MicroStation for the 
database), except set the MS_DBEXT configuration variable to the value 
"oserver."



Xbase Database Interface
------------------------

Beginning with Version 5.0, an Xbase database server is supplied with 
MicroStation. Xbase is a term used to describe the data file/index file 
formats of a variety of vendors, all of which are based on the dBASE III+ 
data file format. In terms of the way the data is stored, the only thing 
that differentiates these products is the index file format. The supplied 
Xbase server can also be thought of as a dBASE IV server since it supports 
only the ".mdx" index files of dBASE IV.

The Xbase server is designed to meet the following goals:
*  It makes MicroStation's Xbase interface much more like that of the 
Oracle, INFORMIX, and RIS servers.
*  It greatly enhances access to Xbase data files through an enhanced SQL 
interface.
   
The following terms are used throughout this section:
*  A relational database contains a collection of tables.
*  Each table is composed of rows and columns.
   
The following tables shows the corespondence between Xbase terms and 
relational database terms:

Relational      Xbase

table           database (".dbf" file)

database        collection of ".dbf" files

row             record

column          field


The relational terms are used in this document.

   Differences from the Version 4 dBASE server
   SQL support
   Setting up MicroStation for the database
   DATADICT utility
   Using the gis sample database
   Dialog box forms for database attribute review


Differences from the Version 4 dBASE server
-------------------------------------------

The new Xbase server is more like the Oracle, INFORMIX, and RIS servers 
than its predecessor, the dBASE server, in several ways. (For simplicity, 
the Oracle server is referred to as a representative member of this group. 
Where dBASE features have been replaced by Oracle features this will be 
noted, but not discussed.
*  The control file is replaced with a table, mscatalog, such as that used 
by the Oracle server. The Xbase data dictionary (discussed later) is 
responsible for managing index file names, table name to file name 
mappings, and other information that was stored in the dBASE control file 
but which has no counterpart in mscatalog.
   As with the Oracle server, any table that will be associated with 
elements must be listed in mscatalog. However, through SQL statements, any 
table in the database can be accessed even if it is not listed in 
mscatalog. The database servers will not allow connection to a database 
that does not have a table named mscatalog, so even if the you do not plan 
to associate any table with elements, an mscatalog table is necessary.
   
*  Fence filters are now SQL SELECT statements rather than index file 
names. 
*  The active entity is now stored in an active entity table, AE, in the 
database as it is with the Oracle server. Updates to the active entity can 
be accomplished by submitting SQL UPDATE (AE) statements.
*  As with Oracle, the sqlreview column of the mscatalog table determines 
the behavior of the Review Database Attributes of Element tool when screen 
forms are not used. 
*  The reporttable column of the mscatalog table determines the name of the 
output table created with the Generate Report Table tool.


SQL support
-----------

SQL support for the Xbase server has been significantly enhanced.

   SQL statements
   Index files
   Data dictionary


SQL statements
--------------

Below is a list of the SQL statements that are supported by this Beta 
version. The following conventions apply in the syntax descriptions
   UPPERCASE words are SQL keywords.
   {} enclose a group of | delimited expressions where one of the 
expressions is necessary.
   [] enclose optional expressions.
   
*  SELECT [* | column_name_list] FROM table WHERE condition_list
   In this Beta version, SELECT statements are supported for single tables. 
There is no join functionality. 
   Condition_list can contain any number of comparisons separated by AND or 
OR operators. The comparisons need not be equivalences as with the dBASE 
server (that is, <, >, <=, etc. are valid).
   
*  UPDATE table SET assignment-list
*  DELETE FROM table [WHERE condition_list]
   Rows in Xbase files are marked as deleted. They are not physically 
deleted from the file until the file is packed. File packing is left to the 
user or controlling application. Before attempting to pack a file, be sure 
that the corresponding index files are open so the indexes are updated.
   
*  INSERT INTO table [(column_name_list)] VALUES (expression_list)
   If column_name_list is omitted, there must be an expression for each 
column in the table.
   
*  CREATE TABLE table (column_name_type_list)
   Column_name_type_list is a comma-delimited list of expressions of the 
form: column_name column_type. For example:
   CREATE TABLE mytable (name char(10), age integer)
   creates a table with a name column of 10 characters and an integer age 
column.
   Data types can be any ANSI SQL data type. Refer to any SQL reference for 
a list. The following Xbase extension types are supported: logical, date. 
Xbase memo fields that contain unformatted binary data are not yet 
supported. 
   
*  DROP table
   The table is dropped from the data dictionary and associated data and 
index files are physically deleted.
   
*  CREATE DATABASE db_name
   A directory named db_name is created, and the data dictionary files are 
created in this directory. If no path is specified in db_name, the database 
is created in the first directory list in the MS_DBASE configuration 
variable. To access this database, the database must first be made active 
with the ACTIVE DATABASE (DB=) key-in.
   
Literal expressions used in assignments and comparisons can be of 
character, numeric or date format. Character strings are single quote 
delimited. Date expressions are as follows: DATE('07/04/76'). Note that the 
leading zeroes are necessary. So the following SELECT statement would be 
valid:
   SELECT * FROM mytable WHERE mychar = 'Character' AND myfloat = 3.5 AND 
myint = 4 AND mydate = DATE ('07/04/76')
   


Index files
-----------

When searching a table with the SELECT, UPDATE, or DELETE statements, index 
files are used whenever possible to speed the search. The Xbase server can 
only use one index per table at a time. In addition, indexes are currently 
not used on an expression involved in an OR.

No effort is made to decide which index is to be used based on anticipated 
gains. If multiple conditions are being evaluated for a given table, the 
Xbase server will use the index for the first indexed expression it 
encounters. The efficiency of a search can be increased by listing the 
condition with the most beneficial index first.



Data dictionary
---------------

To facilitate the processing of SQL statements, the Xbase server maintains 
a data dictionary that contains information about the objects in the 
database. Some of the information that was stored in the dBASE control file 
is now stored in the data dictionary.

The data dictionary associates table names with actual file names. For 
example, table names can be up to 30 characters long. The data file name is 
limited by the operating system (8 characters in the case of DOS).

Other information stored in the data dictionary includes the index files 
associated with a table. For this reason, if the Xbase server is to access 
a table that it did not create, information about the table must be added 
to the data dictionary using the supplied utility, DATADICT.

External applications (applications other than MicroStation itself and MDL 
applications) that access the tables used by the Xbase server must be 
careful about changing the structure of the database. For example, if an 
external application adds a column to a table or adds rows to a table but 
not to an associated index file, the Xbase data dictionary is thrown out of 
synch. Again, DATADICT must be used to synch up the data dictionary or the 
external application must manipulate the data dictionary manually. (The 
latter solution can be problematic if an internal application is accessing 
the database at the same time.)

Note:
For information about DATADICT, see DATADICT utility.

Note:
Do not become too dependent on the names of tables and columns in the data 
dictionary at this point in the release cycle. These are still in flux.

   Multiple user considerations


Multiple user considerations
----------------------------

The data dictionary also contains information about the owner of a database 
object. This Beta version does not support owner names for database 
objects. All database objects are publicly accessible and the owner of each 
object is listed in the data dictionary as PUBLIC.

This may make it difficult to use this Beta version of the server in an 
environment in which the database has multiple users. The Xbase server will 
be certified for multi-user access in a future version. Support for 
multiple users will be included but password protection may not be 
supported. 



Setting up MicroStation for the database
----------------------------------------

The DOS utility SHARE must be loaded before MicroStation is started to run 
the Xbase server.

Also, the following configuration variables must be defined to use the 
Xbase database server:
1. MS_DBASE 
   The MS_DBASE definition must include the path to the Xbase server. This 
path depends on the database index file format:
   
Index file      Include in 
format          MS_DBASE

dBASE IV (.mdx) $(MS)/database/xbase

dBASE III+ (.ndx$(MS)/database/xbasendx

FoxBase (.cdx/.i$(MS)/database/xbasefox

 In addition, this variable must include paths to the database named with 
the ACTIVE DATABASE (DB=) key-in.
   The name of an Xbase database is the directory where the data dictionary 
and (possibly) associated data and index files are located. For example, if 
you key in DB=MYDB, the server searches for a directory called "mydb" in 
the paths specified by the MS_DBASE variable. If it finds such a directory, 
it will then check for the proper data dictionary files and an mscatalog 
table. The elements are verified, and the database becomes the current 
database.
   
2. MS_DGNAPPS 
   The MS_DGNAPPS definition must include the SERVER application whenever 
MicroStation is configured to use any database server.
   
3. MS_SERVER 
   The MS_SERVER definition must be DBLOAD.
   
4. MS_LINKTYPE 
   The MS_LINKTYPE definition must include the linkage type XBASE for the 
Xbase server. For historical reasons the linkage type DBASE is also 
supported. The database servers do not distinguish between XBASE and DBASE 
linkages.
   A colon delimited list of linkage types is valid. The first linkage type 
in the list is the type the server generates when creating new database 
linkages. The other types in the list are additional types the server will 
recognize for review and manipulation. (Note that some of the sample design 
files have DMRS linkages. To use these files, include DMRS in the linkage 
type list.)
   
5. MS_MDL 
   The MS_MDL definition must include the path to MDL applications so that 
MicroStation can find "server.ma" and "dbload.ma." MS_MDL is generally 
defined to point to MicroStation's "mdlapps" directory.
   
6. (Optional) MS_USERMSC 
   The database servers supplied with MicroStation Version 5.0 will allow 
users to change the name of the mscatalog table. By default, the name of 
the table is mscatalog. If MS_USERMSC is defined, the definition specifies 
the name used for the mscatalog table. The documentation will always refer 
to the table as mscatalog.
   
7. MS_DBEXT 
   The MS_DBEXT definition must specify the appropriate Xbase server, which 
depends on the database index file format:
   
Index file      MS_DBEXT 
format          definition

dBASE IV (.mdx) xbasesql.exp

dBASE III+ (.ndxxbasendx.exp

FoxBase (.cdx/.ixbasefox.exp





DATADICT utility
----------------

   The supplied DATADICT utility is used to add tables and indexes created 
by external applications to the Xbase server's data dictionary. There is a 
version of the utility for each of the following database index file 
formats:
   
Index file      DATADICT utility
format

dBASE IV (.mdx) "$(MS)/database/xbase/
                datadict.exe"

dBASE III+ (.ndx"$(MS)/database/xbasendx/
                datadndx.exe"

FoxBase (.cdx/.i"$(MS)/database/xbasefox/
                datadfox.exe"



You may wish to copy the appropriate version to a directory in the current 
path.

DATADICT always operates on the data dictionary in the current directory. 
It is not necessary to have the files and indexes that are being added in 
the same directory as the data dictionary but it is recommended. Database 
files created by internal applications are placed in the database's 
directory. 

Note:
This Beta version of the Xbase server does not support the CREATE INDEX and 
DROP INDEX SQL statements. To add new indexes to the data dictionary, you 
must use DATADICT.

   Using DATADICT


Using DATADICT
--------------

>> To run DATADICT:

1. At the system prompt, enter:
   <datadict|datadndx|datadfox> <-arguments>
   The arguments and their syntax are as follows:
   -init
   Initializes a set of data dictionary files in the current directory.
   -ia .mdx_file_name table_name
   Adds an index file to the data dictionary. dBASE IV index files group 
multiple indexes together into a single file. The Xbase servers associate 
one index file with each table in the database.
   Using this argument you can associate an index file with a table. The 
Xbase servers will not open a default index file with the same file name. 
For example, to associate the dBASE IV index file, "parcel.mdx," with the 
parcel table, enter:
   datadict -ia parcel parcel
   If another index file is associated with the table, the command fails. 
The current index file must be disassociated first.
   -id table_name
   Disassociates a table from its index file. The index file is not 
deleted. If an index file is not associated with this table, the command is 
ignored.
   -ta .dbf_file_name table_name
   Adds a table to the data dictionary. If table_name is omitted, the table 
name is assumed to be the same as the base file name. If a table with this 
name already exists, the command fails. The maximum valid number of 
characters in table_name is 30.
   -td table-name
   Deletes a table from the data dictionary. The file itself is not deleted 
but is no longer in the data dictionary and is therefore no longer 
recognized by the Xbase server.
   


Using the gis sample database
-----------------------------

Each of the Xbase database interface's "examples/gis" directories -- for 
example MicroStation's "database/xbasendx/examples/gis" directory -- 
contains all of the files for the gis database except for the data 
dictionary. Run the batch file "build.bat" to build the data dictionary 
before trying to use the gis sample files. "Build.bat" simply executes the 
appropriate DATADICT utility. (To see some good examples of how to use 
DATADICT, examine "build.bat.")



Dialog box forms for database attribute review
----------------------------------------------

If Forms is off in the Database settings box when the Review Database 
Attributes of Element tool is used, the database attributes are displayed 
in the SQL Window. If Forms is on, the database attributes are displayed in 
a dialog box representation of the dBASE form specified in the screenform 
column of mscatalog. In the latter case, the database attributes can be 
edited in the dialog box using the dBASE commands GET, SAY, TO, and READ. 
The database is updated only if you click the OK button.

The dialog box interface supports multiple page forms. Clicking the Reset 
button restores the current page of the form to its original state when it 
was displayed. Clicking the Page Up or Page Down button (or pressing the 
<PgUp> or <PgDn> keyboard key) accepts changes to the current page and 
accesses the previous or next page. It is not possible to restore a page's 
original display state with Reset after you accept changes to the page with 
Page Up or Page Down.



RIS Database Interface
----------------------

A Relational Interface System (RIS) database interface will be included 
with the PC and SPARC versions of MicroStation Version 5.0 as well as the 
Intergraph workstation (32) version. The new RIS server will be much closer 
to the Oracle and INFORMIX servers in terms of functionality. The new RIS 
server is built with version 4.x of the RIS product. Until this product is 
in general release the only way to use the new server is to have a 
pre-release version of the RIS Version 4.x product from Intergraph. The 
only such version available is for Windows NT on Intel processors.

   Setting Up (Windows NT)
   RIS basics
   Setting up MicroStation for RIS
   Using the RIS interface
   Version 5.0 enhancements


Setting Up (Windows NT)
-----------------------

Before testing the RIS database interface with MicroStation for Windows NT 
(Intel x86 version), you must install some additional Beta Intergraph RIS 
software. Comments regarding this software should be directed to BSI.

>> To install and configure the Beta Intergraph RIS software: 

1. Make the directory where you want the software to be installed the 
current directory.  You will probably want to install the software in the 
"c:\win32app" directory where most Windows NT applications are installed.
2. Locate the file "\ntris\ntris.exe" on the CD delivery.  Execute the file 
as follows:
   \ntris\ntris -d
   This installs the RIS Client, RIS Utilities, UMS, and Shamrock files, 
which are necessary to use the RIS database interface for MicroStation on 
Windows NT.
3. Assuming the products were installed in a directory called 
"c:\win32app," set the following environment variables from the System 
control panel or from the Command Window from which MicroStation is 
started:
   set riscpn=c:\win32app\ingr\ris\riscpn
   set risupn=c:\win32app\ingr\ris\risupn
   set shamrock=c:\win32app\ingr\shamrock
   set ums=c:\win32app\ingr\ums
   set path=%path%;%riscpn%\lib;%risupn%\bin; %shamrock%\lib;%ums%\lib
   set lib=%lib%;%shamrock%\lib


RIS basics
----------

For RIS documentation, see the appropriate documents from Intergraph. This 
section has some background and MicroStation-specific information.

RIS allows an application to access a number of different database engines 
(such as Oracle, INFORMIX, and Ingres) through a common interface. The 
application communicates with RIS, and RIS provides the necessary 
translation to the protocol understood by the underlying database engine.

The RIS interface basically consists of three parts: an application (the 
MicroStation RIS server), a client, and a data server. The application is 
supplied with MicroStation. The RIS client and data server are obtained 
separately from Intergraph. The client typically runs on the same system as 
the application. The data server runs on the system on which the database 
engine is running. This could be the same system on which the client 
software and application are running, or it could be a remote host located 
somewhere on a network. An exception to this design is DOS RIS. Under DOS 
the client software is not located on the same system as the application.



Setting up MicroStation for RIS
-------------------------------

To use the RIS interface the following configuration variables must be 
defined before MicroStation is started

Variable     Definition

MS_SERVER    dbload

MS_DGNAPPS   server

MS_DBASE     $MS/ris/

MS_LINKTYPE  RIS

MS_DBEXT     ustnris


The following configuration variables are optional:
1. MS_DBFLOAT **
The MS_DBFLOAT configuration variable definition specifies the format for 
floating point values returned as character strings (default %.7g).

2. MS_DBDOUBLE 
The MS_DBDOUBLE configuration variable definition specifies the format for 
double precision values returned as character strings (default %.16lg).

Once you have defined the appropriate configuration variables and started 
MicroStation, the RIS server is active. To connect to a RIS schema use the 
DB= key-in. For example, for a schema myschema with no password, the key-in 
is DB=myschema. For a schema myschema with user john and password mstation, 
the key-in is DB=myschema.john.mstation.


Using the RIS interface
-----------------------

The database settings and tools for the RIS interface are almost identical 
to those for the Oracle and INFORMIX interfaces. However, when using the 
RIS interface, you cannot review attributes with Forms on.



Version 5.0 enhancements
------------------------

This section covers Version 5.0 enhancements to the RIS database interface.

   nextocc mscatalog column


nextocc mscatalog column
------------------------

The RIS server now recognizes the nextocc column in mscatalog, with which 
users of pre-5.0 versions of the RIS server may be familiar.

The nextocc column contains the next available mslink number for the table 
represented by a particular row in mscatalog. If a nextocc column exists, 
MicroStation uses it to obtain the maximum mslink value (nextocc - 1) and 
to assign new mslink numbers. If a nextocc column exists, it must be used 
for all tables in mscatalog; it cannot be blank for any row.

Nextocc has the advantage that a new mslink number can be acquired as 
follows:
1. Get the value of nextocc for a particular table, call it mytable, and 
store it in a variable called currOcc.
2. Submit the following SQL statement:
   update mscatalog set nextocc = currOcc+ 1 where tablename = 'mytable' 
and nextocc = currOcc
   If another application has updated mscatalog between steps 1 and 2 and 
in doing so invalidated currOcc, reissue step 2 with currOcc = currOcc + 1. 
When step 2 succeeds, the value currOcc can be used to add a row to 
mytable.
   
This approach eliminates the need to lock the table, get the maximum mslink 
value, insert the record, and unlock the table (hence, ending the 
transaction in which the lock was issued). This approach may also be faster 
than some max(mslink) operations on some relational databases, although 
with proper indexing most databases perform such operations fairly quickly.

If the RIS server finds a nextocc column in mscatalog it assumes the value 
is valid. No validation is done. You must initialize the nextocc column.

Warning:
The nextocc approach may be dangerous for some users. This approach assumes 
that each user adding a record to a table clears the mslink number though 
the nextocc column in mscatalog. If an application on the network adds rows 
to the table without regard to the nextocc column in mscatalog, 
MicroStation may later try to insert a row into the table and assume the 
value in nextocc has not been used. Mslink columns should always be 
uniquely indexed so this operation will fail rather than cause duplicate 
mslink numbers. If for some reason the mslink column is not uniquely 
indexed, duplicate mslink numbers can result.

Note:
Other database servers will also recognize the nextocc column, but due to 
the complications mentioned above, nextocc is currently documented only 
with the RIS server for backward compatibility.























EdG
---

The EdG utility (note the lowercase "d"), which is installed in 
MicroStation's "edg" directory, replaces the old EDG utility described in 
Appendix E of the Version 4 Customization Guide. EdG is similar in function 
and operation to EDG. This chapter describes differences between EdG and 
EDG. For the latest and most complete information about EdG, use its HELP 
command (see HELP).

The most significant differences between EdG and EDG relate to the 
following functions:
*  File verification and repair -- The VERIFY command (VERIFY) in EdG is 
used to verify the validity of an element or set of elements. The REPAIR 
command (REPAIR) automates element repair. The PATCH WTF command (PATCH 
WTF) is used to correct words-to-follow errors. Note that the examples of 
file verification and repair in the section "EDG Examples," beginning on 
page Ce-38 of the Customization Guide, do not illustrate the VERIFY, 
REPAIR, and PATCH WTF commands in EdG. Refer to the HELP topic named 
fixing-files instead.
*  On-line help -- The HELP command (HELP) in EdG is easier to use and 
provides more complete information.
   
Note:
EdG has many of the same features as EDG on Intergraph VAX systems. If you 
are familiar with the VAX-based EDG, review the EdG HELP topic named 
vax-users. That topic is a sub-topic of the differences topic in EdG's 
hierarchical on-line help system; differences is a sub-topic of 
release-notes.

   New and Significantly Changed Commands
   Other Enhancements
   EDG Functionality Not Yet Implemented


New and Significantly Changed Commands
--------------------------------------

With the exception of DEMARCATE, HELP, and SET VERIFY, all of the following 
commands were not part of EDG. The syntax, usage, or capabilities of the 
HELP and SET VERIFY commands are significantly changed or enhanced in EdG. 
DEMARCATE was named SET END_OF_DESIGN in EDG.

   DEMARCATE
   HELP
   MODIFY ALINKAGE
   MODIFY LENGTH
   PATCH WTF
   REPAIR
   SET BANNER
   SET COMPLEX
   SET JOURNAL_FILE
   SET LOGGING
   SET NOBANNER
   SET NOCOMPLEX
   SET NOLOGGING
   SET NOSUMMARY
   SET OUTPUT
   SET PROMPT
   SET REPAIR
   SET SUMMARY
   SET VERIFY
   SHOW REPAIR
   SHOW SIZE
   SHOW VERIFY
   SHOW VERSION
   SUMMARY
   VERIFY


DEMARCATE
---------

Used to set the end-of-design mark at the current location (formerly SET 
END_OF_DESIGN, which was documented as SET END on p. Ce-18 in the 
Customization Guide).



HELP
----

Used to access EdG's hierarchical on-line help system. This command 
description updates the listing on page Ce-35 in the Customization Guide.

>> To display information about an EdG command or topic:

1. At the EdG> prompt, enter HELP.
   EdG displays instructions for using the help system.
2. When finished reading the instructions, press <Return>.
   EdG displays a list of the topics on the top level of the help topic 
hierarchy and the Topic? prompt.
3. Navigate the topic hierarchy to display the desired help articles. The 
Topic? prompt changes to indicate your position in the topic hierarchy. You 
can abbreviate any topic name and use wild card characters, although 
ambiguous topic specifications result in all matches being displayed.
   If you are not sure of the name of the command or topic for which you 
need help, enter HINTS.
   To redisplay the most recently requested help article, enter ?.
   To redisplay the instructions, enter INSTRUCTIONS.
4. When finished, press <Return> one or more times to exit the help system 
and return to the EdG> prompt.
   


MODIFY ALINKAGE
---------------

Used to modify any word or byte in an element's attribute data.

The command syntax follows:
MODIFY ALINKAGE(<subscript>)=[(HIGH) | (LOW)] [%(radix)]<value> [range]

The command lets you change the value of any word in the word array that 
contains the attribute data. Subscript specifies the word number in the 
array; the first word corresponds to subscript 1. (HIGH) or (LOW) limits 
the modification to the high or low byte of the word. By default, the 
entire word is modified. Radix is D (decimal), O (octal), X (hexadecimal), 
F (double-precision, floating point -- entire word modifications only), or 
R (Radix-50 -- entire word modifications only). D(ecimal) is the default. 
Radix-50 text must be delineated by quotes. If range is omitted, the 
current element is modified.



MODIFY LENGTH
-------------

Used to modify the actual length of an element or set of elements. 

The command syntax follows:
MODIFY LENGTH=<words-to-follow> [range]

If range is omitted, the current element is modified.

If a modified element is a complex element component, the complex header's 
words-in-description is adjusted accordingly.



PATCH WTF
---------

Used to modify an element's words-to-follow value. (The EDG SET POINTER and 
MODIFY WTF commands are obsolete.)

>> To modify the current element's words-to-follow value:

1. Enter PATCH WTF.
   The EdG prompt changes to "PATCH WTF>."
2. Use the PATCH WTF command set described below to specify the 
words-to-follow value. See PATCH WTF command set.
3. To accept the specified words-to-follow value and return to the EdG> 
prompt, enter SAVE or EXIT (the commands have the same effect).
   or
   To return to the EdG prompt without actually modifying the 
words-to-follow value, enter QUIT.
   OR
1. Enter PATCH WTF/AUTOMATIC. The /AUTOMATIC qualifier causes PATCH WTF to 
modify the words-to-follow without user intervention.
   
Note:
A range specification can be used with the /AUTOMATIC qualifier, as in 
PATCH WTF/AUTOMATIC [range].

   PATCH WTF command set


PATCH WTF command set
---------------------

The following commands can be entered at the "PATCH WTF>" prompt

Syntax          Used to

# (unsigned     Set the words-to-follow to a specific value (#). EdG then 
integer)        displays the headers of subsequent elements based on the new 
                words-to-follow. (The number of displayed elements is set with 
                the SET LIST command.) Frequently a listed element will display 
                as "unknown." This usually indicates the new words-to-follow is 
                still not correct.

+ [x]           Add the specified value (x) to the words-to-follow. If x is 
                omitted then one (1) is added. EdG then displays the headers of 
                subsequent elements based on the new words-to-follow. (The number 
                of displayed elements is set with the SET LIST command.) 

- [x]           Subtracts the specified value (x) from the words-to-follow. If x 
                is omitted then one (1) is subtracted. EdG then displays the 
                headers of some subsequent elements based on the new 
                words-to-follow. (The number of displayed elements is set with 
                the SET LIST command.) 

AUTOMATIC [n]   Automatically extend the words-to-follow and check the following 
                n elements for validity. If n is omitted, the number of elements 
                checked is determined by the SET LIST value. Only elements of 
                types specified with the EdG SET VERIFY/TYPE=<type_list> command 
                (all by default) that are on levels specified with the EdG SET 
                VERIFY/LEVEL=<level_list> command (all by default) are checked.

GUESS           Set the words-to-follow based on the nominal words-to-follow 
                based on the element's type and parameters.

LIST [n]        Display the following n elements based on the element's 
                words-to-follow. If n is omitted, the number of elements 
                displayed is determined by the SET LIST value.

VERIFY [n]      Validate the following n elements based on the current element's 
                words-to-follow. If n is omitted, the number of elements verified 
                is determined by the SET LIST value.

SET LIST <n>    *Set the number (n) of elements listed upon entry of the LIST, #, 
                +, and - commands.*Set the default number (n) of elements checked 
                by the AUTOMATIC and VERIFY commands.



Note:
EdG also executes SET and SHOW commands entered at the "PATCH WTF>" prompt.



REPAIR
------

Used to repair an element or set of elements.

The command syntax follows:
REPAIR [range]

The repair capabilities are as follows. Repair capabilities noted as 
optional are set with the SET REPAIR command (SET REPAIR).
*  complex bit settings
*  (optional) element ranges (including complex headers)
*  index to attributes
*  (optional) properties bit settings
*  (optional) invalid levels
*  (optional) invalid classes
*  (optional) graphic group number assignment
*  (optional) text node number assignment
*  uniform levels, colors, line weights, and line styles (complex chains, 
complex shapes)
*  number of elements (complex headers)
*  cell header (type 2) level (force to level 0)
*  library cell header (type 1) level (force to level 0)
*  text string overflow
*  unnecessarily long enter data fields
*  improperly justified enter data fields
*  class mask, level mask (cells and shared cell instances)
   
For more information about repair capabilities, see VERIFY.

If range is omitted, the current element is repaired.



SET BANNER
----------

Used to re-enable the display of a banner when a file is opened. The banner 
includes



SET COMPLEX
-----------

Used to enable automatic extension of specified sequence ranges that end 
within a complex element to include all of the component elements.

Note:
To override this setting for a single instance of a command that operates 
on the file, use the /NOCOMPLEX qualifier when entering the command.



SET JOURNAL_FILE
----------------

The SET JOURNAL_FILE [filename] command is used to specify the journal file 
for EdG output and begin journaling (recording the output in the journal 
file). If the specified file already exists, it is overwritten. If filename 
is omitted, the file is created in the current directory with the name of 
the open design file or cell library and the extension, "jnl." For more 
information about journaling, see SET OUTPUT.



SET LOGGING
-----------

Used to enable the display of command progress.

Note:
To override this setting for a single instance of a command that operates 
on the file, use the /NOLOGGING qualifier when entering the command.



SET NOBANNER
------------

Used to disable the display of a banner when a file is opened. For more 
information about banner display, see SET BANNER.



SET NOCOMPLEX
-------------

Used to re-disable automatic extension of specified sequence ranges that 
end within a complex element to include all of the component elements.

Note:
To override this setting for a single instance of a command that operates 
on the file, use the /COMPLEX qualifier when entering the command.



SET NOLOGGING
-------------

Used to re-disable the display of command progress.

Note:
To override this setting for a single instance of a command that operates 
on the file, use the /LOGGING qualifier when entering the command.



SET NOSUMMARY
-------------

Used to disable display of a summary at the end of command output for most 
commands.

Note:
To override this setting for a single instance of a command, use the 
/SUMMARY qualifier when entering the command.



SET OUTPUT
----------

Used to direct the display of EdG output.

The command syntax follows:
SET OUTPUT [/qualifier/qualifier]

The qualifiers for SET OUTPUT follow:
*  SET OUTPUT/SCREEN (or SET OUTPUT/TERMINAL) directs output to the screen. 
This is the default.
*  SET OUTPUT/NOSCREEN (or SET OUTPUT/NOTERMINAL) disables screen output.
*  SET OUTPUT/JOURNAL directs output to the journal file specified with the 
SET JOURNAL_FILE command. If a journal file has not been specified, this 
qualifier has no effect. (If screen output is enabled, this qualifier does 
not disable it.)
*  SET OUTPUT/NOJOURNAL disables output to the journal file.
*  SET OUTPUT/COMMAND echoes command line input to the journal file. This 
makes it possible to see the commands that generated the journal output as 
well as to prepare the journal file for use as a command file (see @command 
files).
*  SET OUTPUT/NOCOMMAND disables echoing of command line input to the 
journal file. This is the default.
   


SET PROMPT
----------

Used to change the command line prompt.

The command syntax follows:
SET PROMPT "string"

The quotes are part of the syntax. The default is "EdG>".



SET REPAIR
----------

The SET REPAIR command is used to specify some of the repair capabilities 
of the REPAIR command (REPAIR).

The command syntax follows:
SET REPAIR [/qualifier/qualifier]

The valid qualifiers and the associated REPAIR capabilities are as follows. 
Each qualifier corresponds to a VERIFY message.
*  SET REPAIR/CLSBAD=ASSIGN -- Assign the class value 0 to any element with 
an unrecognizable class value. This is the default.
*  SET REPAIR/CLSBAD=IGNORE -- Do not check element class values.
*  SET REPAIR/ELVLDSP0=ASSIGN -- Move any displayable element found on 
level 0 to level 1. This is the default.
*  SET REPAIR/ELVLDSP0=IGNORE -- Do not check for displayable elements on 
level 0.
*  SET REPAIR/ERNGBAD=REPAIR -- Repair any element with a bad range. This 
is the default.
*  SET REPAIR/ERNGBAD=IGNORE-- Do not check element range.
*  SET REPAIR/GGRPHIGH=ASSIGN -- Assign the value one higher than the 
current element's graphic group number to the GRAFIC variable in the design 
file's Type 9 header element. This is the default.
*  SET REPAIR/GGRPHIGH=IGNORE -- Do not check element graphic group 
numbers.
*  SET REPAIR/NODEHIGH=ASSIGN -- Assign the value one higher than the 
current element's text node number to the CANODE variable in the design 
file's Type 9 header element. This is the default.
*  SET REPAIR/NODEHIGH=IGNORE -- Do not check text node numbers.
*  SET REPAIR/PROPLOCK=ASSIGN -- Clear the locked property bit of any 
element found that has the bit set. By default, REPAIR does not check 
locked property bit settings (SET REPAIR/PROPLOCK=IGNORE).
For more information about repair capabilities, see VERIFY.



SET SUMMARY
-----------

Used to re-enable display of a summary at the end of command output for 
most commands.

Note:
To override this setting for a single instance of a command, use the 
/NOSUMMARY qualifier when entering the command.



SET VERIFY
----------

Used to control verification settings for the VERIFY command. This command 
description updates the command description on page Ce-27 in the 
Customization Guide. For more information about verification, see VERIFY.

The command syntax follows:
SET VERIFY [/qualifier/qualifier]

The valid qualifiers are as follows:
*  SET VERIFY/REPORT=<severity> restricts the reporting of element problems 
by VERIFY to problems of at least the specified severity (INFORMATIONAL, 
WARNING, ERROR, or FATAL). The default severity is WARNING.
*  SET VERIFY/SUMMARY=<severity> restricts the reporting of the number of 
elements by severity to the specified severity (GOOD, INFORMATIONAL, 
WARNING, ERROR, or FATAL) and worse. The default severity is WARNING.
*  SET VERIFY/TRAP=<severity> causes VERIFY to stop verification processing 
if it encounters a problem of at least the specified severity 
(INFORMATIONAL, WARNING, ERROR, or FATAL). The default severity is WARNING.
*  SET VERIFY/<severity> causes VERIFY to stop verification processing and 
report if it encounters a problem of at least the specified severity 
(INFORMATIONAL, WARNING, ERROR, or FATAL).
*  SET VERIFY/ALL causes VERIFY to stop verification processing and report 
when it encounters any problem.
*  SET VERIFY/NONE prevents VERIFY from reporting or stopping verification 
processing (equivalent to SET VERIFY/REPORT=NONE/TRAP=NONE).
*  SET VERIFY/NOREPORT prevents VERIFY from reporting (equivalent to SET 
VERIFY/REPORT=NONE).
*  SET VERIFY/NOTRAP prevents VERIFY from stopping verification processing 
(equivalent to SET VERIFY/TRAP= NONE).
*  SET VERIFY/SEARCH causes VERIFY to verify only elements that meet the 
search criteria.
*  SET VERIFY/NOSEARCH causes VERIFY to ignore the search criteria. This is 
the default.
*  SET VERIFY/LEVEL=<level_list> identifies valid levels for VERIFY; VERIFY 
will consider an element on any other level to be unknown. Level_list is a 
list of one or more level numbers (1-63), with hyphens specifying ranges 
and commas as separators. By default all levels are valid.
*  SET VERIFY/TYPE=<type_list> identifies valid element types for VERIFY; 
VERIFY will consider an element of any other type to be unknown. Type_list 
is a list of one or more element type numbers, with hyphens specifying 
ranges and commas as separators. By default all types (known to EdG) are 
valid.
   


SHOW REPAIR
-----------

Used to display the repair settings.



SHOW SIZE
---------

Used to display the location of the end-of-design (if it has been found as 
yet), the number of free blocks, and the current file size (system 
end-of-file).



SHOW VERIFY
-----------

Used to display the verification settings.



SHOW VERSION
------------

Used to display the EdG version number.



SUMMARY
-------

Used to generate a formatted report that contains statistics for an element 
or set of elements. The statistics include



VERIFY
------

Used to verify the validity of an element or set of elements.

The command syntax follows:
VERIFY [range][/qualifier.../qualifier]

The SET VERIFY command (SET VERIFY) specifies verification settings. 
However, any qualifier that can be used with the SET VERIFY command can be 
used with the VERIFY command to temporarily override the settings.

VERIFY checks for problems in each of the following categories. (The 
problem severity associated with each category is given in parentheses.)
*  Good (no problem; severity does not apply)
*  Incompatible (INFORMATIONAL)
*  Inconsistent (INFORMATIONAL)
*  User (WARNING)
*  Irregular (WARNING)
*  Abnormal (WARNING)
*  Bad (ERROR)
*  Invalid (ERROR)
*  Fatal (FATAL)
   
These categories are described below. For each category, information is 
given about the different problems that VERIFY detects and the 
corresponding messages. Repair capabilities of the REPAIR command are 
described in parentheses.

Incompatible (CMPELEM) elements are not backward-compatible with earlier 
versions of MicroStation or IGDS.

LVLRESV: The reserved level bit is set
   The reserved level bit is set on a non-file header element. This bit 
should always be clear.
   
Inconsistent (ICELEM) elements should be fully operational and can under 
most circumstances be ignored. These elements are flagged only because some 
of the parameters are not within standards.

ATTRFLAG: attributes present but not flagged
According to the index to attributes and the words-to-follow, the element 
contains attribute linkage information. However, the attributes bit in the 
properties word is not set.*

ATTRVOID: attributes flagged but not present
The attributes bit in the properties word is set, but according to the 
index to attributes and the words-to-follow, there is no attribute linkage 
information present.*

IXATZERO: Index to attributes is zero
A graphic element must have the index to attributes point to the end of the 
element data.

ALNKLEN: attribute linkage has bad length
A database attribute linkage must have a length that is a multiple of four.

ALNKOVF: attribute linkage overflows element length
The database linkage will not fit into the element. This linkage (and more 
than likely the previous one) is bad.

SYMBHDCM: Some components do not match header symbology
Complex chains, complex shapes, surfaces, and solids must have a uniform 
symbology for the header and all of the component elements. (If all of the 
components have a uniform symbology, REPAIR will set the complex header's 
symbology to be the same as the components'.)

GGRPHDCM: Some components do not match header graphic group
Complex chains, complex shapes, surfaces, and solids must have a uniform 
graphic group number for the header and all of the component elements. (If 
all of the components have the same graphic group number, REPAIR will 
change the complex header's graphic group number to be the same as the 
components'.)

PROPRESV: Some reserved properties bits are set
The element has reserved properties bits set for which usage is not defined 
for the element type. (REPAIR will clear those bits that are undefined.)

PROPINC: Some properties bits are inconsistent with element
Some elements require specific settings for certain properties bits. 
(REPAIR will set and clear those properties bits that can be unambiguously 
recognized as inconsistent.)

PROPLOCK: Locked property bit is set
The element cannot be manipulated with the lock bit set. (If the element is 
displayable and SET REPAIR/PROPLOCK=ASSIGN is set, REPAIR will unlock the 
element.)

SHAPCLOS: Shape element does not actually close
The first coordinate and the last coordinate are not the same.

TXTZERO: The text string is zero length
A text element that has no characters (and is not part of a text node) 
cannot be accessed. The element will not display and cannot be selected.

User-disqualified (USER) elements are of a type or on a level specified 
with the SET VERIFY command (SET VERIFY).

ETYPUSER: element type (n) is not defined by user
This element is of a type excluded from verification with SET VERIFY.

ELVLUSER: element level (n) is not defined by user
The level on which this element resides was excluded from verification with 
SET VERIFY.

Irregular (IRELEM) elements should display correctly, but under some 
circumstances may not behave correctly or predictably. They are generally 
easily correctable

ETYPUNK: element type (n) is unknown
The element type is unknown to EdG. This is not a problem if the indicated 
element is valid.

CBITUNST: Complex bit set on non-nested element
An element that is not nested in a complex header has been marked as a 
component element. This will usually prevent the element from being 
selected and for some elements (such as B-splines) will cause severe 
problems. The complex header may have been deleted without correctly 
clearing the complex bits, or the complex header's words-in-description is 
too small. (REPAIR will clear the complex bit on any element that is 
outside of a complex element, with the exception of the first design file 
header.)

CBITNEST: Complex bit is clear on nested element
The complex header's words-in-description may be too large. (REPAIR will 
set the complex bit on any element that is nested in a complex header.)

ELVLHDCM: Some components do not match header level
Some complex elements require that all component elements match the 
header's level. One or more component elements are on levels that are 
different from the header. (If all of the components are on the same level, 
REPAIR will change the complex header level to be the same as that of the 
components.)

GGRPHIGH: Graphic Group (n) is higher than design header GRAFIC (n)
The element's graphic group number exceeds the value of the GRAFIC field in 
the design file header. (If SET REPAIR/GGRPHIGH=ASSIGN is set, REPAIR 
assigns the GRAFIC field in the Type 9 design file header a value one 
greater than the current element's graphic group number.)

IXATOUT: Index to attributes point outside of element
The index to attributes indicates the linkage is outside of the element. 
This is impossible. The index to attributes should be **adjusted to the end 
of the element.*

IXATINSD: Index to attributes point into element data
The index to attributes points into the element data based on the 
calculated length of the element using the element parameters.

IXATENDD: Index to attributes does not point to end of element data
The index to attributes should always be aligned with the end of the valid 
element parameters and data.

ATTRSIZ: Attribute linkage size is incorrect
The attribute linkage size is not a multiple of four words.

ATTRPAD: Element requires attribute pad to reach minimum length
Some element's data length is less than the minimum length. No element 
should be smaller than a simple line element.

CLSHDCM: Some components do not match header class
Some complex elements require that all component elements match the class 
of the header.

WID: Words-in-description is incorrect
The words-in-description for the complex header does not correctly align to 
a complete element boundary.

WIDZERO: Words-in-description is zero
All complex headers should have a value for words-in-description.

WIDSML: Complex header does not include any elements
All complex elements (with the exception of a text node) must actually 
contain component elements.

WIDBIG: Words-in-description is too big
The words-in-description must be less than or equal to 1,073,741,803.

WIDOVF: Nested complex element overflows header's words-in-description
A complex element that is nested within another complex element extends 
beyond the parent's indicated words-in-description.

CNELHDCM: number of component elements (n) does not match header (n)
The number of elements in the complex header does not correctly reflect the 
number of elements encompassed by the words-in-description. Typically this 
is a problem with the number-of-elements field in the header. (REPAIR will 
set the number of elements based on the actual number of elements that are 
enclosed by the words-in-description.)

CNELMAX: number of elements (n) exceeds maximum legal value (2520)
The maximum number of elements for those headers that contain the 
number-of-elements record is 2520. This is based on the length of a line 
element versus the words-in-description values (65533/26).

CCLMHDCM: Component classes (mask) do not match header mask (mask)
Cells and shared cells have a class mask that is supposed to indicate the 
classes of the component elements. (Fixable with the REPAIR command.)

CLVMHDCM: Component levels (mask) do not match header mask (mask)
Some complex elements (such as cells) maintain a mask of the components' 
levels. This message indicates that the level mask in the header does not 
match the actual levels used by the components. (Fixable with the REPAIR 
command.)

CELDORPF: Orphan cell definition without orphan flag
A cell (type 2) nested within a library cell (type 1) contains its own 
elements but does not have the orphan (hole) property bit set. (Fixable 
with the REPAIR command.)

CELDDBLD: Cell (name) is defined as orphan as well as regular cell
A cell that contains component elements is nested in a library cell, and a 
cell by that name also exists as a library cell. (REPAIR will set the 
nested cell to be a group [orphan cell].)

NODEHIGH: Node number (n) is higher than design header CANODE (n)
The element's node number exceeds the value of the CANODE field in the 
design file header. (If SET REPAIR/NODEHIGH= ASSIGN is set, REPAIR will 
assign the CANODE field in the Type 9 design file header to a value one 
greater than the current element's text node number.)

Abnormal (ABELEM) elements may not display or may have display anomalies. 
These elements typically do not behave normally but are generally easily 
correctable.

ETYPHDCM: Some component types (list) incompatible with header type
Some complex headers have a limited number of eligible component element 
types. For example, a complex chain cannot contain any closed element (for 
example, shape, ellipse, etc.).

ETYPUNSP: Element type (n) is unsupported by MicroStation
The indicated element type is not supported by MicroStation.

ELVLDSP0: Displayable element on level 0
Displayable elements should always be on levels 1-63. Level 0 is reserved 
for cell headers (type 2) and application elements (type 5 and type 66). 
(If SET REPAIR/ELVLDSP0=ASSIGN is set, REPAIR will set the level to 1.)

ELVLSHI: Shared Instance (name) level should be (n) instead of (n)
The level of the shared cell instance (placed as relative) is incorrect. 
(Fixable with the REPAIR command.)

ERNGLOHI: Low range greater than high range
An element's range should never have the low range greater than the high 
range.

ERNGBAD: Element range does not match calculated range
The calculated range based on the element definition, parameters, vertices, 
etc., does not match the stored element range. (If SET 
REPAIR/ERNGBAD=REPAIR is set, REPAIR will modify the element's range 
according to the calculated value.)

CLSBAD: Class (n) is not recognized
The valid range of class values is 0-6. (If SET REPAIR/CLSBAD= ASSIGN is 
set, REPAIR will assign a class value of 0.)

CELDDUP: Duplicate cell definition (name), first defined (n)
Two or more library cell definitions (type 1) in a cell library or shared 
cell definitions (type 34) in a design file have the same name.

CCLMBAD: Some component classes (mask) are invalid
Some components of the indicated complex element have classes with a value 
greater than 6.

CCLMSHI: Shared Instance (name) class mask (m) does not match def (m)
The shared cell instance class mask does not match that of the shared cell 
definition. (Fixable with the REPAIR command.)

CLVMSHI: Shared Instance (name) level mask (m) does not match def (m)
The shared cell instance level mask does not match that of the shared cell 
definition. (Fixable with the REPAIR command.)

TXTOVF: The text string overflows the element length
There is insufficient space in the element for all of the characters in the 
text string. (REPAIR will change the number of characters in the element to 
match what is really present.)

EDFSORT: Some text enter-data-fields are not in order
The enter data field records in a text element should be ordered from 
lowest character index to highest character index. (Fixable with the REPAIR 
command.)

EDFOVLP: Some text enter-data-fields overlap others
Enter data fields cannot overlap. (Fixable with the REPAIR command under 
most circumstances.)

EDFLNG: An enter-data-field is longer than the text string
The enter data field extends beyond the end of the text string. (REPAIR 
will extend the length of the text string to match the longest enter data 
field.)

EDFNCHR: There are more enter-data-fields than characters
Each enter data field must be at least one character wide, so the total 
number of text characters in an element must be greater than or equal to 
the number of enter data fields. (REPAIR will extend the length of the text 
string to match the number of enter data fields and their corresponding 
lengths.)

EDFZERO: An enter-data-field has a length of zero
Each enter data field must be at least one character wide. (Fixable with 
the REPAIR command.)

EDFJUST: An enter-data-field has an unrecognized justification
The only valid justification settings for an enter data field are left 
(-1), center (0) and right (1). (Fixable with the REPAIR command.)

EDFOVF: One or more enter-data-fields overflow element length
There is insufficient space in the element for all of the enter data 
fields.

EDFMAX: Text element should not exceed 20 enter-data-fields (n)
MicroStation will process only the first 20 enter data fields in an 
element.

Bad (BADELEM) elements typically neither display nor operate correctly.

DGNHDRLEN: Design file header length is incorrect: must be 766
The design file header is corrupted or the file is not a design file.

CELHDRLEN: Cell Library header length is incorrect: must be 23
The cell library header is corrupted or the file is not a cell library.

NESTMAX: Maximum complex nest level
Complex element components must not be nested deeper than 12 levels.

NESTNEVR: Element type (n) must never be nested in complex
The element should never be nested in a complex element (such as a group 
data [type 5] element). The words-in-description of the complex header is 
most likely in error.

NESTREQD: Element must be nested in complex
The element depends on values in a complex header (such as the component 
elements of a B-spline). Check to see if the complex header has been marked 
as deleted or the words-in-description is incorrect.

EDELCMPX: Deleted element in complex group
A deleted component element of a complex element will often cause display 
anomalies. The words-in-description of the header may be corrupt or the 
element may have been accidentally marked as deleted.

HTYPWRONG: header is the wrong type (n) for this element type (n)
The element is a component of a complex element. The header is incorrect 
for this element (such as a B-spline knot without a B-spline header).

ELVLBAD: Element type (n) must not reside on level (n)
Elements of certain types cannot reside on certain levels. (REPAIR will fix 
the case of cell headers not on level 0.)

EWTFBAD: Calculated size (n) does not match WTF (n)
The element's actual size does not correspond with the size according to 
the element's parameters (for example, number of vertices). Check to see if 
the element following this one is correct. If it is, the parameters in this 
element should be corrected. If the element following this element appears 
to be invalid, then this element's words-to-follow should be modified to be 
the calculated value (or greater if attribute data is present).

VERT0: Number of Vertices is zero
Line strings, curves, shapes, complex chains, and complex shapes must have 
vertices.

VERTMAX: Number of Vertices is greater than n
Line strings, curves, shapes, complex chains, and complex shapes are 
limited to 101 vertices.

VERTS: Not enough vertices for element
A curve must have at least four vertices, a line string must have at least 
two, and a shape must have at least three.

CELINEST: Cell (type2) must be nested in cell library
A cell (type 2) must always be nested when in a cell library. The library 
cell header's words-in-description is most likely invalid.

CELDNFND: Definition element for cell "name" does not exist
A cell (type 2) or a shared cell instance (type 35) does not have a 
corresponding definition element.

CELDVOID: Cell has no elements
Cells must have component elements.

Invalid (IVELEM) elements neither display nor operate correctly. Usually a 
file that contains invalid elements will not open in MicroStation.

ETYPDIM: Element is inconsistent with file dimension
An element that should only appear in a 3D file is in a 2D file. In most 
cases you should delete the element.

ETYPFTYP: Element is inconsistent with file type
An element that should only appear in a design file (such as a type 9) is 
in a cell library or a type 1 element (library cell header) is in a design 
file.

EODCMPX: End-of-design encountered in complex element
The complex header is most likely corrupt with a bad words-in-description.

EOFCMPX: Physical end-of-file encountered in complex element
The file system end-of-file was encountered in a complex element. This 
message indicates severe problems with the file. The complex header has a 
bad words-in-description, and more than likely one or more of the component 
elements are corrupt with bad words-to-follow.*

CELRCURS: Recursive nested cell
A nested cell has the same name as the cell that it is nested within. (In a 
cell library, if the nested cell [type 2] contains its own elements, REPAIR 
will null the nested name.)

CNAMNULL: Null name in cell library
A library cell header (type 1) must have a name in a cell library. (For a 
cell [type 2], REPAIR will identify the element as an orphan definition.)

A file that contains fatal (FTLELEM) elements is corrupt.

ETYP0: Element type zero (0)
There is no element type 0 (zero).

ELEWTF: words to follow out of range 15 < WTF < 767
All active (non-deleted) elements must have a words-to-follow between 16 
and 768 words. In reality no active element should ever be shorter than a 
simple line element. That is why complex chains and complex shapes always 
have a dummy attribute linkage appended.

Note:
The VERIFY command represents a departure from EDG's "modal" approach to 
verification (Customization Guide, p. Ce-5).

*  The SET VERIFY command in EdG is simply used to control settings for the 
VERIFY command rather than to enable a verification "mode."
*  The /TRAP qualifier of the SET VERIFY command lets you specify how 
invalid elements are handled during verification; there is no Bad Element 
"mode" as in EDG. In EdG, SET ON_BADELE has the same effect as SET 
VERIFY/TRAP= WARNING, and SET NOON_BADELE has the same effect as SET 
VERIFY/TRAP=NONE.
   
Along the same lines, the /NEST qualifier of the SET SEARCH command lets 
you specify how nested complex elements affect search criteria; there is no 
Nest "mode," as in EDG, and the SET MODE/NEST command does not exist.



Other Enhancements
------------------

For each additional EdG enhancement of EDG, a page number(s) in the Version 
4 Customization Guide is given to help you understand the context.

   Stopping operations in progress (p. Ce-1)
   Input interpretation (pp. Ce-2, Ce-8, Ce-21)
   Searching elements (p. Ce-3)
   Displaying "multi-byte" text characters (p. Ce-18)
   Displaying coordinate values (p. Ce-18)
   Specifying attribute data word offsets as search criteria (p. Ce-21)
   Specifying cell names as search criteria (p. Ce-21)
   Specifying character strings as search criteria (p. Ce-22)
   Specifying element word offsets as search criteria (p. Ce-23)
   Specifying fonts as search criteria (p. Ce-23)
   Specifying search criteria relating to complex elements (p. Ce-24)
   Specifying element property bit settings as search criteria (p. Ce-24)
   Specifying element types as search criteria (p. Ce-26)
   Modifying text strings (p. Ce-28)
   Modifying elements (p. Ce-29)
   Modifying element property bit settings (p. Ce-30)
   Deleting elements (p. Ce-34)
   Translating values for display (p. Ce-35)
   @command files


Stopping operations in progress (p. Ce-1)
-----------------------------------------

>> To stop an operation in progress:

1. Press <Ctrl-C>.
   The operation may not immediately stop but will stop at the next logical 
break point.
   


Input interpretation (pp. Ce-2, Ce-8, Ce-21)
--------------------------------------------

As a means of streamlining operation (and for consistency with the VAX 
implementation), EdG now interprets some qualifiers and keywords, when 
entered without an explicit command, as a command.
*  A sequence-range is interpreted as a TYPE command.
*  A SET DISPLAY qualifier without a sequence range is interpreted as a 
TYPE CURRENT command.
*  A SET SEARCH qualifier without a sequence range is interpreted as a TYPE 
NEXT command.
   


Searching elements (p. Ce-3)
----------------------------

EdG has more ways to specify the elements to be searched than in EDG. This 
section updates the material on page Ce-3 of the Customization Guide.

The active search criteria for element searches are set with the SET SEARCH 
command and listed when you enter SHOW SEARCH. By default, EdG is set to 
search for active elements (elements not marked as deleted).

The search request specifies the search range (the elements to be 
searched). To find and display a single element, enter any of the 
following:

Finds       Displays

FIRST [n]   The first element in the file that 
            satisfies the active search criteria. n 
            indicates the occurrence of the element. 
            n defaults to 1.

PREVIOUS [n]The element before the current element 
            that satisfies the active search 
            criteria. n indicates the occurrence 
            from the current element. n defaults to 
            1.

-[n]        Same as PREVIOUS.

<Return>    The element after the current element 
            that satisfies the active search 
            criteria.

NEXT [n]    The element after the current element 
            that satisfies the active search 
            criteria. n indicates the occurrence 
            from the current element. n defaults to 
            1.

+[n]        Same as NEXT.

HEADER      The complex header for the current 
            element if the current element is a 
            component of a complex element and the 
            complex header satisfies the active 
            search criteria.



If an element is found, it becomes the current element. If an element is 
not found, the end-of-file mark becomes the current element and is 
displayed.

To search for and display multiple elements, enter any of the following:

Finds           Displays

[n1] THRU [n2|ENElements that satisfy the active 
                search criteria in the range defined 
                by sequence numbers. n2 must be 
                greater than n1. END indicates the 
                end of the file.

[n1]:[n2|END]   Same as [n1] THRU [n2|END].

[n1] FOR [n2]   Elements that satisfy the active 
                search criteria in the range starting 
                with the element at sequence number 
                n1 and continuing for n2 elements.

[n1] # [n2]     Same as [n1] FOR [n2].

AFTER           Elements beginning with the element 
                following the current element to the 
                end of the design that satisfy the 
                active search criteria.

BEFORE          Elements preceding the current 
                element that satisfy the active 
                search criteria.

REST            Elements beginning with the current 
                element to the end of the design that 
                satisfy the active search criteria.

WHOLE           All elements that satisfy the active 
                search criteria.



The last element found that satisfies the active search criteria becomes 
the current element. If an element is not found, the end-of-design mark 
becomes the current element.



Displaying "multi-byte" text characters (p. Ce-18)
--------------------------------------------------

SET DISPLAY/UNFORMATTED_TEXT[=SWAPPED] causes EdG to display the text in 
text elements as unformatted character streams. This qualifier is useful 
for displays that can handle generation of special characters (for example, 
Kanji). =SWAPPED, if present, forces the low order byte of each character 
to be displayed first instead of the other way around. SET 
DISPLAY/NOUNFORMATTED_TEXT (the default) formats text strings such that 
non-printable (or non-ASCII) characters are turned into escape characters 
(for example, \^C for ASCII-003, or \<DEL> for ASCII-127, etc.).



Displaying coordinate values (p. Ce-18)
---------------------------------------

SET DISPLAY/WORKING_UNITS[=GLOBAL_ORIGIN] causes EdG to display coordinate 
values in working units format. =GLOBAL_ORIGIN, if present, displays 
coordinates relative to the global origin. SET DISPLAY/NOWORKING_UNITS (the 
default) displays coordinates in UORs.



Specifying attribute data word offsets as search criteria (p. Ce-21)
--------------------------------------------------------------------

SET SEARCH/ALINKAGE(<offset>)=[(HIGH) | (LOW)] [%<radix>]<value> specifies 
a word offset in an element's attribute data. Radix is D (decimal), O 
(octal), X (hexadecimal), F (double-precision, floating point -- entire 
word comparisons only), or R (Radix-50 -- entire word comparisons only). 
Radix-50 text must be delineated by quotes. D(ecimal) is the default. 
(HIGH) or (LOW) specifies the high or low byte of the word. By default, 
comparison is performed on the entire word.

SET SEARCH/NOALINKAGE (the default) lets elements be located regardless of 
attribute data offset.



Specifying cell names as search criteria (p. Ce-21)
---------------------------------------------------

The cell_name specification in SET SEARCH/CELLNAME= "<cell_name>" can now 
contain the wildcard characters *, ?, and %.

The CELLNAME qualifier now automatically restricts searching to cells.



Specifying character strings as search criteria (p. Ce-22)
----------------------------------------------------------

The text_string specification in SET SEARCH/CHARACTERS= "<text_string>" can 
now contain the wildcard characters *, ?, and %.

SET SEARCH/CASE_SENSITIVE enables case-sensitive character string searches. 
SET SEARCH/NOCASE_SENSITIVE (the default) disables case-sensitive character 
string searches.

The CHARACTERS qualifier now automatically restricts searching to text 
elements.



Specifying element word offsets as search criteria (p. Ce-23)
-------------------------------------------------------------

%F (double-precision, floating point) and %R (Radix-50) are now valid radix 
specifications in SET SEARCH/ELEMENT(<offset>)=[(HIGH) | (LOW)] 
[%<radix>]<value>. Radix-50 text must be delineated by quotes.



Specifying fonts as search criteria (p. Ce-23)
----------------------------------------------

The FONT qualifier (for SET SEARCH) now automatically restricts searching 
to text and text node elements.



Specifying search criteria relating to complex elements (p. Ce-24)
------------------------------------------------------------------

SET SEARCH/NEST=<nest_level_list> specifies a complex element nest level or 
set of nest levels. nest_level_list is a list of one or more nest level 
numbers (0-9), with hyphens specifying ranges and commas as separators. 
/NEST=0 lets only non-complex elements be located.

SET SEARCH/NONEST (the default) lets elements on any nest level be located.



Specifying element property bit settings as search criteria (p. Ce-24)
----------------------------------------------------------------------

[NO]INFINITE and [NO]ORPHAN are now valid keywords in SET 
SEARCH/PBITS=<keyword[,<keyword>,...]>. INFINITE and ORPHAN are each 
equivalent to HOLE.



Specifying element types as search criteria (p. Ce-26)
------------------------------------------------------

The type_list specification in SET SEARCH/TYPE= <type_list> can now contain 
type names in addition to type numbers.

Type KEYWORD for type name 
     specification

1    LIBRARY_CELL or LCELL 

2    CELL 

3    LINE 

4    LIN_STRING or LSTRING 

5    GROUP_DATA 

6    SHAPE 

7    TNODE or NODE (text node)

8    DIGITIZER 

9    DESIGN_FILE (header)

10   LEVEL_SYMB 

11   CURVE 

12   CONNECTED_STRING or CSTRING (complex 
     chain)

14   COMPLEX_SHAPE or CSHAPE 

15   ELLIPSE 

16   ARC 

17   TEXT 

18   SURFACE 

19   SOLID or CAPPED_SURFACE 

21   BPOLE (B-spline pole)

22   POINT_STRING or PSTRING 

23   TRUNCATED_CONE or TCONE 

24   B_SURFACE_HEADER or BSURFACE_HEADER 

25   B_BOUNDARY or BBOUNDARY (B-spline 
     surface boundary)

26   BKNOT (B-spline knot)

27   BCURVE_HEADER 

28   BWEIGHT (B-spline weight factor)

33   DIMENSION 

34   SHCELL (shared cell definition)

35   SHINSTANCE (shared cell instance)

36   MULTILINE or MLINE 

66   MS (application)

87   RASTER_HEADER 

88   RDATA (raster data)



There are several special keywords that can be used to specify sets of 
element types:

Keyword      Types

DATA         5, 8-10, 66

DISPLAYABLE  All displayable elements

GRAPHIC      All graphic elements (DISPLAYABLE and 
             HEADER)

HEADER       All complex element headers

STANDARD     DATA, GRAPHIC 





Modifying text strings (p. Ce-28)
---------------------------------

If the length of the specified text string in a MODIFY CHARACTERS command 
differs from the original, EdG now truncates or pads the text string in the 
element (or set of elements), thereby changing the length of the 
element(s). If an element whose length is changed in this manner is a 
complex element component, the complex header's words-in-description is 
adjusted accordingly.

The specified text string can now contain special characters, which are 
specified as follows:
   \000 -- three octal digits to specify a byte value
   \xFF -- two hexadecimal digits to specify a byte value
   \^c -- control codes ^A through ^Z
   \wFFFF -- four hexadecimal digits to specify a wide character value
   \" -- quotation mark character
   \\ -- backslash character
   \* -- any other character (* represents character)
   


Modifying elements (p. Ce-29)
-----------------------------

%F (double-precision, floating point) and %R (Radix-50) are now valid radix 
specifications in MODIFY ELEMENT(<subscript>)=[(HIGH) | (LOW)] 
[%<radix>]<value> [range]. Radix-50 text must be delineated by quotes.



Modifying element property bit settings (p. Ce-30)
--------------------------------------------------

[NO]INFINITE, and [NO]ORPHAN are now valid keywords in MODIFY 
PBITS=<keyword[,<keyword>,...]> [range]. INFINITE and ORPHAN are each 
equivalent to HOLE.



Deleting elements (p. Ce-34)
----------------------------

It is no longer possible to delete locked elements with the DELETE command. 
To unlock an element, use MODIFY PBITS=NOLOCK.



Translating values for display (p. Ce-35)
-----------------------------------------

%F (double-precision, floating point) and %R (Radix-50) are now valid 
prefixes in a value specification in an EVALUATE command. Radix-50 text 
must be delineated by quotes.



@command files
--------------

EdG has the capability to execute commands from external command files. A 
command file is simply a text file that contains one EdG command per line.

>> To execute the commands in a command file:

1. Enter @<command_file_spec>.
   
Hint:
To easily create a command file composed of commands actually used:

1. Create a journal file (see SET JOURNAL_FILE).
2. Echo command line input to the journal file (see SET OUTPUT).
3. If necessary, edit the resulting text file so it contains only the 
desired commands.
   


EDG Functionality Not Yet Implemented
-------------------------------------

The following EDG commands are not yet implemented in EdG
*  SHOW MODE
*  CLOSE
*  DUMP
*  EDG
*  OPEN
*  WRITE
   
MODIFY CHARACTERS is partially implemented -- character search and replace 
(MODIFY CHARACTERS=SUBSTITUTE) is not yet implemented.



















Memory Use and Configuration
----------------------------

This appendix discusses memory usage and configuration considerations for 
MicroStation.

If MicroStation runs out of physical memory, its virtual memory manager has 
to swap data and program instructions out to disk, reading them in again 
when they are required. Disk swapping considerably slows performance, 
especially with large design files. MicroStation runs fastest if it has 
enough memory available for swap-free operation.

Memory Needed For Swap-free Operation covers how to calculate the amount of 
memory needed for swap-free operation and how to configure MicroStation to 
take maximum advantage of that memory. Working With Limited Amounts of 
Memory covers how to optimize performance if the amount of memory is 
limited. Disk Space Needed for the Swap File covers how to calculate the 
disk space requirement for the swap file. Disk Space Needed for the Swap 
File covers how to calculate the disk space requirement for the swap file.

   Memory Needed For Swap-free Operation
   Working With Limited Amounts of Memory
   Disk Space Needed for the Swap File
   Background Information


Memory Needed For Swap-free Operation
-------------------------------------

The total system memory requirement is the sum of MicroStation's 
requirement plus the OS requirement plus the requirements of other 
applications that will be run concurrently (on multitasking systems). For 
MSDOS, the OS requirement is about 1 MB (includes space for TSR's, DOS 
Extender, BIOS, adapters, etc.). 

MicroStation's memory requirement, consists of the following components:
*  MicroStation's base memory requirement
   If the Resource Cache and Undo Buffer user preferences are set to their 
default values, the base memory requirement is 4 MB.
*  Element cache -- Memory used to cache elements in design and reference 
files (that is, store them in RAM).
   The cache is dynamically allocated for each design file. See Memory for 
the element cache.
*  Range tree -- Memory used to contain an optional data structure called 
the range tree that provides dramatic improvements in snap and update times 
for views that show only a small portion of a large design. See Memory for 
the range tree.
*  Backing Store -- With the Use Backing Store preference set (as it is by 
default), MicroStation maintains an "offscreen" copy of each view window so 
obscured areas can be refreshed instantly when windows are rearranged. See 
Memory for backing store.
*  The memory for a database, if one is used. See Memory needed for 
database operation .
*  The memory used for rendering and/or exporting visible edges design 
files. See Memory needed for rendering or visible edges design file 
creation.
   Memory for the element cache
   Memory for the range tree
   Memory for backing store
   Memory needed for database operation 
   Memory needed for rendering or visible edges design file creation
   Total system memory required


Memory for the element cache
----------------------------

When enough memory is set aside to cache (store in RAM) all of the elements 
in the design file and its attached reference files, access to elements is 
much faster than if the elements have to be read from the disk every time 
they are needed. 

Note:
Having all elements cached provides a major performance improvement. 
Element caching is useful even if there is not enough room for all elements 
since MicroStation caches as many elements as the available memory allows.

>> To calculate the optimum element cache size:

1. Add up the sizes of the active design file and all the unique reference 
files attached to it.
   
Note:
For best performance you should set the Max(imum) Element Cache preference 
to a size at least as large as the combined size of the active design file 
and attached reference files. Max. Element Cache is set in the Preferences 
dialog box. By default, Max. Element Cache is set to 8000 KB (about 8 MB).



Memory for the range tree
-------------------------

MicroStation can build a "range tree" in memory so that it needs to 
consider fewer elements for a snap or update operation. If there is enough 
memory available and Max. Element Cache is set properly, the range tree 
provides dramatic improvements in snap and update times for views that show 
only a small portion of a large design. The cost for this speed improvement 
is memory.

The amount of memory required for the range tree is not as straightforward 
to calculate as for the element cache. This is due to two factors:
*  Not all elements go into the range tree. Only non-complex elements and 
the headers of complex elements are used.
*  The memory required for an element in the range tree depends on whether 
the element is in the element cache. A cached element requires only about 
16 bytes in the range tree while an element that is not cached requires 
about 36 bytes.
   
>> To calculate the memory required for the range tree:

We assume the following (both items 2 and 3 represent extreme worst cases):
1. There is enough memory (and Max. Element Cache is set large enough) to 
fit all elements in the element cache.
2. All elements are non-complex, meaning they all have to be in the range 
tree.
3. There are about 20,000 elements per MB.
   
Given these assumptions:
   where:
   RT is the memory required for the range tree in MB.
   20,000 is the number of elements per MB.
   16 is the number of bytes required by each element in the range tree.
   D + R is the total size of the design and reference files in MB.
   


Memory for backing store
------------------------

The memory required by backing store is the number of pixels per view times 
the number of open views times the number of bytes per pixel of display 
depth. Since this is dependent upon the number and size of the open view 
windows, it may be difficult to estimate but is usually 1.5 to 2 times 
display memory. For example, on a 1024 x 768,256 color (1 byte/pixel) 
display, the backing store requirement estimate would be 1.5 to 2 times 
(1024 x 768 x 1) or about 1 to 1.5 MB.



Memory needed for database operation 
-------------------------------------

Using a database requires additional memory. The amount depends on the 
database. For information about memory requirements for databases, see 
*XRef.



Memory needed for rendering or visible edges design file creation
-----------------------------------------------------------------

Both rendering and visible edges design file creation are time and memory 
intensive. If either is performed often, a productivity improvement is 
gained by making more memory available to MicroStation.

When a view is rendered, four bytes are used for each pixel in the image. 
If antialiasing is used, an additional four bytes per pixel are used. If a 
rendered image is saved, using the Save Image As... item in the File menu, 
an additional three bytes per pixel are used. 

   Example:


Example
-------

To render a view with antialiasing at a resolution of 1024 x 768 pixels 
with no disk swapping requires

To save the image with no disk swapping requires:

Therefore, it requires nearly 9 MB to render and save the view without 
disk-swapping.

Visible edge design file creation is much faster if adequate memory is 
available, especially if the design file is large or has many curved 
surfaces. The amount of memory used for visible edge design file creation 
is difficult to quantify exactly, since the visible edges model is stored 
as polygons. 

For example, the visible edges model of an architectural design that has 
mostly flat surfaces has almost a one-to-one correspondence between 
elements and polygons. This contrasts with a mechanical design that has 
many curved surfaces. A single curved surface can require hundreds or 
thousands of polygons, causing even a relatively small design file to 
require large amounts of memory and processing time for visible edge design 
file creation.



Total system memory required
----------------------------

Carry out the following steps to estimate the total system memory required.

   To calculate the total memory needed for swap-free operation:


To calculate the total memory needed for swap-free operation
------------------------------------------------------------

1. Add the following:
   MicroStation base memory requirement (usually 4 MB)
   Memory for the element cache
   Memory for the range tree
   Memory for backing store
   Memory for the database
   Memory for rendering
   Total memory needed for swap-free operation
   
   Example I: 
   Example II: 


Example I 
----------

A 0.6 MB design file with no reference files or database.

MicroStatio*4.0 MB 

Element    *0.6 MB
cache

Range tree *0.19 MB[a]

Backing    *1.0 MB 
store

Database   *0.0 MB 

Total      *5.79 MB

[a](20,000 x 16 x 0.6 MB) / 1,000,000
   
   

Example II 
-----------

A 5 MB design file with two 2.5 MB reference files, for a total of 10 MB. 
If no database is used, the following memory is needed for swap-free 
operation
   
MicroStatio*4.0 MB 

Element    *10.0 MB
cache

Range tree *3.2 MB[a]

Backing    *1.0 MB 
store

Database   *0.0 MB 

Total      *18.2 MB

[a](20,000 x 16 x 10.0 MB) / 1,000,000
   
Additionally, saving a 1024 x 768 pixel, antialiased rendered image without 
disk swapping requires 9 MB -- a grand total of 27.2 MB.

If a database is used, additional memory is required. See Memory needed for 
database operation  for more information.



Working With Limited Amounts of Memory
--------------------------------------

If the available memory is limited and design files are large, there are 
ways to adjust MicroStation to get the most out of the available memory. 
The main objective is to minimize disk swapping.
*  MOST IMPORTANT: Disable the range tree by turning on Conserve Memory in 
the Memory Usage category in the Preferences dialog box.
   
Users with limited memory should disable the range tree for the following 
reasons:
*  The range tree uses large amounts of memory when there is not enough 
memory to cache all the elements (recall that the memory required for an 
uncached element in the range tree is more than twice that for one that is 
cached).
*  The range tree is an "all or nothing" data structure that must include 
all appropriate elements in the entire design file to work. When memory for 
the range tree runs out, the range tree is completed on disk, causing disk 
swapping.
   
Hint:
If possible, make enough memory available to MicroStation so that all 
elements in the design and reference files can be cached. Set Max. Element 
Cache so it is at least as large as the combined size of the active design 
file and attached reference files.

Hint:
To speed startup when there is not enough memory to cache the entire 
design, you might want to turn off Use Color Table in the Reference File 
category of the Preferences dialog box. This eliminates a scan of the 
reference file(s) at startup.

Hint:
You can turn off Use Backing Store in the Display category of the 
Preferences dialog box to make more memory available.

Hint:
You can use batching procedures to repeat time-consuming procedures 
(including rendering, visible edge design file export, and DXF translation) 
without user intervention, for example overnight or during lunch hour. Then 
the fact that disk-swapping may be necessary is less of a problem. See the 
User Guide for information about the syntax for batch processing.



Disk Space Needed for the Swap File
-----------------------------------

Since MicroStation uses the hard disk as an extension of physical memory, 
it is important that sufficient free disk space be available for the swap 
file. The maximum size of the swap file can vary greatly depending upon the 
amount of physical memory installed and the type of functions MicroStation 
is performing. As a general rule, there should be at least 1/2 MB of free 
disk space before MicroStation is started; keep in mind that this number is 
approximate and may need to be increased for use of advanced MicroStation 
functions.

If MicroStation terminates abnormally and the swap file is not closed, the 
disk space occupied by the swap file may be temporarily unavailable to 
other programs. In that case, the space can be recovered by the DOS CHKDSK 
command as shown below:
CHKDSK /F

It is recommended that this command be added to "autoexec.bat" to be run 
automatically each time the system is booted.

   RAM disks and MicroStation
   Using a disk cache


RAM disks and MicroStation
--------------------------

A RAM disk is an area of extended memory that has been set aside to 
simulate a fast disk drive. Since any memory allocated to a RAM disk 
decreases the amount of physical memory that MicroStation can use, 
configuring a RAM disk is generally not recommended.



Using a disk cache
------------------

Most computer manufacturers provide a disk cache program along with their 
systems. The disk cache program keeps recently referenced disk sectors in 
memory, so that the next time they are referenced, the system does not have 
to read them from disk again. 

Since MicroStation refers to its resource file throughout normal 
processing, a large amount of disk activity is typically required. Thus, 
overall performance can benefit from installing a disk cache.

It is recommended that you allocate 256 KB of memory to a disk cache. See 
your computer system documentation for information on how to configure your 
disk cache.



Background Information
----------------------

MicroStation Version 5.0 operates the 80386/486 CPU in protected mode, 
which uses memory differently than traditional PC programs that operate in 
real mode. Real mode programs are restricted to operation in conventional 
memory; that is, memory in the first megabyte of the CPU's address space. 
One of the advantages of protected mode programs is the ability to use 
extended memory, or memory above the first megabyte, in addition to 
conventional memory.

Since DOS, its related drivers, and utilities operate in real mode and must 
reside in conventional memory, MicroStation attempts to maximize its use of 
extended memory. Communication between the protected mode application 
(MicroStation) and the real mode operating system (DOS) is handled by a DOS 
extender that is built into MicroStation. The DOS extender makes 
MicroStation "look" like a real mode program to the operating system so it 
can be loaded and executed just like any other program. However, once it is 
executed, the DOS extender switches the CPU into protected mode and loads 
MicroStation into extended memory.

The DOS extender in MicroStation requires about 250 KB of conventional 
memory to execute. In addition to this amount, MicroStation's graphics and 
input drivers can require up to 50 KB of conventional memory. This means 
that at least 300 KB of conventional memory must be free before 
MicroStation can run. Since this requirement is lower than it was for 
previous real mode versions of MicroStation, most users are not expected to 
have conventional memory-related problems. 

Although extended memory is not directly accessible to DOS or real mode 
programs, a number of utilities allow real mode programs to indirectly 
access extended memory. These include RAM disks (such as "vdisk.sys" or 
"ramdrive.sys"), disk caches, and memory managers that provide EMS 
capability. (EMS stands for Expanded Memory Specification, a memory 
expansion technique used by previous real mode versions of MicroStation; 
programs that support EMS on 80386/80486 platforms are referred to as EMS 
simulators.) 

These utilities typically reserve a block of extended memory when they are 
loaded using one of two standards:
*  The first extended memory allocation standard was introduced by IBM in 
the original "VDISK.SYS" program for the PC/AT. Programs that follow the 
VDISK standard allocate memory beginning with the lowest addresses of 
extended memory; hence this allocation standard is also known as bottom up 
allocation.
*  The second standard, which is used by Microsoft's "RAMDRIVE.SYS" and 
most other programs that use extended memory, is called top down 
allocation; that is, memory is allocated beginning with the highest 
addresses of extended memory.
   
MicroStation uses top down allocation for its own extended memory, but it 
will not disturb memory reserved by programs that use bottom up allocation, 
thereby allowing it to coexist with programs that use either memory 
allocation technique.

One shortcoming of the extended memory allocation standards is that the 
last program to allocate memory is the only one that can dynamically change 
the amount of memory allocated. For example, extended memory reserved by 
EMS simulators is only used by real mode programs, which are typically not 
active while MicroStation is running. However, since MicroStation loads 
after the EMS simulator, the EMS simulator cannot decrease the amount of 
extended memory it has reserved, resulting in a large block of unused 
extended memory from which MicroStation is excluded. Normally, in order to 
gain access to this memory the EMS simulator has to be disabled (a major 
inconvenience if, for example, a MicroStation application that requires EMS 
memory is run).

A further complication arises when a program that uses the CPU's Virtual 86 
(V86) mode is present in the system. V86 mode is actually a variation of 
protected mode and allows utility programs such as EMS simulators to make 
extended memory available to real mode programs by using the CPU's paging 
hardware. Unfortunately, it is not possible for the MicroStation DOS 
extender to switch the CPU from V86 to protected mode -- the mode switch 
has to be performed by the V86 mode program. This requires a standard 
method of communication between the two programs so that the DOS extender 
can make this request to the V86 mode program.

In order to provide this standardized communication and to solve the 
dynamic memory allocation problem described above, the Virtual Control 
Program Interface (VCPI) standard has been developed. If an EMS simulator 
(or other program) that conforms to VCPI is present, it acts as a memory 
server, and MicroStation requests extended memory through it rather than 
allocating the memory directly. This effectively lets several applications 
use the same extended memory without having to dedicate a block of memory 
to a particular application.

Since MicroStation requests memory exclusively through the VCPI server is 
installed, the total amount of extended memory available to MicroStation is 
the amount that the VCPI server reserved when it was loaded (less any in 
use by other applications). Therefore, it is usually advisable to allocate 
all extended memory that is not used disk caches, etc. to the VCPI server.

















Digitizing Tablets
------------------

This appendix discusses how to set up and use a digitizing tablet.

   Setting up to use a digitizing tablet


Setting up to use a digitizing tablet
-------------------------------------

If you own a digitizing tablet not mentioned in the following sections, it 
may emulate one of the tablets that is supported. Some digitizing tablets 
are DTEs and others are DCEs. Some tablets can be configured as either DTE 
or DCE through a DIP switch. Before connecting a tablet to your PC, read 
carefully the documentation provided with the tablet to determine the type 
of cable required. See Reassigning Buttons for more information about 
tablet cursor button mapping.

If you have trouble getting a tablet to work properly with MicroStation, 
see Digitizing tablet troubleshooting.

   Summagraphics MM1201 Data Tablet
   Summagraphics MM1812 Data Tablet
   The Summagraphics Bit Pad One and Bit Pad Two Tablets
   The Summagraphics MicroGrid  Series Tablets
   Summasketch III
   Calcomp 2000 and 2500 Series Tablets
   Calcomp 9000 and 9100 Series Tablets
   Hitachi HDG Series Tablets 
   Kurta Series One Tablet
   Kurta Series Two and IS/One Tablets
   Houston Instruments Complot 7000
   Houston Instruments True Grid 1017
   Houston Instruments True Grid 1011
   GTCO DigiPad Tablets
   Scriptel SPD and SPC Series Tablets
   The Altek Datatab Digitizers
   Numonics 2200 Series Digitizers
   Numonics 2205 Digitizers
   Supported Tablet Emulation
   Digitizing tablet troubleshooting


Summagraphics MM1201 Data Tablet
--------------------------------

The Summagraphics MM1201 Data Tablet has a 12" x 12" active area. It should 
be equipped with a four-button cursor to be used with MicroStation. No 
user-configurable switches are on the MM1201, but three jumpers are 
accessible by removing the back cover of the tablet. Most software 
packages, including MicroStation, assume the jumpers to be in the default 
configuration. If these jumpers have been removed, they must be returned to 
the default configuration (AA, AB, and AC are attached). 



Summagraphics MM1812 Data Tablet
--------------------------------

The Summagraphics MM1812 comes in either the MM or UIOF format. The two 
tablets are identical in appearance, and both provide 18" x 12" active 
areas. The two tablets can be distinguished only by referring to the 
documentation, which identifies the format on the first page.

Note:
The MM and UIOF formats are separate selections in usconfig. The DIP switch 
settings are not the same for the two.

For the MM Format MM1812, set the DIP switches as follows (switch 1 is 
farthest from the power supply connector):

    1     2    3    4    5    6    7    8

SW1 on    on   on   off  off  off  off  off

SW2 off   off  off  off  off  off  off  off

SW3 off   off  off  off  off  off  off  off



For the UIOF/ID Format MM1812, set the DIP switches as follows (switch 1 is 
farthest from the power supply connector):

    1     2    3    4    5    6    7    8

SW1 on    off  off  on   on   on   off  on

SW2 off   on   off  on   on   on   on   on

SW3 off   on   off  off  off  on   on   on



If an RS232 cable is not supplied with the tablet, a modem eliminator cable 
is used. If cables are provided with the tablet, they are configured to 
connect to the PC.



The Summagraphics Bit Pad One and Bit Pad Two Tablets
-----------------------------------------------------

The Summagraphics Bit Pad One and Bit Pad Two are plug-compatible tablets. 
This means that software that interfaces with one of the tablets will 
interface with the other. The Bit Pad One is an older model tablet and is 
not recommended for new configurations. The Bit Pad Two is a later model 
tablet and is similar in appearance to the Summagraphics MM1201.

Note:
The MM1201 is recommended over the Bit Pad One or Bit Pad Two.

The switch settings for the Bit Pad One are as follows:

Packed binary moSW1-7 on

200 lpi resolutiSW1-9 on

Continuous streaSW2-1 on, SW2-2 off

75 pairs/second SW2-3 on, SW2-4 off, SW2-5 on

9,600 baud      SW7-1 off, SW7-2 on, SW7-3 to 
                SW7-10 off, Strap B



The switch settings for the Bit Pad Two are as follows:

Remote control enaSW1-1 on

Transmit in proximSW1-2 off

Stream enabled    SW1-3 on

Switch disabled   SW1-4 off

Absolute Mode     SW1-5 off

70 pairs/second   SW1-6 on, SW1-7 on, SW1-8 off

Binary report formSW2-1 off

Increment set to 0SW2-3 off, SW2-4 off, SW2-5 off

200 lpi resolutionSW2-6 off, SW2-7 on, SW2-8 off

9,600 baud        SW3-6 on, SW3-7 on, SW3-8 off

Parity disabled   SW3-1 off

One stop bit      SW3-3 off

CTS handshake off SW3-4 off

Cursor output A   SW3-5 on

9,600 baud        SW3-6 on, SW3-7 on, SW3-8 off



A number of manufacturers produce tablets that emulate the Bit Pad One or 
Bit Pad Two. To use one of these, set their internal switches appropriately 
to produce the characteristics listed above. Be sure they are set for 
continuous stream mode using the binary report format, with 40-70 pairs per 
second at 9,600 baud. Parity should be set to even, with 7 data bits and 2 
stop bits.



The Summagraphics MicroGrid  Series Tablets
-------------------------------------------

The MicroGrid series of digitizers come in sizes from 12" x 12" to 42" x 
60". The tablet controllers have two DIP switches; one of these is 
accessible from the outside (DIP switch 1), while the other can be reached 
only by removing the cover of the controller. The appropriate settings for 
the switches are as follows

    1     2    3    4    5    6    7    8

SW1 on    off  off  on   on   off  off  off

SW2 off   on   off  on   on   on   on   on



The MicroGrid tablets have two serial ports, one designed to connect 
directly to DCE equipment (J4, serial port 1) and one designed to connect 
directly to DTE equipment (J5, serial port 2). If you have a 
straight-through cable, connect to J5. If you have a modem eliminator 
cable, connect to J4.



Summasketch III
---------------

The appropriate settings for the switches are as follows

    1     2    3    4    5    6    7    8

SW1 on    off  off  on   on   on   off  off

SW2 off   on   on   off  off  on   off  off

SW3 on    on   off  off  off  on   on   off





Calcomp 2000 and 2500 Series Tablets
------------------------------------

The Calcomp 2000 and 2500 Series tablets can be configured to emulate the 
Bit Pad One. For the older 2000 Series the settings are as follows

    1   2    3   4    5   6    7   8    9

SW1 off off  on  off  on  on   on  off  off

SW2 on  on   on  on   on  on   off off  on

SW3 off off  off off  off off  off off  on



The Series 2500 tablets do not have DIP switches. Instead, these tablets 
are configured using soft switches manipulated with the cursor. The correct 
settings for these switches are as follows:

      1    2    3    4    5    6    7    8

Bank 1off  off  off  off  off  off  off  on

Bank 2on   off  on   off  on   on   off  off

Bank 3off  off  off  on   on   on   off  off

Bank 4off  off  on   off  on   off  off  off

Bank 5off  [a]  off  on   off  off  on   on

[a]Configures the tablet as DCE (1 or on) or DTE (0 or off). If DCE, use a 
straight-through cable. If DTE, use a null modem cable.
   
To configure MicroStation for either model tablet, select the Bit Pad One 
option from the input selections in usconfig. If your tablet has an active 
area larger than 11 inches square or a cursor with more than 4 buttons, 
specify the tablet size and the cursor button mapping.



Calcomp 9000 and 9100 Series Tablets
------------------------------------

The Calcomp 9000 and 9100 series tablets are available in sizes from 12" x 
12" to 60" x 44". 

   Calcomp 9000
   Calcomp 9100 series:


Calcomp 9000
------------

Switch settings for the 9000 series tablets are as follows

    1     2    3    4    5    6    7    8

SW1 U[a]  U    U    U    U    D[b] U    U

SW2 U     D    D    D    X[c] X    X    X

SW3 D     U    U    U    D    U    D    D

[a]U indicates up. 
   
[b]D indicates down. 
   
[c]X indicates the switches that determine the size of the digitizer 
attached to the controller, which should not change from their factory 
settings.
   
   

Calcomp 9100 series
-------------------

Switch settings for the 9100 series tablets are as follows
   
           1   2    3   4    5   6    7   8

AREA 1-SW1 off off  on  off  on  on   X[a]X

AREA 2-SW1 off off  on  off  on  on   on  off

AREA 2-SW2 off off  on  off  on  on   on  on

[a]X indicates the switches that determine the size of the digitizer 
attached to the controller, which should not change from their factory 
settings.
   
Note:
Some Calcomp documentation may refer to the switch settings using the terms 
"open" and "closed." "Open" is the same as off and "closed" is the same as 
on.



Hitachi HDG Series Tablets 
---------------------------

The Hitachi HDG Series tablets (including the Tiger Tablet) can be 
configured to emulate the Bit Pad One.

   Hitachi HDG Series Tablets - 1111B, 1111BN, 1117B, 1515B, 1515BN
   Hitachi HDG Series Tablets - 1111C


Hitachi HDG Series Tablets - 1111B, 1111BN, 1117B, 1515B, 1515BN
----------------------------------------------------------------

The switch settings are as follows

    1     2    3    4    5    6    7    8

SW1 on    off  off  off  off  off  off  off

SW2 off   off  on   off  off  off  on   off

SW3 on    off  off  off  off  off  on   off





Hitachi HDG Series Tablets - 1111C
----------------------------------

The switch settings are as follows

    1     2    3    4    5    6    7    8

SW1 on    off  off  off  off  off  off  on

SW2 on    off  on   off  off  off  on   off

SW3 on    off  off  off  off  off  on   off



To configure MicroStation for a Hitachi HDG series tablet, select the Bit 
Pad One option in usconfig. If your tablet has an active area larger than 
11 inches square or a cursor with more than 4 buttons, specify the tablet 
size and the cursor button mapping.



Kurta Series One Tablet
-----------------------

The Kurta Series One tablets can be configured to emulate the Bit Pad One 
with the following switch settings

              1   2   3   4   5   6  7   8

ProgramSwitch:off off off off off offoff on

Mode/BaudSwitcoff off off on



Note:
Some Kurta Tablets are equipped with three-button cursors (pucks). If your 
cursor has three buttons, press <Alt-4> to Reset.

To configure MicroStation for the Kurta Series One tablets, select the Bit 
Pad One option in usconfig. If you have a tablet with an active area larger 
than 11 inches square, specify the tablet size and the cursor button 
mapping.



Kurta Series Two and IS/One Tablets
-----------------------------------

The higher resolution Kurta Series Two and IS/One tablets use the following 
DIP switch settings

   Kurta Series Two
   IS/One


Kurta Series Two
----------------

The switch settings are as follows

              1   2   3   4   5   6  7   8

ProgramSwitch:on  off off off off offon  off

Mode/BaudSwitcoff off off on





IS/One
------

The switch settings are as follows

    1     2    3    4    5    6    7    8

SWA off   off  off  on   off  on   on   off

SWB off   on   off  on   off  off  on   off

SWC on    on   off  off  X[a] X    X    X

[a]Switches represented by X are set depending on the size of the tablet. 
Consult the Kurta manual for the correct settings.
   
Note:
For the Kurta IS/Three, configure as a GTCO DigiPad and set:

Program Switch  1-8 OFF

Mode Baud Select1 ON; 2-4 OFF





Houston Instruments Complot 7000
--------------------------------

The DIP switch settings for the Houston Instruments Complot 7000 are as 
follows

    1     2    3    4    5    6    7    8

SW1 1     0    0    0    0    1    1    1

SW2 0     1    0    0    0    0    1    1

SW3 1     0    0    0    0    0    0    0

SW4 1     0    1    1    1    0    0    0

SW5 0     0    0    0    0    1    1    0

SW6 0     0    0    1





Houston Instruments True Grid 1017
----------------------------------

The DIP switch settings for the Houston Instruments True Grid 1017 are as 
follows

    1     2    3    4    5    6

SW1 on    on   on   on   off  on

SW2 off   on   off  on   on   on





Houston Instruments True Grid 1011
----------------------------------

Select Bit Pad One from the tablet options in usconfig. Use the following 
DIP switch settings

    1     2    3    4    5    6

SW1 on    on   on   on   off  on

SW2 off   on   off  on   on   on





GTCO DigiPad Tablets
--------------------

GTCO supplies tablets from 11" x 11" through 42" x 60". The DIP switch 
settings appropriate for these tablets are as follows

    1     2    3    4    5    6    7    8

SW1 off   off  on   on   off  off  off  on

SW2 on    off  off  off  on   off  off  off

SW3 off   off  off  on   on   off  on   off



Select Large GTCO Tablet from the tablet options in usconfig. You will be 
prompted to select the size of the tablet.

For compatibility with previous versions of MicroStation, the smaller GTCO 
tablets can be configured to emulate the Bit Pad One, or the GTCO DigiPad 
5a 1117 option can be selected in usconfig. In the latter case, the 
following switch settings are appropriate:

    1     2    3    4    5    6    7    8

SW1 off   off  on   on   on   on   off  off

SW2 on    off  on   on   off  off  off  off

SW3 off   on   off  on   off  off  on   on



The DigiPad tablets have two serial ports. One of them (J6) is designed to 
connect directly to a DTE device and can be connected to the PC with a 
straight-through cable. The other (J5) connects directly to a DCE device 
and should be used if you have a null modem cable from your PC.



Scriptel SPD and SPC Series Tablets
-----------------------------------

Scriptel Tablets come in sizes from 11" x 11" to 24" x 36". Set the DIP 
switches as follows

    1    2   3   4   5   6    7   8   9

SW2 off  off off off off on   off on  on

SW3 off  off on  on  on  off  on  on  on



Note:
On the Scriptel tablets, on is down and off is up.

Note:
The new tablet model RDT uses "soft" switch settings rather than the DIP 
switch settings shown above. The soft settings are used to emulate the 
desired supported tablets.



The Altek Datatab Digitizers
----------------------------

The large Altek Datatab Digitizers range from 12" x 12" to 42" x 130". 
MicroStation supports active areas of only up to 60 inches in the length or 
width direction (for example, 42" x 60"), using either the AC30 controller 
or AC40 controller.

MicroStation supports the standard or alternate binary output formats for 
the AC30 controller. Select alternate format or standard format in 
usconfig, depending on the ROMs installed in your AC30 controller. You will 
be prompted to select the tablet size. For the standard or alternate binary 
format, the switches are set as follows:

             1   2   3   4   5   6   7   8

Left SwitchBaoff off on  on  on  on  off off

Right        off off off off on  off off off
SwitchBank:



The serial port on the Altek AC30 is a DTE, so it requires a null modem 
cable for connection to the PC.

If you have the AC40 controller, select that option in usconfig. You will 
be prompted to select the tablet size. The switch settings for the AC40 are 
as follows:

    1   2  3   4   5   6   7  8   

SW1 on  offoff off on  on  offoff Communication

SW2 on  on off off off on  on on  Output Format

SW3 off on on  on  off off on on  Mode

SW4 on  offoff off off on  offon  Miscellaneous





Numonics 2200 Series Digitizers
-------------------------------

The Numonics 2200 Series Digitizers are available in sizes from 12" x 12" 
to 60" x 44". The switch settings for the Numonics 2200 tablets are as 
follows

           1   2   3   4    5   6   7   8

SWA        on  off on  on   off on  off on

SWB        on  on  on  on   on  on  on  on

Mode Switchon  off off off





Numonics 2205 Digitizers
------------------------

The switch settings for the Numonics 2205 and 2206 tablets are

     1    2    3    4    5    6    7    8

Switcoff  off  off  on   off  on   on   off





Supported Tablet Emulation
--------------------------

If you have a tablet that MicroStation does not appear to support, it is 
possible that your tablet emulates one of the supported tablets closely 
enough to be used. The MicroStation tablet driver supports four binary 
output formats

MM1201, MM1812 (MM format):

        7    6   5    4    3    2   1    0

byte 1  1    PR  T    SX   SY   Fc  Fb   Fa

byte 2  0    X6  X5   X4   X3   X2  X1   X0

byte 3  0    X13 X12  X11  X10  X9  X8   X7

byte 4  0    Y6  Y5   Y4   Y3   Y2  Y1   Y0

byte 5  0    Y13 Y12  Y11  Y10  Y9  Y8   Y7



PR is proximity; SX and SY are sign bits; Fa, Fb, and Fc are flag bits for 
cursor buttons; and X0-X13 and Y0-Y13 are coordinates. Eight data bits and 
odd parity are expected.

Bit Pad One, Bit Pad Two, GTCO DigiPad 5A 5 byte format:

        7    6   5    4    3    2   1    0

byte 1  P    1   Fd   Fc   Fb   Fa  0    PR

byte 2  P    0   X5   X4   X3   X2  X1   X0

byte 3  P    0   X11  X10  X9   X8  X7   X6

byte 4  P    0   Y5   Y4   Y3   Y2  Y1   Y0

byte 5  P    0   Y11  Y10  Y9   Y8  Y7   Y6



P is the parity bit, Fa-Fd are flag bits for the cursor buttons, and X0-X11 
and Y0-Y11 are coordinates. Seven data bits are expected and parity is 
ignored.

UIOF data format MM1812 (UIOF/ID), Summagraphics Microgrid series:

        7    6   5    4    3    2   1    0

byte 1  P    1   0    0    Mb   Ma  T    PR

byte 2  P    0   0    0    Fd   Fc  Fb   Fa

byte 3  P    0   X5   X4   X3   X2  X1   X0

byte 4  P    0   X11  X10  X9   X8  X7   X6

byte 5  P    0   0    SX   X15  X14 X13  X12

byte 6  P    0   Y5   Y4   Y3   Y2  Y1   Y0

byte 7  P    0   Y11  Y10  Y9   Y8  Y7   Y6

byte 8  P    0   0    SY   Y15  Y14 Y13  Y12



Ma and Mb are model identifiers. T is the tablet identifier, Fa-Fd are 
flags bits, X0-X15 and Y0-Y15 are coordinates, and SX and SY are the signs. 
Seven data bits and even parity are expected.

6 byte format, DigiPad 5A.

        7    6   5    4    3    2   1    0

byte 1  1    Fe  Fd   Fc   Fb   Fa  X15  X14

byte 2  0    X13 X12  X11  X10  X9  X8   X7

byte 3  0    X6  X5   X4   X3   X2  X1   X0

byte 4  0    0   0    0    0    0   Y15  Y14

byte 5  0    Y13 Y12  Y11  Y10  Y9  Y8   Y7

byte 6  0    Y6  Y5   Y4   Y3   Y2  Y1   Y0



Fa-Fe are cursor button flags, and X0-X15 and Y0-Y15 are coordinates. Eight 
data bits and no parity are expected.



Digitizing tablet troubleshooting
---------------------------------

If your digitizing tablet does not work with MicroStation, make sure you 
have connected your tablet and set the DIP switches or jumpers according to 
the instructions in the previous section.

Then ensure that the power supply is plugged into the wall and the 
connection to the RS232 cable is good. Faulty connections are a common 
cause of unnecessary frustration.

If all connections are good, confirm that the MicroStation software has 
been properly configured for the tablet on your system. Ensure that you 
have correctly answered the questions asked when MicroStation was 
configured. Check the specific responses pertaining to the tablet model and 
the serial port to which the tablet is connected.

Note:
If you must reconfigure MicroStation, be sure to reboot the PC after doing 
so to implement the changes that have been made.

If the problem is still unsolved, you should run the MicroStation tablet 
diagnostic utility, inpttest.

















Connecting a Plotter
--------------------

Each of the plotters supported by MicroStation connect to the PC using one 
of the serial communication ports. Since the PC and the plotter are DTE, a 
modem eliminator cable must be used.

The maximum transmission rate supported by MicroStation's plotting utility 
is 57,600 baud. Configure the plotter for 57,600, 19,200, 9,600, 4,800, 
2,400 or 1,200 baud. See your plotter manual for information about how to 
configure the plotter transmission rate.

Plotters supported by MicroStation may connect to the PC using either a 
serial port or a parallel port. When a serial port connection is used, the 
proper cable is required. Your plotter supplier or manufacturer can provide 
the proper cable. In general, a "Null Modem" is required between the 
plotter and the PC. Calcomp plotters usually have the "Null Modem" built 
in. but most other plotters need it. 

   Hewlett-Packard plotters
   Calcomp plotters
   Houston Instruments Plotters 
   Ioline Plotters
   PostScript printers


Hewlett-Packard plotters
------------------------

If you have a Hewlett-Packard plotter supported by MicroStation, configure 
it as follows

Parameter             Value

Interface Mode        RS-232C

Stand Alone/Eavesdrop Stand Alone

Monitor Mode/Normal   Normal

Local/Normal          Normal

Parity                None

Duplex                Full

Hardwire/Modem        Hardwire

DTR-Bypass/Normal     Normal

Baud Rate             9600

 



Calcomp plotters
----------------

If you have a Calcomp plotter with the 907 data format (this includes all 
907 and 1040 series plotters), configure it as follows

Parameter             Value

Scale Factor          1:1

Mirroring             Off

Parity                None

Bits/Character        8

Stop Bits             1

Clock                 Internal

Serial/IEEE           Serial

Host Baud Rate        9600

Mode                  PCI

Term Muting           No

Checksum Enable       No

Isochronous           No

End of Message Char.  03

Direct Control        Yes

XON/XOFF              No

Sync Codes            1

Sync Code Value       002



Note:
The data formats used by Calcomp plotters require that PLOTFILE be used for 
plotting. On the 104X series plotters, connect the cable to the port 
labeled "DTE to Host" and set DIP switches on the back as follows:

Switch  Position

1       0

2       1

3       0

4       1

5       0

6       0

7       0

8       0





Houston Instruments Plotters 
-----------------------------

The figure at the left shows the cable used to connect a Houston 
Instruments plotter to the PC.



Ioline Plotters
---------------

The cable used to connect an Ioline plotter to the PC is the same as the 
one used to connect the Houston Instruments plotter. Refer to the figure 
"Houston Instruments cable."



PostScript printers
-------------------

Most PostScript printers are connected to the PC using the parallel 
interface in the computer. Use a standard DB25 to Centronics parallel cable 
for this connection. If the printer cannot be connected using a parallel 
cable, try using a Hewlett-Packard plotter cable.


