MicroStation 2024 and MicroStation CONNECT Development APIs Programming Examples C++, MicroStationAPI |
Read developer notes about the MicroStationAPI.
Install Visual Studio 2019 | Install Visual Studio 2019 for MicroStation 2024 development | |
Install Visual Studio 2015 | Install Visual Studio 2015 for MicroStation CONNECT development | |
Development Environment | Set up your Windows environment to build a MicroStation application | |
BMake and Visual Studio | Comparison of the BMake and Visual Studio build environments |
Title | Article Location | Sample Code |
---|---|---|
Bentley Aliases and Typedefs | C++ typedefs | Discusses those enigmatic Bentley aliases:
RefCountedPtr , Ptr , CP , CR , H , etc. |
Collection Classes | Bentley Vector and the Standard Collection Classes | About bvector<> and std::vector<> |
Message Center for Developers | Message Center Page | Contained in article |
XML Code Generator for C++ & MicroStation resource data | XML Struct Page | XML Struct ZIP archive |
Title | Article Location | Comments |
---|---|---|
Open a File with Associated Application | Associated Application Page | |
Conditional Inheritance | Using Type Lists to Enable Inheritance | Demonstrates how type lists enable selective class inheritance |
Convex Hull | Calculate the convex hull of a set of points | Contained in article |
Color Book | ColorBook usage | Contained in article |
Dependency API | BoxDependency example | Shows how to create a dependency between one element and multiple other elements |
DgnLink API | DgnLink CRUD example | Shows how to create, query and delete DgnLinks attached to elements |
Create Element | Create a Shape Element | Element creation tool based on the DgnPrimitiveTool class |
EditElementRewriter | Helper class makes it easier to write element editing methods | Helper class based on the EditElementHandle class |
Element Description | Describe Element | Get an element description — uses the Handler class |
Element Mensuration | Measuring Elements | Get linear, area and volumetric element properties |
Element Properties | Element properties | Get element properties — gets both DGN properties and ECSchema properties. |
Element Is Planar | Element Planarity | Test an element for planarity and flatness. |
Element Location | Simple Element Locate Tool | Shows how to use DgnElementSetTool to locate elements |
IElementSet | IElementSet Interface | Shows how to use the IElementSet interface |
Element Type Lists | Meta-Programming and Element Types | Demonstrates meta-programming template techiques with type lists |
Element Symbology Reporter | SymbologyReporter class | Demonstrates the SymbologyReporter class |
Scanning Overview | Programmer's overview of scanning | Discusses the background to scanning |
ustnTaskId | Using ustnTaskId | ustnTaskId is a public variable that is used in some C++ functions |
Type Resource (*.mt ) Files and the Dialog Manager |
Type Resource Files: what are they? | Type resource files are part of the connection between your application and MicroStation's Dialog Manager |
File Collection | Harvesting files | Demonstrates boost filesystem for batch processing |
C++ Class works with MicroStation Published Variables | C++ Class exchanges data with published global variables | Demonstrates how a C++ class instance can work with global C-style variables |
ListModels | MicroStationAPI: Note about ListModel | Source code included |
ListModelManager Template Class | A C++ template class | Streamline your ComboBox and ListBox hook classes |
DataSheet | DataSheet demonstrates ListModels and ListCell editors. | Source code included |
Cell Handlers | Cell Handlers introduces cell handlers. | Source code included |
Selection Set Manager | BoxDependency example | Includes usage of the SelectionSetManager class |
Introduction to C++ Template Meta-Programming | Meta-Programming Introduction | Sets the scene for several articles about C++ template meta-programming |
Enumerating and Iterating Collections of DGN objects | Overview and examples of DGN object enumeration | Sets the scene for several articles about C++ collection enumeration |
Namespaces | Namespace Introduction | How to use C++ namespaces provided by the MicroStationAPI |
ViewGroups, Views and ViewPorts | Introduction to the View Classes | An overview of view classes: ViewGroups, Views, ViewInfo and ViewPortInfo |
View Decoration with Sprites | C++ Project: View Decoration using Sprites | Source code available |
Transient Geometry | C++ Project: View Transients | Source code available |
Item Types | Query Item Type Instances | Source code in article |
Grouping Transactions: Undo/Redo | C++ Project: Undo Group Operations | Source code available |
Comparison and Tolerance of DPoint3d, DVec3d and angles | Tolerances & SmallAngle | |
Completion Bar | Show a Completion or Progress Bar to your users | Source code available |
Converting DGN Units: UnitConverter | UnitConverter C++ class | |
Bulk Import | Handling graphic import in bulk | |
Dialog Layout Manager | Extract from MicroStationAPI help describes MDL auto-layout | |
Text | Tool to replace text in an existing TextElement | |
TextTables | C++ Utilitites for TextTable and TextTableElement | |
Version | Shows how to embed a Windows version resource in your AddIn | |
C++/WinRT | An example Windows application using C++/WinRT | This is a Windows app, not a MicroStation app. |
There is a number of third-party libraries that deal with computational geometry and related topics.