You are here:   Home »  Import CAD Formats »  DGN (Microstation & Others)  

Okino logo
Okino's 'MicroStation DGN' CAD File Importer
Import 3D elements from DGN files, including 3D solids and complex shapes.

Arrow Importing MicroStation DGN Files and History of the DGN 3D File Format

This geometry import converter reads in native MicroStation DGN files, version 7.0 or newer. This is probably the most complex 3D DGN importer which presently exists which is exemplified by the following documentation.

The corresponding DGN exporter online documentation can be found here.

Needless to say, the DGN file format is steeped in decades-long history and is rather complex to interpret and turn into a simple and clean 3D model. This DGN importer goes a long way to take the raw elemental DGN data and turn the data into something most 3D rendering and animation packages can handle. Okino has worked on this DGN importer and its previous R&D investigations since 1996! It is the longest-in-development 3D converter in Okino's history - this is due to the extreme complexity of the DGN file format and the lack of any published information.

Much of the complexity also comes from the fact that large DGN files just can't be blindly imported into programs such as 3ds Max, Maya, Softimage, Lightwave, CINEMA-4D and other down-stream file formats or programs such as Adobe Acrobat. Okino's DGN importer focuses entirely on it being a "stepping stone", allowing very complex DGN files to be imported then highly optimized/manipulated so that the final compact scene can be re-purposed to other programs and file formats (this optimization does not reduce the geometry's fidelity in any manner).

The DGN importer is sold as part of the Granite/Pack license due to its dependency on our BREP solids technology.

Arrow Features of the DGN Importer

  • Import of lines, line paths, complex polygons, complex paths, complex surfaces, shared cells, complex extrusions, complex surface of revolutions, solids, BREP solids (Parasolid/ACIS), meshes, multi-lines and polygons.

  • Conversion of connected 3D lines elements into either an exact internal 3D polyline representation.

  • Conversion of analytical ellipses into equivalent polylines or 3D discs.

  • Smart "welding" of multitudes of DGN basic elements (arcs, lines, b-spline curves, etc) into single, more complex geometric entities. DGN files are notorious for being strewn with many basic geometric elements, and this importer goes to great efforts to reduce these.

  • Import of 3D NURBS curves either as true NURBS curves or polyline equivalents.

  • Import of 3D NURBS surfaces either as true trimmed NURBS surfaces, untrimmed NURBS surfaces or meshed variations.

  • Handling of recursive Xrefs (external references), from a master DGN file. Matching of units between the parent and child Xref'd files is handled.

  • Proper units matching. Thus, if a millimeter based DGN file is imported into 3ds Max (inches), then the scene will be scaled appropriately.

  • The DGN elements can be grouped in any combination of model name, layer name, or flat hierarchy ("smart" hierarchy generation).

  • Geometry processing functionality ensures the "faceted" geometry typical of DGN files gets cleaned up: vertex welding, polygon/normal unification, normal flipping and automatic creation of vertex normals where none exist

  • A major aspect of the DGN importer is its ability to extract embedded Parasolid BREP solids data from the DGN file and "hook it into" the DGN element hierarchy tree. Many user interface options are provided to allow complete control over this Parasolid extraction process.

  • Complex processing of all main variations of how Microstation applies attributes on a pre-view, per-level or other key methods (such as fill attributes, color attributes, visbility, etc). Microstation is notoriously complex in this regard.

  • Import from a directory of Intergraph PDS "DGN files" using the Intergraph .dri "Design Review" file (which acts as a master file of DGN files to import).

Arrow Documentation for Each Importer Option Panels

Click on any one of the small screen snapshots to jump to the corresponding section of this WEB page:

Main Okino/ODA Units & Hierarchy Elements Elements2
[1] [2] [3] [4] [5]

BREPs Tessellation Mesh & XRefs Raster Images
[6] [7] [8] [9]

Arrow History and Overview of the DGN File Format, and when to use DGN format)

The "DGN" file format was developed in the 1980's by Intergraph Corp and adopted as the main file format of the Bentley MicroStation program and of Intergraph's PDS line of software. There are two primary versions: the old V7 format (prior to the year 2000) and the current V8 format. Both are very different and both are supported by this importer.

Okino likes to consider a V8 file to be of two varieties: (1) "GIS" like models defined using basic primitives like lines, curves, arcs and 3D objects defined by the extrusion and revolution of these basic elements - these types of files are typically glutted with an enormous number of basic elements which can result in massive scenes that can very slow to display and take up a lot of memory (and hence the heavy Okino optimization processors provided in this importer). (2) The second variety of DGN file uses the more modern "BREP solids" geometry type to define the 3D objects as lighter weight and more efficient NURBS surfaces and solids.

In our decades of experience with DGN format we recommend the following methods to source data from Bentley MicroStation (see further below for Intergraph PDS products):

  • If available, use STEP AP214 files and Okino's STEP importer when your scene is primarily defined by BREP solids.
  • If you have a lot of piping (such as from a oil refinery), then use VRML2 files exported from MicroStation. Set the "Pixel tolerance" on the MicroStation VRML2 exporter from 2.0 (average quality) down to 0.05 (extremely high quality curved objects). The downside of this method is that you'll lose object naming, hierarchy, materials, etc. (due to how the VRML2 file was created by MicroStation) but you will get a quicker conversion of the raw geometry data.
  • Otherwise, if your scene is defined by the "traditional" glut of basic line, arcs, curves and extrusion/revolutions, with few or no ACIS/Parasolid BREP solids, then use this Okino DGN importer. Regardless, this importer has full support for importing BREP solids, trimmed NURBS surfaces, NURBS curves and all geometry types found in the DGN file.

Arrow Tutorial: How to Import Massive DGN Files (PDMS Plants, Oil Refineries, etc)

