MicroStation V8 Development Library
|
LA Solutions staff have written a number of technical articles. These include programming, MicroStation®, Bentley Map™, GeoGraphics™, and relational databases. Some articles describe aspects of MicroStation software development, and others provide code examples.
If you are developing a MicroStation application using C or C++, use the right version of Microsoft Visual Studio!
If you are interested in programming with C# or VB.NET, look at our articles about .NET.
The MicroStation Development Library (MDL) was created for MicroStation V4 and continues to evolve. The MicroStationAPI provides an additional API for MicroStation V8i and MicroStation XM that helps developers build a native-code written using C++.
See our books page for information about books that may be interesting to MicroStation developers.
You may also find the BE Newsletter useful. It is published by Bentley Systems.
MDL provides a versatile way of developing applications for MicroStation, and Bentley Systems use it themselves. It is an implementation of ANSI C, with many extensions to match its capabilities to MicroStation's complex feature set.
You can write a native code application using C++ that calls MDL functions, just as you might call Win32 API functions from C++ code. native code means that your source code is compiled using Visual C++ to the binary code of your computer's processor. native code contrasts with the interpreted code created by a pure MDL application. A native code application is implemented in a DLL.
The MicroStation SDK Readme document provides some useful information about MDL and MicroStationAPI.
Title | Article Location | Sample Code |
---|---|---|
Visual Studio and BMake | An overview of Microsoft Visual Studio and Bentley Make as build tools | |
Visual Studio and MDL | Using Visual Studio to build an MDL application DLL | |
Windows and MDL | Set up your Windows environment to build an MDL application | |
XML Code Generator for C & MDL | XML Struct Page | XML Struct ZIP archive |
Message Center for Developers | Message Center Page | Contained in article |
Typedefs, structs, and Compiler Errors | The Compiler issues an error when I attempt to use an MDL structure | |
Bentley Typedefs | MicroStationAPI and MDL typedefs | Discusses those enigmatic Bentley typedefs: CP , CR , H , etc. |
Here's a comparison of the BMake and Visual Studio build environments.
Examples of code written in C++ that call functions provided in the MicroStation Development Library. The code treats MDL as a platform, just as a Windows application written in C uses the Win32 API as a platform. This section does not cover the MicroStationAPI.
Title | Article Location | Sample Code |
---|---|---|
Bentley Typedefs | MicroStationAPI and MDL typedefs | Discusses those enigmatic Bentley typedefs: CP , CR , H , etc. |
Boost.Geometry | An introduction to Boost.Geometry for MicroStation developers | Discusses Boost.Geometry terminology and how it relates to MicroStation |
Boost.Geometry Adapter for DPoint3d | Adapt DPoint3d for use with Boost.Geometry |
Shows how to use the MDL DPoint3d data type with the Boost.Geometry C++ library |
Convex Hull Creator | Create a Convex Hull | Generate a convex hull that encloses a set of points. Demonstrates both an undocumented MDL function and the Boost.Geometry algorithm |
Graphic Groups and C++ | MDL Graphic Groups Page | |
Integrate Bulk Import with MicroStation's State Engine | Bulk Import page | Contained in article |
Learning MicroStation MDL Step-by-Step | Learning MicroStation MDL Step-by-Step | Yongan Fu's series of articles for newcomers to MicroStation development |
Localised Date, Currency, and Numbers | MDL Locale | How to format a data string in your country's style |
Memory Management in MDL and C++ Native Code | Memory Management Page | |
SearchTypes Class Manages Locate & ScanCriteria | SearchTypes Page | |
Template Class for type-safe User Preferences | CUserPreferences<T> Template class | |
Undo Grouping and C++ | MDL Undo Group Page | |
Using C++ Templates with MDL | Use C++ templates in your MDL code | |
Using the C++ Standard Library with MDL | Use the C++ Standard Library in your MDL code | |
VBA2MDL | Create functions in a DLL for use in VBA | |
Using Windows icons in MicroStation applications | Windows icons Page |
Examples of code written in C that call functions provided in the MicroStation Development Library. This is MDL programming the traditional way — Bentley encourage you use C++ for projects designed for MicroStation XM and later.
Title | Article Location | Sample Code |
---|---|---|
Custom Menus with MDL | MDL Menus Page | Contained in article |
Database Linkages Explained | Database Linkages Page | |
Extract Database Linkages | How to write MDL code to extract DB data | |
Dialog Manager API (all you need to know about access strings but were afraid to ask) | Dialog Manager Page | Contained in article |
DPoint3d, DVec3d | DPoint3d Page | Contained in article |
Examples | Bentley Systems' Example Links | |
Elements & Descriptors | Elements & Descriptors | |
Element Fill Tools | Element Fill Tools | |
ElementRefs | ElementRefs | |
Files | Open a DGN File as Read-Only | |
File Open vs. File Exchange | Comparison of file open and exchange functions | |
Integrate Bulk Import with MicroStation's State Engine | Bulk Import page | Contained in article |
Levels and MDL | MDL Levels page | Contained in article |
Localised Date, Currency, and Numbers | MDL Locale | How to format a data string in your country's style |
ListBoxes, ListModels, and Editors | ListModels page | Contained in article |
Locating Objects with MDL | MDL Locate page | Contained in article |
Measuring Objects with MDL | MDL Measurements page | Contained in article |
Migrating Dimension Code to MicroStation V8 | Bentley Technote | See also MDL Help Documentation |
Model References and Reference Models | MDL Model Reference page | Contained in article |
Open a File with Associated Application | Associated Application Page | |
Process Fence Contents using mdlFence_xxx or Scan Functions | Process Fence Contents | |
Search for an Element by its ID | Scan for Element ID | |
Search for an Element by its Type | Scan for Element by Type | |
SnapMode | Find how to get and set the current MicroStation snap mode | |
Stroke an Element | Convert an element to a line string or shape | Stroke.zip |
Text Elements and Char Types | Multibyte, Wide, Unicode questions & answers | |
User Data Linkages Explained | User Data Page | |
Using Windows icons in MicroStation applications | Windows icons Page |