| Topic | Title | Article Location | Sample Code | |
|---|---|---|---|---|
| Administration | Configuration Variables | Configuration Variables and VBA | Configuration Variables and VBA | |
| Cells | Create a Cell Element | Place Cell page | CreatePlacement.zip | |
| Cell Audit | Find the library that holds a cell definition. Cell Audit page | CellAudit.zip | ||
| Place Cells along a Linear Element | Place Cells along Element page | FollowLine.zip | ||
| Cells: Counting Cells with VBA | Counting Cells with VBA | Source code included | ||
| Enumerating Models or Cells |
Enumerating Models or Cells page |
How to examine the models (cells) in a DGN file |
| |
| Searching through a Model for named cells | Scanning a Model for named cells | FindCell.zip | ||
| Colours | Color Chooser | Microsoft Common Dialog Color Control | ||
| Import Color Table from CSV | Import CSV to create a Color Table | |||
| Export Color Table to CSV | Export a Color Table to create a CSV file | |||
| Complex Elements | Complex Elements | About Complex Elements | ||
| Databases | Databases | Databases and MicroStation | ||
| Elements | Element ID and DLong | Element IDs and DLong user defined type | ||
| Create a Centre Line | Create Centre Line page | CreatePipe.zip | ||
| Create a Pipe Element | Create Pipe page | CreatePipe.zip | ||
| Element Search & Select | Select by Line Style | Source code included | ||
| Draw a Breakline | Create Breakline page | Breakline.zip | ||
| Boolean Operations on Shape Elements | Boolean Ops | Downloadable Project | ||
| Draw a Line with Terminator | Create Line with Terminator page | PlaceLineWithTerminator.zip | ||
| Create a Sagitta | Create Sagitta page | CreateSagitta.zip | ||
| Create a Solid of Rotation | Create Solid by Rotation page | |||
| Create a Shape Element | Create Shape page | CreateShape.zip | ||
| Create a Zebra Crossing | Create Zebra Crossing (pedestrian crossing) page | Zebra.zip | ||
| Create a Grid | GeoGrid page | GeoGrid.zip | ||
| Create a Fillet between Two Lines | Create Fillet page | CreateFillet.zip | ||
| Modify Elevation — ModZ | ModZ page | ModZ.zip | ||
| Create Shape from Closed Line-String | Create Shape from Closed Line-String page | CreateShapesFromLineStrings.zip | ||
| Create Swing Arrows | Create Swing Arrows page | SwingArrow.zip | ||
| Change Line Direction | Change Line Direction page | ChangeLineDirection.zip | ||
| Locate an Element given its ID | Locate Element page | ElementLocator.zip | ||
| Mark Circle Centre | Add markup to identify the centre of a circle (or ellipse) page | MarkCircleCentre.zip | ||
| Move an Element | Move Element page | MoveElement.zip | ||
| Partial Delete | Partially Delete an Element page | PartialDelete.zip | ||
| Place a Shape Element or Fence | Place Shape page | PlaceFence.zip | ||
| Place Points along a Line Element | Place Points along Element page | PlacePointsAlongLine.zip | ||
| Transaction Wrapper | Transaction Wrapper page | Code is in article | ||
| Copy an Element from a 3D model to a 2D model | Copy 3D Element to 2D Model article | Code is in article | ||
| Simplify an Element | Simplify an Element — or remove redundant vertices | |||
| Setting the Snap Mode | Set Snap Mode page | |||
| Events | Design File Events | Design File Events page | OpenCloseEventHandler.zip | OpenCloseEventHandler.zip |
| Evaluate Path on File Open page | DgnFileEvents.zip | DgnFileEvents.zip | ||
| Passing Information to ILocateCommandEvents | Communicating with a Locate Class page | MeasureLine.zip | MeasureLine.zip | |
| Excel™ | MicroStation™ VBA and Excel™ | VBA and Excel page | ||
| Fences | Fence Tools | Fence Tools page | ||
| Place Fence | Place Fence VBA | Source code available | ||
| Item Types | Property Handler manipulates Item Type Data | Item Types page | ||
| Point Feature Loader | Point Feature Loader | Source code included | ||
| Levels | Level Control & Manipulation | Level Control | Source code included | |
| Iterating Level Libraries (DGNLIBs) | Level Libraries | Source code included | ||
| Matrices | Rotation and Translation | How do I rotate or move something? | A brief introduction to Matrix3d and Transform3d |
|
| Rotation in 2D | How do I rotate something in 2D | A brief introduction to the VBA Matrix3d |
||
| Rotation in 3D | How do I rotate something in 3D? | A brief introduction to the VBA Matrix3d |
||
| Movement in 3D | How do I move something? | A brief introduction to the VBA Transform3d |
||
| Identity Matrix | What is the Identity Matrix? Is a zero matrix useful? | A brief introduction to the VBA Matrix3dIdentity |
||
| Math | Plotting Curves | Plotting Curves with VBA | Harmonograph VBA Project | |
| Are two elements coplanar? | Do two shapes lie on the same plane? | Code and DGN model contained in ZIP archive | ||
| Determine whether a Line is Straight | Is Line Colinear? page | Colinear code included in article | ||
| Vectors, orientation, rotation and cross-product | Angle Between Vectors | Sample code that shows how to see if one point is right or left of another point | ||
| Regression Analysis | Regression Analysis with VBA | Regression Analysis VBA Project | ||
| Computing Intersections | PDF Document | ComputingIntersections.zip | ||
| MDL | Is an MDL Application Loaded? | Is MDL Loaded page | Source code included | |
| MDL: Calling MDL Functions from VBA | Calling MDL Functions from VBA | Source code included | ||
| Are two elements identical? | VBA wrapper around MDL function to compare elements | Code included in article | ||
| Measurement | Measure Area of Closed Shapes, Grouped Holes & LineStrings | Measure Area page | Code is in article and MeasureArea.mvba module | |
| Accumulate Area of Closed Shapes | Accumulate Area page | Contained in AccumulateArea.mvba module | ||
| Find Zero-Length Lines | Zero-Length Lines page | Code included in article | ||
| Label Contours | Label Contours page | Label one or more lines with the height (Z value). VBA project included | ||
| Label Lines | Label Lines page | Label one or more lines with the measured length. VBA project included | ||
| Measure the Area of multiple Shape Elements | ShapeTagger | Code is in article ZIP archive | ||
| Measure the Length of a MultiLine | Measure Lines page | Code is in article | ||
| Measure the Distance Along a Line | Measure Distance Along a Line page | Code is in article | ||
| Measure the Distance Between Parallel Lines | Measure Lines page | Code is in article | ||
| Miscellaneous | Navigating the TCB | Navigating the TCB page | ||
| ColorPicker | Bentley ColorPicker OCX | |||
| Degree of Curve | Degree of Curve page. | Calculate fillet radius from degree of curve and forward to fillet tool | ||
| Load a Function Key menu | Load a Function Key menu page | |||
| Menus in VBA | How to create menus for your VBA project | Working around VBA's lack of support for menus | ||
| Lines, Vertices and Segments | Basic introduction to lines, vertices and segments | |||
| Clipboard: Cut and Paste with VBA | Using the Windows Clipboard | Source code included | ||
| Arithmetic: truncation & rounding with VBA | Numeric Formatting | |||
| Is an element a Grouped Hole? | Grouped Hole Page | Source code included | ||
| Cross-Hatch a Grouped Hole | Grouped Hole Page | Source code included | ||
| MicroStation VBA Tips | MVBA Tips page | Code is in article | ||
| Referencing the MicroStation VBA Object Library elsewhere; referencing other libraries in MicroStation VBA | Referencing VBA Object Libraries | Included in article | ||
| Using MicroStation's Message Center | Message Center page | Code is in article | ||
| Starting a Batch File | PDF Document | ShellBatch.zip | ||
| Validating Configuration Variables | Configuration Validator | |||
| Verifying a DGN File | Check Design File page | Sample code that shows how to check if a file is a DGN file | ||
| Models | DGN Models | Rename a DGN model with VBA | Sample code that shows how to rename a DGN model with VBA | |
| Level Usage in Models | Report Level usage in DGN Models page | Sample code that shows how enumerate the models of a DGN file and find the level usage for each model | ||
| Named Groups | Named Groups and VBA | Named Groups and VBA | Sample code that shows how to handle Named Groups using VBA | |
| Printing | Printing with VBA | Printing with VBA | Sample code that shows how to control printing using VBA | |
| References | Log Reference Attachments | PDF Document | LogRefs.zip | |
| Reference Attachment Operations | Reference Attachment Operations page | Attach a reference; set a reference clip boundary | ||
| Attaching All References | Load Hidden References page | Attach all references — including those that are turned off | ||
| Scanning | Scanning Overview | Programmer's overview of scanning | ||
| Searching through a Model for specified elements | Scanning a Model | Included in article | ||
| Searching through a Model for named cells | Scanning a Model for named cells | FindCell.zip | ||
| Searching through a Model for lines of a certain size | Scanning a Model for lines of a certain size | FilterLines.zip | ||
| Export line element data | Scanning a Model for lines and write element data to a CSV file | ExportLines.zip | ||
| Enumerating Models or Cells |
Enumerating Models page |
How to examine the models in a DGN file |
| |
| Tags | Reading and Writing Tag Data | Tag Data Overview | Included in article | |
| Writing Tag data into a Text File | PDF Document | TextFileReader.zip | ||
| Text | Text Element Analysis & Manipulation | Text Element page | ||
| Rotate a Text Element | Text Rotator page | TextRotator.zip | ||
| Create a Fraction | Fraction Creator page | FractionText.zip | ||
| Create a Bullet Chart | Bullet Chart Creator page | BulletChart.zip | ||
| Create a Text Node | Text Node Creator page | CreateTextNode.zip | ||
| Place Text Along an Element | Place Text Along page | PlaceTextAlong.zip | ||
| Generate a Text Grid | Text Grid Generator page | TextGridGenerator.zip | ||
| Text Element Manipulation | Split Text Elements page | |||
| Text Element Manipulation | Stitch Text Elements page | |||
| Text Element Analysis & Manipulation | Text Nodes to Text page | |||
| Text Table Exporter | Export Text from a Table to a CSV file | |||
| Regular Expressions for MicroStation VBA Developers | Regular Expression page | |||
| Unscramble Text: adjusts multiple text elements to improve legibility | Unscramble Text page | Example VBA code and project available | ||
| Formatting Numeric Text | Formatting a Numeric Text Element | Example VBA code provided | ||
| Incrementing Numeric Text | Incrementing a Numeric Text Element | Example VBA code and project available | ||
| Incrementing Alpha Text | Incrementing a Text Element such as a revision code | Example VBA code and project available | ||
| Performing Arithmetic on Numeric Text | Computing the Sum of Numbers in Text Elements | Example VBA code and project available | ||
| Reading a Text File into Coordinates | PDF Document | TextFileReader.zip | ||
| Analysing Text Enter Data | Text Enter Data page | |||
| Text Styles | Text Styles page | |||
| Text Style Replacer | Text Style Replacer page | |||
| Text Font Replacer | Text Font Replacer page | |||
| Undo/Redo | Group Operations in an Undo Group | Undo Grouping page | ||
| Views | MicroStation View Capture | Capture View page | CaptureView.zip | |
| View Settings and Control | View Settings and Control page | |||
| Windows | Cursor Icon | Assign a Cursor | Example VBA code available | |
| File & Folder Browsing | Files and Folders | Example VBA code available | ||
| Mouse Pointer | Assign a Mouse Pointer in MicroStation | |||
| Open an Office Document | Open a Word™, Excel™ or other document in MicroStation | |||
| Run a Batch File | Run a Windows batch (*.bat) file from MicroStation | ShellBatch.zip | ||
| UNC and Drive Paths | Compare a UNC path with a Drive path using VBA | ComparePaths.zip | ||
| MicroStation Title | Set MicroStation Title article | SetMicroStationTitle.zip | ||
| Progress Bar | Progress Bar article | ProgressBarExample.zip | ||
| Windows Common Dialogs | Common Dialogs page | Code is in article | ||
| File Type Description | Windows File Type Description page | |||
| File Relative Paths | Find Relative Path page | |||
| File Locations | File Locations page | |||
| Open Design File | OpenDesignFile and OpenDesignFileForProgram page | |||
| Read CSV Text File | Parse a CSV Text File and Assign a Point3d from each line |
|||
| Next File | Open the next or previous DGN file in the same folder as the active DGN file | |||
| Win32 Window Handle | Window Handle page | Code is in article |