Original Article Date: March 8, 2004
For those of you working in the V7 Workmode, you may have run into some quirks such as MicroStation V8 moving and scaling elements or shifting the global origin. Understanding how MicroStation V8 works will help eliminate these problems.
2004-03-11 Added a note regarding enhanced precision.
2006-02-09 Added Barry's blurb regarding references.
2006-07-11 Added a note about units.def from Dan Abney.
When you open a V7 design file for editing, MicroStation V8 converts the file to an internal representation in memory. You can essentially think of the file being converted to the V8 format for editing and then being saved back down to a V7 file upon closing.
During the editing process, you are presented with a V8 design plane which is approximatly two million times larger along each axis than a V7 design plane. In earlier version of MicroStation V8, this inadvertedly allows you to place elements and reference attachments outside of the allowable limits for a V7 design plane.
When you close the file, MicroStation V8 needs to resolve any element that is out of bounds and as a result will not only scale the elements but may also shift the global origin to accomodate the graphics. Upon opening the file for editin in V7, you may find that there has been an unexpected change in the location and size of graphics. Bentley's Josh Schifter sums it up nicely:
"When V8 writes a V7 file, it needs to ensure that all the elements are within the V7 design plane. If any element is outside the V7 design plane, but the total range of the elements is small enough to fit, then the elements are all shifted and the global origin is shifted in the opposite direction to counteract the shift.
If some other File_B is referencing the shifted File_A, then the elements of File_A will apear to have moved when viewed through File_B.
The only way to avoid this is to avoid drawing anything outside the V7 design cube. In V7 workmode, V8.5 does a pretty good job of restricting you from drawing outside the cube. Unfortunately the restriction is not perfect. For example, it is still possible to attach a reference near the edge of the design cube such that it extends over the edge."
To help users avoid drawing elements near or beyond the edge of the V7 design plane, Josh wrote and posted an MDL that displays the V7 design plane boundary. This application is available from his post via a Newsreader such as Outlook Express, or via the Internet.
For Outlook Express navigate to news://firstname.lastname@example.org
For Internet Explorer, navigate to http://discussion.bentley.com/cgi-bin/dnewsweb.exe?cmd=article&group=bentley.microstation.v8.general&item=35778&utag= and look at the bottom of the posting.
To use this nifty utility, simply copy and place the application in your MDL folder which would typically be: ...\Bentley\Program\MicroStation\mdlapps\
Back in MicroStation, keyin mdl load showdesignplane V7 to show the V7 design plane or mdl load showdesignplane V8 to show the V8 design plane. The resulting boundary element is a transient element which can be removed by unloading the application with mdl unload showdesignplane.
When working in the V7 workmode, you should make every possible attempt to keep you elements well within the limits of the V7 design plane. In earlier versions of MicroStation V8 (ie: 08.01.02.15) you can still draw outside of this boundary but will presented with a warning dialog when attempting to close the file:
MicroStation V8 - 2004 Edition will not allow you to place elements beyond the V7 design plane limits. This functionality is controlled by the variable CAPABILITY_LARGE_DESIGN_PLANE which is disabled by default.
When dealing with V7 files that have references attached, it's important to note the following information from Barry Bentley:
"When we save a file to V7, we need to look at its references in order to tell whether the whole conglomeration of elements fits in MicroStation/J's design plane (if they don't we have to do some fooling around with the units to make them fit). Usually the files are already loaded so we don't have to load them. ...You will be much more productive if you can move to pure V8 files."
If you notice that referenced V7 files don't line up or are shifted on one machine, but are OK on another, then Dan Abney suggests the following:
"...check to see if your units.def file is the same on all machines. It's defined by MS_CUSTOMUNITDEF. The reason for this is that when a V7 file is upgraded or referenced, MicroStation V8 checks the MU:SU ratio as well as the unit labels then attempts to find a match in the units.def file which in turn provide the units in the V8 format. Another test would be to open the V7 file (do not upgrade it) and check the working units. Repeat on the other workstations. If the machines have different units.def files, you would see different working units in the file."
One last note....The following suggestion comes from Miro Matas:
If you intend on editing design files with MicroStation /J, SE or even 95, it is suggested to set V8's configuration variable MS_V7SAVEWITHOUTENHANCEDPRECISION = YES. This will ensure that enhanced precision is not saved with the element which may cause undesireable behaviour in the earlier products.
AskInga Article #183