|
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.