[ This tutorial was written from an extreme example whereby an animation company using 3ds Max was contracted to import and animate an ultra-massive oil refinery, from the actual Microstation DGN 3D plans, in all of its fine detail. This was simply undoable. Just a small portion of the oil refinery took over a week to import into 3ds Max using 200 externally referenced DWG files, a lot of personal time, and much down-grading of the data once imported into 3ds Max. Okino's alternative and highly refined direct DGN import process, and post-processing optimizations, allowed this one week of work to be reduced into 30 minutes of automatic processing, whereby the final refined and single Okino .bdf file could be "loaded into 3ds Max in 2 minutes and ray traced in 30 seconds". The only user interaction required is for optional camera placement. ]

The DGN file format is very deceptive compared to all other 3D formats which Okino has created converters for. We place the DGN file format and Microstation into a world of their own. The file size is particularly deceptive to those who have never converted DGN files before into other programs - as an example, normally we would consider a 50MB CAD file to be on the small side, but 50MB of DGN data is actually highly compressed and 'procedural' in nature, so it can be equivalent to 200-300MB or more of raw binary CAD data.

While this importer was written mainly around the concept of importing and processing large DGN files, special care and attention must be taken when dealing with truly large DGN datasets. This process will not be evident to new users, and hence we'll go through the exact process in this tutorial. The following tutorial will document a real world conversion process which was made from DGN files of an oil refinery.

First and foremost, there is the choice of which file format to use to convert the data. Many people are drawn towards the DWG file format but that is one of the world's least best 3D file formats for 3D conversion. For this tutorial we will be importing native DGN files so (1) to provide the best conversion, and (2) to prevent all the manual work needed to hand convert the DGN files to other intermediate file formats (such as U3D) inside the Microstation software. Many DWG importers in other programs tend to slow down to a crawl when importing very large files, so this should be avoided. Our goal is to import the DGN file(s) into Okino software, highly optimize them, and only then send them out to the destination program whereby they'll load, display, animate and render much faster.

For this example, we will be importing from 10 different DGN files which define one oil refinery, none of which have a 'master DGN file' to load them all in at the same time. The total file size is 45MB - while not perceptually large, an equivalent binary DWG file of this entire oil refinery from Microstation was 3.6 times larger in size. Okino's pipeline will do this entire process much faster and with a lot less overall memory, resulting in a fully interactive 3D model for 3ds Max.

The DGN import and optimization process will be done initially in Okino's stand-alone PolyTrans or NuGraf software.

  • As step # 1 please execute the Okino NuGraf or PolyTrans stand-alone software. Also exit all extraneous software, background processes and services to free up as much real memory as possible. You do not want to start using swap-space memory as that will slow down your machine considerably.

  • Regardless of whether you follow any further part of this tutorial, you may wish to change the OpenGL degrade mode so that it begins to use a simpler redraw display method whenever you interact with the scene via the mouse. From the main menu: Views / Configure OpenGL Options.... Choose the Auto Degrade panel. Enable Auto degrade on mouse down event. You may want to enable any of the other degrade modes as well. Thus, whenever you perform an operation such as panning the camera, zooming the camera in/out, etc, the OpenGL view windows will drop into a simpler wireframe display mode instead of trying to redraw the complex DGN imported scene in full shaded mode.

  • Put the Okino software into Non-OpenGL Bounding Box display start-up mode. Invoke the Edit/Preferences/General Startup Preferences menu item and set the Default Object Display Mode to OpenGL: Bounding Boxes on the dialog box which appears. We'll be using this simplified display mode to make for fast camera manipulation once the DGN file(s) have been imported. We do not want to go into the full OpenGL Shaded Mode until the model has been highly optimized. Also, by using this simplified OpenGl display mode, much less memory will be used during and after model import.

  • You will also need to invoke this menu entry: Views / Display All Views As / OpenGL / Bounding Boxes.

  • Start the DGN importer. For PolyTrans, invoke the menu item Translate! / Import / DGN and for NuGraf invoke the menu item File / Import / DGN. If you have been provided multiple files with a known top-level 'master file' then choose that master .dgn file only via the file selector. If you have a disjoint collection of DGN files (and no 'master file') to load, then select all of those files on the Windows file selector. Press the Open button to complete the file selection.

  • When the DGN importer's option panels appear, press the Reset button. You may want to press the >> Speed-up Hints << button and read the suggestions. Now change these default DGN options:

    1. Enable the Import polygon + NURBs data only on the first panel. In most cases you will not need to import 3D vector polylines.

    2. If you will be importing multiple DGN files during one import process then disable the Re-center scene at the origin if coordinates are too large option on the Units/Hierarchy panel. We don't want each imported DGN file to be re-centered relative to its own origin/center when loading multiple files.

    3. You will most likely perform the DGN import process a few times until you get to know your scene well. On subsequent imports you may want to disable the Import elements on visible levels only if you suspect that some elements are not visible (this should not be necessary). You will also most likely want to change the Scene Scaling Factor on the Units/Hierarchy panel on subsequent imports if you find that the imported scene is too large (our example oil factory was over 10 million units wide, while you ideally want to keep the model roughly under 10,000 units wide).

    4. If you wish to see the imported DGN files in the rawest of form, disable the Optimize Hierarchy checkbox on the Units/Hierarchy panel. Normally you would want to keep this enabled so that the first level of hierarchy optimization is performed during the import stage. If you disable this option then the imported scene will be an exact representation of the data within each DGN file, but the scene will redraw much slower and be difficult to navigate.

    5. 3D Plants, which uses a lot of 3D piping, most often are modeled with a huge number of 3D cylinders and cones. On the Enables2 panel it is suggested that you lower the Cone/Cyl Subdivs option from 6 to 3 or 2. This will highly reduce the number of polygons used to define the piping.

    6. On the Tesselation panel you may want to increase the Normal Deviation slider value. This will reduce the number of polygons being imported for a specific subset of DGN geometric entities.

  • Now let the DGN importer process and import all of the DGN files to memory. If you have the display in OpenGL Shaded mode then right click the mouse several times to abort the slow re-draws of the view windows. At this point you will want to save out a temporary copy of the scene to the Okino .bdf file format from the Translate! Or File main menu (a snapshot of the imported DGN file(s)).

  • The only 'tricky' part of the process for new users is how to set up a nice camera view of your imported DGN data, especially for datasets which redraw slowly. The camera placement is a super-simple process once you are aware of the methods to do it quickly.

    1. First, make sure you are still in OpenGL: Bounding Boxes display mode. If not, invoke this display mode from the Views / Display All Views As / OpenGL / Bounding Boxes.

    2. On the Selector Window, located on the right side of the user interface, choose 'Cameras' from the combo box located at the top of this window. Now right click on the 'default' camera and select the Set Active Camera menu item.

    3. To start this process, on the left-most vertical toolbar, press the Fit / All Views / To Objects. This will move the upper-right camera to encompass the scene, as well as the other three top/front/right orthographic view windows.

    4. In some cases you may not see anything in the upper-right camera view window. This is due to the fact that the overall size of the imported DGN file exceeds the default 1 million unit near/far clipping planes (data further away than 1 million units from the camera will be clipped/removed from view). In the case of our oil refinery we need to change the 'far' clipping plane to 100 million units instead of the default 1 million units. Again, as per the previous bullet point above, right click on the 'default' camera name in the Selector and choose Edit Camera. Change the 'Far Distance' value to 1e7, 1e8 or 1e9. Please note that these are very extreme values and are almost /never/ increased from the default value of 1e6 (which is equivalent to '1 million' units). However, in our case we are dealing with an oil refinery in real-world units, and unscaled geometry, and hence we need to move the camera and adjust the clipping planes for such a large scene.

    5. Unless the view windows perfectly frame your imported data we will need to move the camera to a closer viewpoint to the imported data. During these operations we wish to remain in the Bounding Box or Wireframe OpenGL video modes to allow for very fast camera set-up. Next, click with the left mouse over top of each view window's vertical caption bar. A toolbar with camera navigation tools will appear. Your goal is to frame the DGN data in the upper-right window. That is often best done by interactively moving the icon for the camera in the top/front/right orthographic view windows first, then slightly adjusting the camera in the upper-right window interactively. This tutorial will not go into details about how to manipulate the camera. One note: do not use the Zoom View toolbar icon to zoom deeply into your scene, as that will create a very narrow field of view - instead, physically move the camera's look-from and look-at locations in the ortho view windows, or use the Dolly Camera In-Out in the upper-right camera window. At first you'll most probably be extremely far away from your model, so get the camera moved close to the model first, then adjust. Just as in the real world, don't try to view an apple from 2 miles away using an extremely narrow field-of-view, but rather move the camera within 24 inches of the 3 inch apple (in relative terms), and use an approximately 35 degree field of view.

  • Now that you have the camera zoomed in to your model, save out the scene to the Okino .bdf format once again.

  • Next, the most critically important step is to be taken - the hierarchy and parts optimizer. In the right-most Selector Window choose the Geometry, Hierarchy mode from the top-most combo box so that the "Edit - Win - Select" sub-menu appears again. Invoke the Optimize Number of Objects and Folders menu entry. Press the 'Reset' button on the dialog box which appears and then the Start button. Every time you invoke this algorithm the number of grouping nodes and geometry nodes in the hierarchy will be seriously reduced. It is up to your to determine how many times this hierarchy optimizer should be run. For our oil refinery example we had it run 3 times, resulting in a scene with just a few dozen objects. Hence, what started as a seriously complicated scene ended up as a highly optimized scene that can be interactively viewed in OpenGL shaded mode.

  • Again, at this point you will want to save out the scene to the Okino .bdf format once again.

  • After you have gained some experience with this conversion pipeline, and determined how 'heavy' the model acts in the destination program, you may also want to apply polygon reduction to the model before bringing it into your destination program. With the file still loaded in the stand-alone Okino software, choose the Geometry Processing / Polygon Reduction / Apply to all Objects in the Scene menu item, from the 'Edit' or 'Geometry' main menus. Set the top slider to a value between 50% and 80% to begin with. Over-tessellated meshes will often reduce nicely with this slider set to 80-90%. Also set the New object creation method to Replace existing object to keep the overall memory usage low. If you are very tight for memory then make sure to keep the Okino software in OpenGL: Bounding Boxes display mode, as otherwise the OpenGL Shaded mode would consume a lot of memory for its display buffers.

  • To close out this aspect of the process, save your final file to the Okino .bdf file format.

  • Optionally, you can now go back into fully shaded OpenGL mode within Okino software by choosing Views / Display All Views As / OpenGL: Smooth Shaded. If you had purchased Okino's NuGraf software then you can also choose to ray-trace the scene at this point.

  • In this tutorial we will be importing the optimized scene into 3ds Max. The same procedure is applicable to PolyTrans-for-Maya. First, make sure that you have set up 3ds Max to use the 'OpenGL' realtime video driver instead of DirectX, as the OpenGL driver is much faster to redraw very large CAD files.

  • Next, execute PolyTrans-for-3dsMax within the 3ds Max software (via the Utility panel). Make sure the panel tab is set to 'Import' and select the 'Okino .bdf file format' entry at the top of the importer list box. Choose the Okino .bdf file which you last saved from the Okino stand-alone software. After it has loaded press 'No' to the question which asks Do you want to resize all the cameras around the data, as doing that will override the nice camera we had previously created. In less than a minute you should have the Okino .bdf file loaded into 3ds Max and the camera positioned just as you had set it up in the stand-alone Okino software. And you are done!

You may want to repeat this process a few times, (1) varying the scale applied to the imported DGN file, (2) varying the number of executions of the Optimize Number of Objects and Folders algorithm, (3) or varying the amount of optional polygon reduction. In the ideal world you would want to scale your imported scene so that it sits within a bounding box of 1x1x1 to 10000x10000x10000 world-space units. Microstation files are notorious for placing 'little houses' millions of units away from the origin, while in reality you'd always want to center your main data at the origin, and not be 'too big' in general.

As a reminder, you will eventually want to put the stand-alone PolyTrans/NuGraf software back into OpenGL: Shaded start-up mode. This is done by invoking the Edit/Preferences/General Startup Preferences menu item again (as explained above) and setting the Default Object Display Mode to OpenGL: Smooth Shaded on the dialog box which appears.

NOTE: you may want to disable the "Hierarchy optimizer" on the DGN importer's option panel if multiple files are being imported at the same time, as this may cause memory fragmentation. What you'll want to do is run the optimizer 1 to 3 or more times after all the models have been imported into memory, as explained above.

Arrow Tutorial: How to Import from AVEVA PDMS 3D-Plants via ZGL File Format

In many cases our customers wish to convert 3D Plants from AVEVA PDMS into other software packages such as 3ds Max, Maya, etc. This can generally be done via (no-hierarchy) DGN files, or better yet, via ZGL mesh files. Okino has vast experience with dealing with both the DGN method and the ZGL method. The problem with DGN files is that end up being just too complex and massive (DGN files define 'procedural geometry' which has to be interpreted during import through Okino's DGN importer). ZGL files, on the other hand, are meshed inside of AVEVA PDMS software and thus are a 1:1 representation of the original data.

The conversion from AVEVA PDMS is best done in this manner:

  1. An AVEVA Review file, RVM extension, is saved out of the AVEVA PDMS software.

  2. The AVEVA "rvm2zgl.exe" converison program is used to create a ZGL file from the RVM file. ZGL files cannot be exported directly from AVEVA PDMS. Please contact Okino about this rvm2zgl.exe program.

  3. The specialized Okino ZGL importer is used to import, process and optimize the ZGL file prior to conversion to another file format or import into another downstream 3D program supported by Okino software.

Note: it is recommended that you use the Okino XGL/ZGL importer DLL (imp_xgl.dll) with a date stamp of July 2010 or newer since it uses a set of different default options which are better suited for the larger extent PDMS files. As noted in the help file of the imp_xgl.dll importer, if the imported ZGL file is sluggish to redraw then execute the Optimize Number of Objects and Folders command found in the Win menu of the Selector Window, one or more additional times. Okino software has been written since day one to be highly optimized for the import, optimization, display and re-export of very large datasets, such as from oil refineries and 3D plants.

Background: AVEVA is the world's leading engineering IT software provider to the plant, power and marine industries. AVEVA's products have been proven on some of the world's largest and most demanding engineering projects in the oil & gas, chemicals, power, mining, shipbuilding and pharmaceutical industries. AVEVA PDMS is the Plant Design tool. It is actually a suite of modules and applications, some of which are supplied as a combination of core product optional addons. PDMS has modules for DB Administration, Design, Drafting, Isometric creation, Cats and Specs etc. PDMS Design contains a Piping application, Equipment application, Multi-disciplinary Support (optional addon), etc.

Arrow How to Import from Intergraph PDS DGN Models

This importer provides the capability to import 3D models from Intergraph PDS software. Basically this is done via this means:

  • Save out DGN files from any Intergraph PDS program to one directory. Make sure that a "Design Review" .dri file is saved out with the DGN files. The .dri file can basically be considered as the "master file" for the entire model, describing which DGN files should be loaded by the destination program.
  • Load in the .dri file (and no other file) into the Okino DGN importer. Do not import any of the DGN files.
  • On the first panel of the options box press the "Choose from Presets List >>" button and then select the preset named "Intergraph 3D Plant PDS DGN files". This will configure the importer so that (1) no Xrefs are imported and (2) no re-centering of each imported DGN file will be done.

This is an alternative method:

  • Save out DGN files from any Intergraph PDS program to one directory. Make sure that a "Design Review" .dri file is saved out with the DGN files.
  • Load the .dri file into Autodesk Navisworks.
  • Export out a DWF-3D file from Navisworks.
  • Import the DWF-3D file into Okino software.

Arrow How to Import a Specific MicroStation 'View' (Camera)

As explained in the MicroStation "View Specific" Emulations section, MicroStation allows each of its enabled view windows ('cameras') to forcibly override new color, fill, display on/off and other scene specific changes on an imported model. Thus, 2 view windows can show the same model but with very different visual results.

Unfortunately this behavior cannot be replicated outside of the MicroStation modeler program. However, this DGN importer can closely mimics this MicroStation behavior if and only if one specific view is imported. By doing so, the view's override attributes can be applied globally to the import 3D model. In other words, a specific view's override attributes are used to manipulate and change the 3D model during the import phase. In particular, this importer can take into account the 'Level overrides', 'Construction element hidden' flag, 'Fill' flag and 'Hide text' flag.

These are the steps to be taken to import a specific view:

  1. Disable the Import only one specific view checkbox.
  2. Enable the List all DGN views in status window checkbox.
  3. Import your DGN file.
  4. Look at the Okino message window where you will see all the imported DGN 'Views' listed, such as this:
    Views (cameras) found in the DGN file: View Group 0 "View 0" [ Okino camera view ID '0' ] "View 1" [ Okino camera view ID '1' ] "View 2" [ Okino camera view ID '2' ] "View 3" [ Okino camera view ID '3' ] "View 4" [ Okino camera view ID '4' ] "View 5" [ Okino camera view ID '5' ] "View 6" [ Okino camera view ID '6' ] "View 7" [ Okino camera view ID '7' ] Named Group "DISH" [ Okino camera view ID '8' ] "SOLAR" [ Okino camera view ID '9' ] "OBOUND" [ Okino camera view ID '10' ]
  5. Enable the Import only one specific view checkbox.
  6. Choose one of the views listed above and enter its Okino camera view ID into the Specific DGN view to import type-in box. For example, enter the number '9' to have the 'SOLAR' view imported only.
  7. If you want to forcibly override some of the per-view Attributes from the DGN file, as is done in MicroStation and its 'View Attributes' dialog box, then you can do so with the Override specific 'MicroStation View Attributes' checkboxes.

Arrow Main Options Panel

The following information explains the various options on the dialog box:

Show Statistics After Import

If this checkbox is enabled then detailed statistics about which DGN elements were parsed and imported will be shown in the message window after the importer finishes.

Flip "Z-Up" to "Y-Up" Coordinate System

MicroStation uses a coordinate system for which the "Z" direction is "Up". Okino software uses a standard "Y" up coordinate system.

Enabling this option causes the DGN scene to be rotated into Okino's Y-Up preferred coordinate space, while disabling it causes the importer to interpret the data exactly as it is in the actual DGN file.

Triangulate 5-or-more Sided Polygons

Geometry objects created during the import and processing phase can often produce mesh polygons with 5 or more sides, convex or concave. All Okino software and all of its exporters naturally handle 3, 4, and 5-or-more-sided polygon geometry. However, the OpenGL user interface (real time 3D viewing of the DGN file) may not shown these 5-sided (or more) concave polygons properly; if this is the case then you can either triangulate the objects after import, or enable this option prior to import.

If this checkbox is enabled then all mesh objects which have 5 or more sides will automatically become triangulated.

Create a new default '3D Perspective' camera and resize to fit around the model

Many MicroStation DGN files contain many orthographic 2D views (like top, front and side views) but few 3D perspective cameras. Most of the 3D formats you will want to re-export the DGN data to are best suited to using 3D perspective cameras and not 2D orthographic cameras.

If this checkbox is enabled then a brand new Okino-specific 3D perspective camera will be created and made the 'default' camera. The camera will be arbitrarily zoomed out to view the entire imported DGN model. This new camera will not have any relation to the cameras and 'Views' contained in the source DGN file. If this option is disabled then no new 3D perspective camera will be created.

Import Active Model Only

DGN files can hold 1 or more "models". A model is a complete 2D or 3D document inside of MicroStation. If this checkbox is enabled then only the model which is marked as "Active" will be imported, otherwise all models will be imported into the same 3D scene within Okino software.

Import Elements on Visible Layers Only

MicroStation contains a 'Level Mask' for each view window. This mask determines which levels (layers) of the current model will be made visible within that specific window. Unfortunately this importer cannot change the visible items per view window as that is not something which can easily be done in non-MicroStation products.

If this option is enabled then only elements (objects) which are contained on 'visible' layers, of the current model, and of the main DGN 'View', will be imported. This layer mask will be taken from the most logical DGN 'View' window in the file.

If this option is disabled then all elements (objects) will be imported regardless of which levels are visible in MicroStation or not.

Always Import Construction Elements

In DGN files there are two types of geometry element classes, those marked as 'Primary' and those marked as 'Construction'. In general construction elements should not be imported nor displayed since they should only be used to 'construct' other more complex primary (displayable) geometry.

However, Microstation tends to invoke human mis-perceptions about what geometry should be visible and which should be hidden. In Microstation, while in wireframe mode, you will often see visible 'construction' geometry while in a shaded rendering mode you will find that such construction geometry will be hidden. This is correct behaviour, but confusing if someone compares the imported Okino geometry against the wireframe visual representation of the geometry in Microstation.

If this option is enabled then all geometry marked as 'Construction class' will be imported regardless of whether it should be hidden or not. Disabling this option (which is the default) will invoke the 'more correct' behaviour of not importing construction class geometry.

NOTE: to detect whether some construction class geometry is being ignored during the import process, a message similar to the following will be output to the message window but only if this option is disabled: Warning: 10 geometry elements were not imported because they are marked as being 'Construction Elements'. If you see this warning message, and you sense that some geometry is not being imported, the enable the Always Import Construction Elements checkbox.

NOTE 2: this single checkbox option is also similar in behaviour to enabling both the Import only one specific view and Ignore view's "Construction" flag; always import construction elements options.

Import Polygon + NURBS Surface data only, do not import Lines, Polylines or Curves data (for faster imports and redraws)

Most people who will be importing data via this DGN importer really have no need for 3D lines, polylines, NURBS curves or spline curve data as most downstream programs cannot render such vector data (rendering vector data results in no displayable data in most 3D renderers as they require polygon meshes or NURBS surfaces). Hence, you can enable this option to cull out such data items during the import phase. This will result in slightly faster import operations as well as faster redraws in the program which will be viewing the imported DGN data.

This options, in itself, is a global on/off toggle for many other similar options contained elsewhere. For example, it'll globally disable the processing and import of lines, polylines, non-filled NURBS curves, paths, multi-lines, point strings, complex paths, non-filled ellipses and non-filled circles.

MicroStation "View Specific" Emulations

Inside MicroStation each view window allows specific display elements to be enabled/disabled on a window by window basis, and a different wireframe/smooth rendering modes chosen. This is achieved via the MicroStation 'View Attributes' dialog box, as shown in the following screen snapshot. For this importer we are interested in the overrides shown within the red rectangles:

The basic and fundamental problem for this Okino importer is that non-DGN and non-MicroStation programs do not allow the scene, and its rendering to each view window, to be changed on a view by view (camera by camera) basis. Rather, in all other 3D programs the 3D scene remains the same for each and every camera view. For example, MicroStation allows the color of elements to change on a per-view basis, as well as hide construction elements + text, or change the element fill mode. To emulate this behavior the Okino DGN importer provides the option to import one specific DGN 'view', and then the importer will attempt to simulate many of the 'View attributes overrides' shown in the dialog box above.

See also: How to Import a Specific MicroStation 'View' (Camera)

List all DGN views in status window (used to select the 'view number' type-in above)

Enabling this option will cause all DGN views (cameras) to be listed after the file has been imported. Beside each view name will be a unique 'Okino View ID' number. To import a specific view on the next iteration of your file import, take one of those unique ID numbers and enter it into the Specific DGN view to import type-in box. That will allow you to import one specific DGN view, and have many of its view-specific overrides applied to it.

Import only one specific view so that DGN view-specific overrides can be emulated As described above, enabling this option will cause only one specific DGN 'view' (camera) to be imported from the file. You would only want to do this if you desire to have the file imported with many of the 'view specific' attributes and overrides specified in MicroStation for that camera view (see the dialog box above).

Specific DGN view to import: ##

This is the specific DGN view number to import. To determine this unique ID, load in the file with the Import only one specific view option first disabled. Now examine the list of camera views which are printed to the Okino message window (after the statistics information). Choose one of the unique ID numbers, such as from Okino camera view ID '0'. Now enter that number (0 in this example) to the Specific DGN view to import type-in box.

Wireframe color mode

MicroStation allows each camera view window to be rendered in different styles: wireframe, hidden line, filled hidden line and smooth shading (as shown in the dialog box screen snapshot above). This Wireframe color mode option allows the colors and (lack of) fills to be better emulated when imported from 2D DGN files.

For files that contain 3D geometries, you almost never want to enable this wireframe color mode.

For files that contain 2D vector geometries, you almost always want to enable this wireframe color mode.

Override specific 'MicroStation View Attributes' associated with this DGN 'View':

Enabling these checkboxes allow one or more of the MicroStation view-specific attributes to be overridden. The ones we are overriding are outlined with the red rectangle in the 'View Attributes' dialog box above from MicroStation.

Ignore view's "Level Override" flag; always get element's color from its level

Enabling this checkbox will cause the element to take its color always from the explicit color assigned to it. Disabling this checkbox will allow the element to take its color from its associated level (By level or By Override on the MicroStation level manager) if the MicroStation View Attribute Level Override flag is enabled.

According to the MicroStation documentation: "Symbology:Overrides. Lists override symbology (Color, line Style, line Weight, Material) settings, which are view-dependent alternate settings for level symbology. When an element is placed on the selected level, it uses the symbology settings assigned to the level. To enable the view override settings, open the View Attributes dialog box (Settings > View Attributes) and turn on Level Overrides."

Ignore view's "Construction" flag; always import construction elements

Enabling this checkbox will cause any element tagged as being a 'construction element' to be imported regardless of the MicroStation View Attribute's enabled/disabled 'Construction' flag. If this checkbox is disabled, and the 'Construction' flag from the view's attribute mask is disabled, then no construction elements will be imported for this one specific view.

NOTE: the Import Elements on Visible Layers Only checkbox option can also forcibly import all elemental geometry tagged as 'construction class' in the entire file regardless of the view number.

Ignore view's "Fill" flag; always import elements as filled

Enabling this checkbox will cause closed elements which do not have an associated fill color to be imported as filled

According to the MicroStation documentation: "If on, solid, closed elements with Fill Type of None or Opaque and text characters in a filled font display with color fill."

Ignore view's "Hide all text" flag; always import text

Enabling this checkbox will cause the text shown in the view to be imported regardless of the MicroStation View Attribute's enabled/disabled flag for text. If this checkbox is disabled, and the 'text' flag from the view's attribute mask is disabled, then no text will be imported for this one specific view.

Arrow Okino/ODA Options Panel

This importer is based on over a decade and a half of Okino DGN converter development. It also integrates portions of the newer 'Teigha DGN' toolkit from the 'Open Design Alliance' which is used to pre-process some of the DGN geometry elements.

This panel allows you to choose whether the Okino processing routines will be used or those from the 'Teigha DGN' toolkit. In many cases Okino's implementation of DGN processing works much better than the DgnDirect equivalent.

NOTE: The following DGN elements are always processed via the DgnDirect routines: 'Dimensions' and 'Meshes'

Method to compute extrusion/revolution geometry:

One of the utmost most complex aspects of this DGN importer is the code which generates the geometry for 'surfaces of revolution' or 'surfaces of extrusion'. There is literally years and years of coding to implement such complex algorithms. Unfortunately, DGN data is often not mathematically perfect and hence can be interpreted in different ways.

The following combo box options determine which set of algorithms will be used to compute the 'surfaces of revolution' and 'surfaces of extrusion' geometry:

Use 'DgnDirect WorldDraw', else use Okino methods if 'WorldDraw' failure

First, the geometry generation routines from the Open Design Alliance 'Teigha DGN' toolkit will be used. These are not always perfect, so when they fail then the alternative and mirror routines written by Okino will be used instead.

Use Okino methods, else 'DgnDirect WorldDraw' if Okino algorithm failure

This option will cause the Okino geometry generation routines to be invoked first. If they fail for any reason then the Open Design Alliance 'Teigha DGN' generation code will be used instead.

Use 'DgnDirect WorldDraw' method only

This option will cause he geometry generation routines from the Open Design Alliance 'Teigha DGN' toolkit to be used only.

Use Okino's geometry generation algorithms only

This option will cause the Okino geometry generation routines to be used only.

Method to process B-Spline (NURBS) Surfaces

This combo box is duplicated from its equivalent on this panel

Method to process BREP solids (Parasolid, ACIS)

This combo box is duplicated from its equivalent on this panel

Arrow 'Units & Hierarchy' Options Panel

Hierarchy Generation and Object Naming

The following options control the creation of object hierarchy from the DGN file, and how the hierarchy can be optimized or controlled.

Instance Hierarchy Generation Rule

This drop-down list box determines how the various elements (geometric data elements) of the DGN file will be segmented and turned into a nice clean 3D scene, with an appropriate hierarchy, upon import.

First, you need to understand that every element in a DGN file is associated with a color, a layer name, a group number and a model number. A "model" is a complete scene description by itself, so it is possible to have multiple mutually exclusive scenes within the same DGN file (this importer will load all of the scenes).

For example, if you set the list box to "Group by Model, then by Layer" (which is the default), then a grouping hierarchy (using "yellow folders") will be created based on the models and layer names contained in the file. All the geometric elements (data items) will be made children of the layer folder which that element is associated with.

The various allowable combinations shown on the list box include these:

Flat hierarchy Group by Model Group by Layer Group by Model, then by Layer Group by Layer, then by Model

Optimize Hierarchy (combine multiple objects based on hierarchy)

The DGN file format tends to contain a lot of small parts and elements. Importing the DGN file without this option enabled may create a scene cluttered with an endless number of small parts. If you enable this option then all geometry items which are contained within a "grouping folder" (one of the yellow folders shown in the "Selector Window") will be compressed into a single mesh object and thus reduce the overall complexity of the scene (it will reduce the number of objects contained in the hierarchy).

Prepend 'Model Identifier' to Model Names

If this checkbox is enabled then all grouping folders created, which segment each DGN "model" found in the DGN file, will have the model name on the folder prepended with the word "Model X:", where "X" is the model number contained within that grouping folder.

Include Model's 'Model Number': If this checkbox is enabled then the actual model's number from the DGN file will also be included in the grouping folder's name.

Prepend 'Layer Identifier' to Layer Names

If this checkbox is enabled then all grouping folders created, which segment each DGN "layer" found in the DGN file, will have the layer name on the folder prepended with the word "Layer X:", where "X" is the layer number contained within that grouping folder.

Include Layer's 'Layer Number': If this checkbox is enabled then the actual layer's number from the DGN file will also be included in the grouping folder's name.

Units Matching and Scene Scaling

Scene Scaling Factor

This option allows the imported scene to be scaled larger or smaller by a user specified amount.

If the box is checked, the edit box to the right of the combo box is enabled. You can enter a value into the edit box specifying a relative scaling factor, and the model will be enlarged by this factor. For example, if you enter '2.0', the model will come out twice as large (in world space) as it would have had the user not entered a custom coordinate scaling factor.

Match DGN "mm" Units to Internal Systems Units

This option allows the scene to be scaled larger or smaller, to match a "desired" units of measurement compared to that which is specified in the DGN file (the DGN file is usually in millimeters). For example, if you select "Meters" then the scene will be scaled 1000 times smaller to match the original millimeter units of the original DGN data.

"Units conversion" is often an important aspect of importing DGN files. People who create 3D models in a modeling package will do so using a specific units system, such as meters or feet. However, when these models are imported into another 3D package that uses a different default units system (such as Lightwave which uses centimeters), a "units conversion" operation needs to occur (the imported model geometry needs to be rescaled).

This DGN import panel determines what will be done when the units defined in the DGN file do not match current internal system units. If the units do not match, the DGN importer will rescale the imported geometry based on the ratio between the DGN units and the internal system units.

If this checkbox is enabled then the DGN importer will rescale all imported geometry so that the units of the DGN file can be made to match the units of the internal NuGraf/PolyTrans database. If the checkbox is disabled then the geometry will be imported unchanged and untouched, meaning that its scale may be "incorrect".

For example, if you are importing the DGN file into 3ds Max, which uses inches as its system units (or into Maya which uses centimeters), then you should enable this checkbox and keep the combo box contents unchanged. The units shown in the combo box will be set up by the PolyTrans-for-MAX or PolyTrans-for-Maya plug-in system.

Internal System Units Combo Box

This drop-down combo box specifies the current units system in effect within the internal NuGraf/PolyTrans 3d database. It defaults to meters. What you need to do is select an appropriate entry from the drop-down combo box which matches the system units used by your destination program: for example, set it to Centimeters for Lightwave, Inches for 3ds Max, Centimeters for Maya, etc.

None No units; never do any geometry scaling
Custom Custom units are in effect. See below
Microinches 1e-6 inches
Mils 1e-3 inches
Inches 0.0254 meters
Feet 12 inches
Miles 63360 inches
Microns 1e-6 meters
Millimeters 1e-3 meters
Centimeters 1e-2 meters
Kilometers 1e+3 meters

Custom Units in "Units Per Meter"

If the drop-down "Internal System Units" combo box is set to "Custom", then this edit text control defines the "units per meter" scale factor for the custom unit system.

Re-center Scene At the Origin if Coordinates Too Large

This is an interesting option. In quick terms, Okino software uses single precision floating point numbers to store 3D points whereas MicroStation uses double precision floating point numbers. Thus, MicroStation can handle much wider ranges of 3D coordinate values, such as 100 million. However, Okino software (and most other 3D non-CAD programs) use single precision floating point numbers and thus lose precision when importing data from MicroStation.

Side effects of this loss in precision include:

  1. OpenGL real time displays which look as though some of the data is missing, or the "comb effect" which makes closely overlapping polygons cancel each other out.

  2. Geometry which appears to "collapse" or fall apart. For example, if a house is defined 500,000 units from the origin, and the house is 0.1 units across, then the 6 digits of precision in a single precision floating point number cannot define the tiny house so far from the origin. In this case 7 or 8 digits of precision are needed but only 6 are available in a single precision floating point number.

If this checkbox is enabled then the model will be translated from its position far from the origin so that it is now centered at the origin. The tolerance used by the importer is defined by the "Maximum Distance Allowable From Origin" type-in parameter. It defaults to 50000 units, which means that no translation to the origin will be done until at least one coordinate in the imported model exceeds 50000 units away from the origin.

Place each object's final XYZ translation value into its transformation matrix and not in its vertex coordinates (good for floating point precision when object is far away from origin)

This option enables a geometry precision optimization. In general, you will always want to keep this option enabled.

Simple explanation: enabling this option forces each geometrical object to have its raw geometric data centered at the origin. The final placement of the object will be done via its transformation matrix. All such changes are made while the data is in double precision floating point values, prior to them being saved as single precision floating point numbers in Okino software.

Longer explanation: There occurs DGN files for which the objects are located very far away from the origin, and have huge vertex coordinate values such as 456123.9124. Unfortunately single precision floating point numbers cannot represent such large values as they only have 6 digits of precision. Enabling this option invokes a geometry modification algorithm whereby the vertices of each object will be modified (a translation applied) so that the corresponding raw object lays centered at the origin. To do this it applies a translate component to the geometry data while it is still in double-precision floating point and then applies the inverse translation to the instance transformation matrix of that corresponding object. This allows the data to be preserved with higher fidelity once it is stored in single-precision floating point format. Objects far away from the origin will remain far away from the origin. Conceptually, this splits the original geometry data into two components. The first component is defining the geometry near the origin to maintain high fidelity. The second component is putting the large translate component into the instance transformation matrix so that the object appears in it's original position (potentially far away from the origin).

This is not the same as the Re-center Scene At the Origin if Coordinates Too Large option. This latter option changes the top-most transformation matrix for the entire scene so that the scene is centered around the origin (no changes are made to the geometry or to each transformation matrix of each instance).

Arrow 'Element Enables' Options Panel

These checkboxes determine which geometric entities from the DGN file will be imported, and also how those entities will be turned into valid 3D renderable meshes.

Import Basic Geometry and Attributes

Import Polygons

This checkbox determines if DGN "polygons" (entity # 6) will be imported.

A DGN "polygon" is a shape with 3 to 100 equal length sides and equal angles at each vertex. For example, a square is a four-sided regular polygon.

Import Line Paths

This checkbox determines if DGN "line paths" (entity # 4) will be imported.

A line path (also known as MicroStation's "Line String") is a sequence of points connecting adjacent lines.

Import Complex Paths (Chains)

This checkbox determines if DGN "complex paths" (entity # 12) will be imported.

A complex path (or chain) is an open complex element that is formed from a series of open elements (lines, line strings, arcs, curves, and open B-spline curves) that can be manipulated as if it were a single primitive element. The resulting complex chain takes on the active element attributes regardless of the attributes of the component elements.

Paths are used in MicroStation, as an example, to define an extrusion along a lineset or series of connected elements (arc, curves, B-spline curves).

Import Complex Polygons (Shapes)

This checkbox determines if DGN "complex polygons" (entity # 14) will be imported.

A complex polygon (or shape) is a closed complex element formed from a series of open primitive elements (lines, line strings, arcs, curves, and open B-spline curves). A "complex element" is an element created by combining several primitive elements.

Import Lights

If this checkbox is enabled then point, spot and directional light sources will be imported from the DGN file.

Import Cameras

If this checkbox is enabled then 3D perspective and 3D orthographic/isometric camera views will be imported from the DGN file. Up to 8 MicroStation cameras can be imported.

In a DGN file, there can be several external file references. For the file and each of its external file references, there can be several 'models'. For each model, there can be several 'view groups' and one 'named view group'. For each view group, there are 8 'views'. For the named view group, there can be many views. Hence, MicroStation DGN files can end up having a lot of imported 'view' cameras.

Import Lines and Points

Import Lines as '3D Polylines'

This option controls how "2D and 3D poly lines" (not to be confused with 3D polygons) will be parsed and imported into the program. These are elements in the MicroStation file which define line segments. These line segments have zero area and thus cannot be seen or rendered.

A series of connected 3D lines (polylines) will be imported in exact and unmodified form as the Okino "3D indexed polyline" primitive. These lines have no area and hence will not be renderable. They will show up, however, in the view windows. This primitive does not re-export to many 3D file formats.

Combine Lines Into Objects Based on Line Colors

If this option is enabled then DGN line elements will be collected together based on their color assignments and placed into different objects. If this option is disabled then the lines will be placed into one object.

Import Lines as '3D Point Set'

If a DGN "line" entity has no length (both start and end vertices are the same) then they will be imported as "3D point sets" - a collection of 3D points.

Import Multi-Line Elements

This checkbox determines if the DGN "multi-line element" (entity # 36) will be imported. If enabled, this element will be imported as a polyline object.

DGN 'multi-lines' are similar to a single polyline object, except that MicroStation displays them as multiple lines drawn beside each other. The imported multi-line element will only be shown using a 'single line' and not with multiple lines beside each other. Also, 'end caps' and line styles are ignored. Some data which relies on a 'z-plane' function may import incorrectly as found in our tests (ie. cases where the destination program has to compute the location of the end points).

Import Miscellaneous

Import Text Elements

This checkbox determines if DGN "text elements" (entities # 7 and 17) will be imported. If enabled, DGN 2D vector text will be imported as the Okino "3D TrueType text" geometric primitive. This primitive will create renderable, polygonalized 3D text. It will not display the text using flat, vector/bitmap text.

TrueType font names are supported, not Microstation vector fonts. If you wish to override all imported fonts with your own font of choosing, then press the "Choose" button. "Arial" will be used by default if no font is chosen and no font is found in the DGN file. To go back to using the DGN file's font instead of your own font, press the "Reset" button on the options dialog box.

Import Elements Marked as 'Filled' as Un-filled Vector Shapes

This option is provided for perceptual reasons. Often, if you load up a file in Microstation all the shapes are not filled in but rather appears as vector line art. However, if you press the 'Render' button inside of Microstation, or change the View window's 'Filled' checkbox to 'enabled', then you will see that many of the vector shapes are filled in.

This importer will, by default, convert closed, filled-in shapes to renderable (and filled in) primitives during import. You may not like this, or you perceptually may want the shapes to appear as they do in Microstation, as unfilled vector art. If this is the case then checkmark (enable) this option. All DGN elements marked as 'filled' will be imported un-filled and as polyline or curve primitives.

Import 'Light Fixtures' as Displayable Geometry (Debug)

This is a debugging option. If this option is enabled then geometry will be added to the scene which represents the orientation of a light source.

Import Children of Unrecognized Elements

If a brand new geometry element is introduced in later versions of MicroStation that this importer cannot handle, this option enables the importer to treat this element as a general grouping element. If this new geometry element contains child elements that the importer recognizes, then the importer will import those child elements.

Clamp Data Values Close to Zero

If this checkbox is enabled then internal data values which are very close to zero, but not zero (such as 1e-5) will be clamped to zero. In general this option should always be enabled.

Import Metadata ('Tags')

If this checkbox is enabled then meta data (DGN 'tags') will be imported for each and every element or node, when possible. Integers, floating point doubles and strings will be handled. The meta data will be assigned to the corresponding Okino "instance" definition as meta data tags, using the either of the following naming syntax:

Import Dimensions (lines and text)

If this checkbox is enabled then dimensional annotations will be imported using polylines and text. This is mark-up information, such as linear & curved dimensions + sizes in text.

Import Empty Layers

If this checkbox is enabled then layers which are empty (have no elemental data in them) will be imported and created as "grouping folders". This is disabled by default. You may want to enable this option is you want to see every possible layer defined in a DGN file, regardless of whether it has geometry or not.

Use Raw Color Palette

If the colors assigned to your parts appear wrong upon import, enable this option.

Enabling this option will cause DGN element colors to be derived from raw values (non-palette access). If disabled, which is the default, then DGN element colors will be taken indirectly from the color palette contained in the file.

Arrow 'Element Enables # 2' Options Panel

These checkboxes determine which geometric entities from the DGN file will be imported, and also how those entities will be turned into valid 3D renderable meshes.

Import Conic Sections

Import Elliptical Arcs

This checkbox determines if the DGN "elliptical arc" element (# 16) will be imported.

Import Elliptical Arcs Combo Box

The elliptical arc combo box determines how elliptical arcs are to be imported.

The two options available are 'Elliptical Arcs as PolyLines' and 'Elliptical Arcs as Discs'.

If the arcs are to be imported as polylines, all elliptical arc entities found during the import process are passed along to the polyline generator. If the arcs are to be imported as discs, the elliptical arc entities are loaded in as 3D disc primitives. Please note that if elliptical arcs are imported as discs, they will be of 0 height and thus may be invisible if viewed from certain angles. The recommended representation is PolyLines, the default.

Import Ellipses

This checkbox determines if the DGN "ellipse" element (# 15) will be imported.

Import Ellipses Combo Box

The ellipse combo box is similar to the elliptical arc combo box; this box determines how ellipses are to be imported.

The ellipses can be imported as filled discs or as a single polygon. Both of these options, like with elliptical arcs as discs, create the ellipse such that it is of 0 height, allowing for certain camera orientations to 'hide' the ellipse from view.

Ellipticals Subdivisions

This integer value determines how many subdivisions to divide each ellipse or elliptical arc into. Please note that the value entered is then multiplied by a factor of 4 to determine the number of vertices representing the ellipse. This value is lower bounded to 1. This option box will become disabled if both elliptical arcs and ellipses are disabled for import.

Import Cylinders/Cones

This checkbox determines if the DGN "cone/cylinder" element (# 23) will be imported.

Import Cylinders/Cones Combo Box

The combo box determines how cones and cylinders will be imported.

The options include importing the DGN cone/cylinder as a 3D cone/cylinder or as a tessellated mesh. The recommended method currently is to import as 3D cones/cylinders.

Cone/Cylinder Subdivisions

This options specifies the level of subdivision to use for cones and cylinders imported from DGN files; the option has no bearing on tessellated meshes, thus this option is disabled if mesh is selected as the method of import.

Import Complex Geometry

Import Surfaces

This checkbox determines if the DGN "complex surface" element (# 18) will be imported.

A "surface" is 3D geometric construction that can partition space but cannot enclose a volume. For example, A surface or solid of revolution is formed by revolving a planar element about an axis. An extruded surface or solid is formed by extruding a planar element — line string, curve, shape, ellipse, B-spline curve, complex chain, or complex shape.

Surface of Revolution Subdivisions

This type-in number determines the polygon density of "surfaces of revolution". Numbers from 8 to 16 should be adequate, with 8 being the default. Higher numbers will make the resulting surface look smoother, at the cost of more polygons.

Import Shared Cells

This checkbox determines if the DGN "shared cell instance" element (# 35) will be imported. If this checkbox is disabled then no instanced geometry will be imported; many DGN files keep their file sizes small by using instances of cell definitions.

A "shared cell" is a cell whose elements are stored only once in the DGN file, regardless of how often the cell is placed. Any change made to one instance of a shared cell reflects in all instances of that shared cell.

A "cell" is a complex element composed of a group of primitive or other complex elements that is stored in a cell library for repeated placement.

Import DGN solids

This checkbox determines if the DGN "solid" element (# 19) will be imported.

A "solid" is 3D geometric construction that can partition space AND encloses a volume. For example, creating a tube object in MicroStation with "end caps" enabled results in a DGN "solid" object.

Please do not confuse a DGN "solid" element with a Parasolid BREP "solid" entity. The two are completely different. DGN solids are formed by developed surfaces which form a closed region of space, whereas Parasolid BREPs are true boundary representation geometric items (bodies, shells, faces).

Import Curves

This checkbox determines if the DGN "curves" element (# 11) will be imported. These are curves defined by the MicroStation method of interpolating a series of points with a smooth, interpolated curve.

Import B-Spline Curves

This checkbox determines if the DGN "B-Spline Curves" element (# 27) will be imported. These are true NURBS-based curves.

Import Curves Combo Box
Import B-Spline Curves Combo Box

The B-Spline Curve combo box determines how DGN B-Spline Curves and DGN curves are imported.

Two representations are available: as NURBS Curves or as 3D polylines. If the intent of the import is to render a given DGN scene, then it is suggested that the B-Spline Curves are imported as 3D polylines, as the lines have a finite thickness and thus can be rendered. If the DGN scene is being imported in order to export to another file format, then the recommended format for the curves is as NURBS Curves, as these maintain the entities in their true form.

Import B-Spline Surfaces

This checkbox determines if the DGN "B-Spline Surface" element (# 24) will be imported. These are true NURBS-based 3D surfaces (defined using CVs, knots and trim curves).

Import B-Spline Surfaces Combo Box

This combo box determines how DGN B-Spline (NURBS) surfaces will be imported.

There are three options in this case: import as a Trimmed NURBS Surface, as an untrimmed NURBS Surface or as a polygon mesh. The first two will import pure NURBS curves into Okino software, while the latter will have the 'Teigha DGN' toolkit attempt to turn the NURBS surface into a mesh equivalent prior to import into Okino software.

The default, and preferred option, is always to use the 'Polygon mesh' option. MicroStation DGN files have been found to have 2 or more 'boundary trims' per NURBS patch which is an illegal condition, and hence cannot be converted. By keeping this option set to 'Meshes', the 'Teigha DGN' toolkit will be used to convert the trimmed NURBS surfaces to proper meshes prior to import.

This combo box is duplicated on the Okino/ODA panel.

Arrow BREP Solids Options Panel

DGN files often have Parasolid BREP "solids" data embedded into them. This is alternative forms of 3D geometry based on the "solids modeling" concept. BREP data produces water-tight, crack-free geometry. This options panel controls how this BREP data is extracted from the DGN file and inserted into the scene graph tree.

Import embedded BREP solids (Parasolid).

If this checkbox is enabled then embedded Parasolid BREP solids models (or their corresponding stand-in proxy meshes) will be extracted from the DGN file then converted into finely meshed objects. If this checkbox is disabled then the BREP solids or the stand-in proxy meshes will not be imported.

Geometry Type Combo Box

This combo box determines how the BREP solids will be extracted and processed from the file. It is preferred that you import the "Accurate BREP solid model". This combo box is duplicated on the Okino/ODA panel.

Stand-in proxy mesh

When a DGN file has embedded Parasolid/ACIS solids models it also provides an alternative "Stand-in, proxy" mesh model. The proxy model is defined by any number of 2D and 3D DGN entities, including lines and polygons - it is not always "renderable" since many proxy objects are just 3D line segments.

Accurate BREP solid (via PTC Granite)

This method extracts the Parasolid/ACIS entities from the DGN file to the Windows temporary directory, then uses the Okino PTC-Granite Parasolid or ACIS importer to import each sub-file, in a hidden and quiet manner. This will produce the most accurate results. The quality of the resulting mesh tessellation is set by the controls found on this same panel.

NOTE: Binary ACIS SAT files cannot be handled via the PTC-Granite kernel and will be attempted to load via the DgnDirect 'WorldDraw' method.

BREP solid (via DgnDirect 'WorldDraw'), then via PTC Granite

This DGN importer is based in part on the Open Design Alliance 'Teigha DGN' toolkit for DGN file parsing. If this combo box option is chosen then the BREP extraction and conversion to mesh data will be done entirely by the 'Teigha DGN' toolkit. The mesh quality can be set via the controls on the Tessellation Quality panel.

If the 'Teigha DGN' toolkit fails to convert the BREP data to mesh data, then the PTC-Granite method will be used to perform the conversion next. If that fails as well, then a warning message will be reported.

PTC Granite Tessellation Controls for Parasolid/ACIS Entities
The following parameters only apply when the 'Geometry Type' combo is set to 'PTC-Granite'.

Topological structure: Import as Bodies, Import as Faces

Parasolid data represents geometry in a "BREP" (boundary representation) format. An object consists of a "body", which is made up of "shells" and each shell is made up of "faces". These faces are not to be confused with polygon faces of other programs.

If the "Import as Bodies" option is chosen on this panel then each major object will be imported as one mesh object and you will not be able to easily assign materials to sub-components of the imported object.

If the "Import as Faces" option is chosen on this panel then each major object will be imported as several sub-mesh objects, stored under one hierarchical parent folder (or "null object" as alternative lingo). Since the object is imported as several sub-objects, you may find it easier to assign materials. However, this method can ultimately result in a scene with a very large number of objects; in such cases you can reduce and optimize the number of objects by enabling the "Optimize Hierarchy" checkbox option on the Main Options panel.

** NOTE **

You may find that importing "By Body" to produce better tessellation results and less "cracks" or holes between adjacent edges. This is because each adjacent "face" of the body is taken into account when the two faces are tessellated (so that no holes appear between faces). If you import "By Face" then holes or "cracks" may appear between adjacent faces.

Import quilts and Make quilts hidden

When the individual 3D surface entities (NURBS patches, spline surfaces, etc) are first read in the from the source Parasolid embedded file they are turned into "quilts". The various quilts are then connected together as much as possible. If some quilts end up forming a closed volume then a "solid" BREP object will be created and the "quilt" will not be imported. What remains after this stitching operation are loose quilts.

If this "Import Quilts" option is enabled then whatever quilts (loose surfaces) exist after the stitching operation will be imported as individual triangulated objects. If the option is disabled then all loose quilts will be ignored and not imported. If you find that the imported scene has extraneous parts of surfaces, then disable this option.

If the "Make Quilts Hidden" option is enabled then all loose quilts will be imported, but they will be tagged as being hidden in the scene.

Ignore parts marked as "hidden"

If this option is enabled then entities which are marked as "hidden" in the Parsolid data will not be imported into the current scene.

Apply data healing algorithms (rebuild geometry)

This will fix "problem boundary" cases and apply data healing algorithms to the source data.

Remove redundant hierarchy nodes

If this option is enabled (check-marked) then the imported Parasolid hierarchy of nodes will be optimized so that redundant nodes are deleted. You may find that there are redundant "red" folders in the imported Parasolid hierarchy and enabling this option is the quickest way to have them automatically removed.

Leave extracted Parasolid files in the Windows TEMP directory (for debugging)

This is a debugging level option only. If the checkbox is enabled then the Parasolid data extracted from the DGN file will remain in the Windows TEMP directory and not deleted after the import process has been completed.

Solids to Mesh Conversion Tolerances: Planar, Curve, Angular

These sliders controls how the BREP solids data is converted into a tessellated triangular mesh. The sliders control the "tolerance", or in other words, how closely the triangle mesh approximates the original solids data.


This slider controls how smooth the final surface will appear.

Lower values will make the surface smoother but at the expense of a longer tessellation time and more resultant polygons.

This slider represents the maximum allowable distance (tolerance) between the true solids surface and that of the tessellated triangulated surface. The lower the value, the more the tessellated surface will approximate the real 3D surface.


This slider also controls how smooth the final surface will appear.

Higher values will make the surface smoother but at the expense of a longer tessellation time and more resultant polygons.

This slider represents the maximum allowable angle between any two adjacent triangles in the final mesh. The acceptable range is from 0.0 (coarse) to 100% (very fine).


This slider controls how smooth curves will appear (such as trim holes or face boundaries).

Lower values will make curves smoother but at the expense of a longer tessellation time and more resultant polygons.

This slider represents the maximum allowable distance (tolerance) between a true curve and that of the tessellated cu.

NOTE: If you want to set a value higher or lower than allowable via the slider then just type in that number to the type-in box.

Arrow Tessellation Quality Option Panel

These options control the mesh tessellation quality when certain imported DGN elements need to be converted from parametric form to meshes. They are only used when the DgnDirect toolkit (Teigha.DGN toolkit) tessellators are used and not the flip-side Okino tessellation routines.

These tessellation controls are only used when any of the following user interface options are enabled:

  1. When the "Method to compute extrusion/revolution geometry" option is set to one of the "Use DgnDirect WorldDraw" methods.

  2. When the "Method to process B-Spline (NURBS) Surfaces" option is set to one of the "Use DgnDirect WorldDraw" methods.

  3. When the "Method to process BREP solids (Parasolid, ACIS)" option is set to one of the "Use DgnDirect WorldDraw" methods.

DgnDirect Tessellation of NURBS Surfaces, & Any Procedural Geometry

This tessellation slider is used for all procedural forms of geometry such as NURBS extruded surfaces, surfaces of revolution, spline curves, NURBS curves, etc. (but not for "BREP solids" - see further below).

Surface tolerance deviation (Percentage of Objects' Bounding Boxes)

This method adaptively subdivides the procedural geometry based on its curvature. Areas with high curvature will be subdivided more finely. Lower values will create more polygons and hence create a smoother looking surface.

The number of polygons used to approximate the true procedural geometry (or, its smoothness) is controlled by the "Surface Tolerance Deviation" slider. Lower values will make the surface smoother but at the expense of a longer tessellation time and more resultant polygons. This slider represents the maximum allowable distance (tolerance) between the true procedural geometry and the tessellated polygonal surface; it is measured as a percentage of an object's maximum bounding box size.

DgnDirect Tessellation of 'Smart Solids', 'Feature Solids', Parasolid & ACIS Solids

These tessellation options are used only when DGN "BREP solids" need to be tessellated.

Normal Deviation (in degrees)

This slider specifies the maximum deviation (in degrees) between the normals on two adjacent faces. Smaller values will make surfaces smoother, but at the expense of creating more polygons. The default is 15 degrees and the range is 0 to 90 degrees.

15 degrees

2 degrees

Number of grid lines between NURBS knots

For NURBS surfaces (and not ACIS solids), this value defines how many additional grid lines will be placed between each NURBS knot value. A value of 0 will place the grid lines coincident with each knot value in the uv space of the NURBS surface. A value of 1 will add one new grid line between consecutive knot values. This aids to subdivide a NURBS surface in a further level of subdivision.

Number sample points per edge

This parameter allows you to explicitly control how many sample points will be taken around curved edges. For example, if there is a hole in the middle of a plane then this type-in value determines how many points will be sampled along the hole - higher values will make the hole appear to be smoother since more sample points are being taken. A value of 0 (the default) will automatically sample the curve at an internal epsilon distance along the curve.

Maximum facet edge length

This value specifies the maximum allowable length of any "edge".

This image shows the result when this option is disabled. Notice the long triangles in the center flat region:

Edge length = 0 (disabled)

This second image shows this option set to 1.0, which forces the model to be triangulated further so that the edge lengths are approximately the same.

Edge length = 1.0

Values must either be 0.0, or >= 1.0. A value of 0 disables this refinement parameter.

Arrow External References & Mesh Processing Options Panel

These options control the import of external DGN file references, as well as the processing + cleansing of mesh data created by the DGN importer.

Okino "instance" definition nodes which hold the X-Ref children imported from the DGN file will have these meta data tags associated with them. These will hold the filename + scale of the DGN X-Ref node:


External References Processing Mode

This combo box determines how "external file references" in the main DGN file are to be handled.

Import as explicit, embedded data

This mode recursively imports the DGN file and all of its external references so that the files become imported as one main scene.

Do not import any external references

This mode causes the external references of the main DGN file to be ignored. No external references or any related information will be imported.

Maximum Recursion Depth

This type-in box determines how deep the importer will traverse into nested external references. If set to 0 then there is no limit. If set to 1 then only the first XREFs at the top hierarchy level will be imported. If set to 2 then the first XREFs at the top hierarchy level will be imported as well as their first children. And so on.

Mesh Post Processing Options

The following options are applicable once the DGN file has been read into memory but before the resulting polygonal data has been stored within the converter's internal database.

Weld Vertices, Threshold = #

If this checkbox is enabled (check-marked) then the vertex welding operation will be applied to all polygon vertices once the DGN file has been read into memory and the objects created.

Vertex welding collapses adjacent vertices which are within a distance less than or equal to the threshold value specified on the dialog box This welding operation should be performed if the “Smooth Data” option (see below) is enabled. Note that welding of vertices can only occur within a single object and not between different objects.

Threshold Value Type-In

If the distance between two vertices is less than or equal to this number, and the “Weld Vertices” checkbox is check-marked (enabled) then the two vertices will be collapsed (welded) into one.

Make Polygon Orientations Consistent (Unify Normals)

If this checkbox is enabled (check-marked) then the DGN import converter will walk across the polygon mesh and reorient each polygon so that it has the same orientation as its neighboring polygon(s). This "unification" process if often necessary because 3d models created with MicroStation typically do not have any consistent polygon orientation (ie: some polygons are oriented clockwise while other are oriented counter-clockwise). Consistent polygon orientation is a prerequisite for the 'Smooth Data' option (described below).


  • This function will only work if neighboring polygons share the same vertices; if this is not the case then enable the 'Weld Vertices' option described above.

  • The unification of normals can only occur within a single object and not between different objects.

  • This option is enabled by default and should be quite fast for most objects.

Orient Normals Outward

In some cases the 'Unify Normals' option described above will flip all of the geometric and vertex normals so that they point inwards towards the center of each object. If this occurs then this option should be enabled (checkmarked) so that the majority of the normals point outwards.

Orient Normals Inward

This option can be enabled to cause the majority of the polygon normals to point inward toward the centroid of the object. Normally you would want to enable the 'Orient Normals Outward' option instead.

Reverse Orientation of Polygons (Flip Normals)

If this checkbox is enabled (check-marked) then the orientation of all polygons will be reversed. You might want to enable this option if you are finding that a 3d renderer is displaying only the back-facing polygons rather than the front-facing polygons.

Smooth Data, Angle = #

If this checkbox is enabled (check-marked) then new vertex normals will be computed for a polygon if it does not have any vertex normals already. The smoothing criterion is based on the angle between adjacent polygons; common smoothed vertex normals will be computed if the angle between their geometric surfaces normals is less than the “Smoothing Angle” type-in value described below.

If this checkbox is disabled (un-checkmarked) then no new vertex normals will be created.

NOTE: for this option to work properly the input data must have its vertices welded together so that adjacent polygons share the same vertices (the “Weld Vertices” checkbox must be enabled (check-marked)). You may optionally have to enable the “Unify Normals” option so that the polygon normals are oriented properly in order for the smoothed vertex normals to be computed. This option is enabled by default.

Smoothing Angle Type-in

This type-in value sets the cut-off smoothing angle (in degrees) used by the vertex normal computation algorithm. If the angle between two adjacent polygons is greater than this number then no smoothing will occur (a crease will be evident between the two polygons), else smoothing will occur where the polygons meet. The default angle is 45 degrees; higher values will make the surface smoother.

Arrow Raster Images Option Panel

These options control the import and extraction of raster images from DGN files.

Import 'external raster file references' (images referenced via disk file references)

Enabling this option will cause external raster file references ('raster reference attachments') to be imported. DGN allows raster (bitmap) images to be referenced from external bitmap files on disk, or via embedded bitmaps in the DGN file. The former is controlled by this checkbox. The DGN bitmap reference will be converted into an Okino texture definition + material.

Import Embedded Raster Images

DGN files have the capability of embedding raw bitmap image data within their files. These "raster images" are typically placed on 2D DGN layouts, such as company logos, icons, etc.

Enabling this option will extract the raw bitmap data from the DGN file and store the bitmaps on disk as stand-alone TIFF files. The resulting TIFF bitmap will also be linked to a new rectangle geometry object as a texture map. If this option is un-checkmarked then no bitmap will be extracted and no image will show up in the imported scene.

Display Raster Images While Extracting From DGN Files

If this option is checked then the image that is embedded within the DGN file will be displayed while it is being loaded.

Location to Store Extracted Textures:

The two following options specify where the extracted bitmap image(s) that are embedded within the DGN files will be stored on disk in TIFF format:

Same Location as the Imported DGN File

The texture images that are stored in the DGN file will be saved in the same directory as the file being imported. (e.g. if the file is located in c:\dgn\, the images will also will also be stored in c:\dgn\).

In this Specific Directory:

This option allows you to specify a directory where the images are to be stored.

Confirm Possible Texture File Overwrites

If the checkbox is enabled then if the extracted TIFF image file already exists on disk a dialog box is displayed to ask the user whether or not to overwrite the file.