• MicroStation CONNECT SDK Update 13

    The much anticipated MicroStation CONNECT Update 13 (product) will be releasing very soon.  Literally, possibly: any moment now...

    The MicroStation Platform/PowerPlatform Team has been very busy working hard to provide numerous quality and performance improvements and new features too.  If interested in some of the latest product changes consider taking a moment (now) to navigate to: MicroStation CONNECT Edition Update…

    • Wed, Aug 14 2019
  • Item Instance Collector

    I wanted to try out C# and the MstnPlatformNet API to harvest Item Type instance data.  After obtaining help from Jan Šlegr and Paul Connelly on the Programming Forum, I wrote the ItemInstanceCollector Visual Studio project.

    The project creates the ItemInstanceCollector DLL.  It uses a programmatic approach to obtain an Item Type EcSchema object, and shows how to use that object to harvest Item Type instance data…

    • Fri, Jun 14 2019
  • LINQPad

    LINQPad: The Ultimate C# / VB.NET Scratchpad

    LINQPad is one of those tools you should not be without.


    LINQPad lets you cut-and-paste a C# or VB.NET code fragment or program and execute it. It's useful for testing functionality in isolation from your application.

    If you're working with relational databases, such as Access or Oracle or hierarchical databases such as XML documents, then LINQPad provides even more…

    • Fri, Jun 14 2019
  • C++ ListModel Manager for ComboBox and ListBox Hook Classes

    For many years we have written dialog item hook functions using procedural code.  You can continue that way with MicroStation CONNECT, but the MicroStationAPI offers a better way: dialog and dialog item hook classes.

    The hook classes replace the MDL switch decision tree with the DialogHookHandler and DialogItemHookHandler classes that provides virtual event handler methods such as _OnCreate().  The ListModelManager class…

    • Wed, Feb 27 2019
  • Update: MicroStation CONNECT SDK and VS2017

    MicroStation CONNECT Edition Update 12 (and SDK) releases are fast approaching.  We would like to inform you in this release MicroStation and the SDK have set VS2017 as our default toolset used to build applications.  For those that have asked MicroStation CONNECT SDK U12 will be the first release to provide support for VS2017 and be set as the default toolset.  For everyone not already using VS2017, we recommend you install…

    • Fri, Jan 25 2019
  • MicroStation VBA: OpenDesignFile vs. OpenDesignFileForProgram

    A VBA programmer can open a DGN file using two methods: OpenDesignFile and OpenDesignFileForProgram.  This blog attempts to clear up confusion between the two, and which one to use.

    Prefer OpenDesignFile

    Prefer OpenDesignFile to OpenDesignFileForProgramOpenDesignFile opens a DGN file in the same way that a user would open a DGN file. Everything you expect to be available is available: level libraries, text styles, reference…

    • Mon, Dec 31 2018
  • Working with EC Properties using Native and Managed APIs

    This blog provides some code snips that demonstrate how to use DgnEC Native and Managed API’s for following:

    1. Perform operations on primitive type EC Properties i.e. set  and get. 
    2. Perform operations on array type EC Property i.e. set, get, insert and remove array element.
    3. Perform operations on struct type EC Property i.e. set and  get. 
    4. Perform operations on struct array type EC Property i.e. set, get, insert and remove…
    • Fri, Dec 28 2018
  • EC CRUD Operations With Native And Managed DgnEC APIs

    This blog demonstrates how to use DgnEC native and managed API’s for following: Locate and load schema Create EC instances and relationships Read EC instances and relationships Update EC instances and relationships Delete EC instances and relations...
    • Fri, Nov 30 2018
  • How to use SolidUtil APIs

    Introduction SolidUtil and allied classes provide support for the creation, querying, and modification of BREP. MicroStation SDK has file MstnExamples/Elements/ManagedToolsExample/SolidUtilClassExamples.cs; which demonstrates the capabilities. This suits ...
    • Mon, Nov 19 2018
  • How to create a Parametric Feature Tree

    Introduction Parametric Feature is powerful way of creating complex geometry associatively. Various parametric features can be combined to form a chain; often called as a feature tree. What does the example demonstrate? 'Parametric Feature Tree T...
    • Tue, Nov 6 2018
  • MicroStation SDK sample- DimensionExample

    Introduction ‘DimensionExample’ showcases the CRUD capabilities of the Dimension API What does the example demonstrate? The example describes the use of Dimension API to: Create a linear dimension on an element Create a linear dimension betwe...
    • Tue, Nov 6 2018
  • UPDATE: Bentley Programming Communities - enhancements

    On behalf of the BDN and Platform development teams I would like to announce some current work-in-progress (WIP) being performed to the Bentley Programming Communities to provide more useful/needed information, resources, and updates moving forward. Here are a few highlights some of you might have recently noticed and if not, no worries - let's explore some of the recent changes implemented:

    1. Bentley Communities - Developers…
    • Thu, Oct 4 2018
  • Sample Mesh API Operations

    Introduction This example describes the different mesh functionalities as follows: Create mesh with unindexed points Create mesh elements with variable length faces Mesh Boolean operations (union, intersection, difference) How to Create a mesh element ...
    • Thu, Sep 27 2018
  • Complete steps to create an SDK example on Microstation CONNECT Edition with managed Pick List APIs

    Introduction This article will show the complete steps to create an SDK example on Microstation CONNECT Edition, and some basic managed Pick List APIs are also used. By these steps, you can create other SDK examples which are using managed code....
    • Thu, Sep 20 2018
  • Basic examples for managed APIs of Pick List

    Introduction With Pick List, users can specify predefined values from a drop down list in property definition. It is for ItemType only.The following codes are some of the basic uses of the managed APIs for Pick List. Basic examples: To cre...
    • Thu, Sep 13 2018
  • BDN developers, MicroStation users need your applications to work with CONNECT Edition applications.

    BDN developers, MicroStation users need your applications to work with CONNECT Edition applications. Why?

    • Users need to maintain their workflows.
    • You need to keep your customers using your applications.
    • Bentley’s Support Policy requires it for continued support.

    It’s time to update because MicroStation users are updating to the CONNECT Edition and want your applications for their workflows. Additionally, support…

    • Wed, Aug 8 2018
  • [Connect C++] Is there Documents for porting from V8i SDK to Connect SDK?


    Is there any comprehensive documents for porting from V8i SDK to Connect SDK?

    I have found some answers by googling or searching this groups, but I would prefer to have full list of changes. For example, what happened to dlmSystem_callAnyFunction or  mdlText_fontExists?


    • Fri, Feb 10 2017
  • Two Centuries of MicroStation Development

    Writing this blog in September 2015, I can look back over two centuries (20th and 21st) of MicroStation programming.

    MicroStation 4 and MDL: a Technical Revelation

    Around 1990 I became aware of MicroStation and its precursor, Intergraph Corporation's Interactive Graphic Design System (IGDS). IGDS had a user-unfriendly development language User Commands (UCMs), which was very limited in scope. MicroStation replicated…

    • Thu, Sep 3 2015
  • MS V8i SS3 and Visual Studio 2012


    How are mdl program with visual studio 2012 and  MS V8i SS3 to compile?

    I get an error that Visual Studio 2010 is not installed

     BMAKE: Error - Attempting to build with VS 2010 but location is undefined!
     BMAKE: call trace
          line:  183, C:\Progra~2\Bentley\MICROS~1\MicroStation\\mdl\\include\AssertToolSet.mki
          line:  109, C:\Progra~2\Bentley\MICROS~1\MicroStation\\mdl\\include\ConfigurePolicy.mki
          line:   28, C:\Progra…

    • Fri, Feb 22 2013
  • Changing the label of a button in MessageDialog


    this is a code snippet for MDL.

    If you wnat to change any content in the Default Message Box Dialog, this snippet would help.

    int showMessageDialog(char* title,char *okcaption,char *cancelcaption,char *text,int icon) {

    DialogBox *db=mdlDialog_create(NULL,NULL,RTYPE_DialogBox,(int)DIALOGID_MsgBoxOKCancel,FALSE) ;

    if(db) {



    mdlDialog_itemSetLabel (db,3,okcaption…

    • Thu, Feb 21 2013
  • View Color Palette in VBA Command Button (ForeColor) Menu - No Colors (white)

    I am creating menus With VBA and want to schange the color of the text in the button. When I'n in the Properties

    menu for the command abd select the "ForeColor" the pulldown shows Patelle and Syetem. The want to see the

    palette colors, currently it's white. I can touch areas on the palette and a color is selected. Why am I not seeing the

    palette? See attachment.


    joe mele

    • Tue, Dec 4 2012
  • No model reference is active

    Ihave a dgn file open.  Running a vb.net program I get, for the first time, at this line a message

    v8.ActiveModelReference.AddElement(DirectCast(oLine, MicroStationDGN._Element))

    COMException was handled

    No model reference is active

    How do I get my ModelReference active?




    • Mon, Nov 26 2012
  • CSearchTypes class simplifies Locate and Scan Initialisation

    We often need to work with a given set of MIcroStation element types when writing an application for locating and scanning elements.  For example, we may want to work with lines and line-strings, and therefore want our users to be able to...

    • Locate a line or line-string
    • Scan for lines and line-strings

    Because the MDL APIs for locate logica and scan logic are quite different, it's hard to remember to synchronise…

    • Tue, Nov 6 2012
  • [V8i VB .Net] StartUndoGroup

    What should the Session object be set to in the following code...

    Imports Session = Bentley.Internal.MicroStation.Session Private Sub someGroup                 Dim mySession as Session                 mySession.SetCurrentCommandName(“My Command”)                 mySession.StartUndoGroup()                 Command…                 Command…                 Command…                 mySession.EndUndoGroup End Sub

     I am getting the typical "Object reference not set to an instance of an object…

    • Sat, Nov 3 2012
  • oPropHandler.SelectByAccessString("Width") is displaying metric units

    oPropHandler.SelectByAccessString("Width"), oPropHandler.SelectByAccessString("Height"), and oPropHandler.SelectByAccessString("LineSpacing") get the metric unit values using Debug.Print oPropHandler.displGetValue & "    " & oPropHandler.GetDisplayString. My Design File Settings>Working Units isin MU Format with Master Unit set to feet.  For example a Height and Width of…

    • Thu, Jul 12 2012