Service Bundles: Production Tools


 The focus, of our consulting practice is the automation of Computer Aided Design (CAD) and Engineering technologies. We are experts at enhancing the capabilities of foundational CAD systems like MicroStation from Bentley Systems, and AutoCAD from Autodesk. We are software engineers, coders, who create amazing applications for vertical programs like Civil 3D and OpenRoads. We also help our customers wrangle large datasets by building integrated solutions between the CAD, databases, and systems like ProjectWise.

     The team has chosen some service projects to highlight and present as “bundles”. The idea is to provide compact examples of what you might do to make your design process more effective, or in many cases, do something that you may have thought was impossible. It’s not expected that each of these will be an exact fit for your team, but with some modifications we can leverage the code and experiences of these examples to create an amazing app for you. 

     Coding projects do not have to be big, massive, and complex to be effective as is the case with the first three examples. Visual Basic for Applications (VBA) in MicroStation are the primary technologies used by these programs. They are simple and fairly easy to implement. And, better still, each one reduces production hours and human error which improves drawing quality. We will follow with progressively complex examples throughout the year.

Revision Shift

Changing the revision data in a title block can be time consuming especially if it has to be done across hundreds of drawings.
Just the task of removing the oldest revision data and signatures takes more than a second.
And, what if you delete the wrong thing – undo, re-do, re-type.

     The revision shift command reads the revision shift title block tag data, removes the oldest row, then “shifts” the block up leaving the most recent revision block empty ready to accept new dates, descriptions, and approval initials.

There is no copy-paste, or tag editing, the program does all the work and it completes the task in milli-seconds.

Title Block EDF to Tags


If your client uses ProjectWise, chances are they have created new borders containing Tags. But hey, you are tasked with updating an older installation and the drawings the client gave you are pretty old and still use title blocks containing text and/or enter data fields. Now what do you do? Many firms commit to changing out the borders one element at a time. This can add hundreds of hours to the drafting time, and errors will be made.

Phocaz has developed tech that can automate this process. Now, a task that used to take hundreds of hours per project is reduced to a few minutes. The program we created reads the legacy title block information and loads it into the appropriate tag data field – no typing required.

The image only shows the revision number, but this title block actually has 43 text elements. Copying each text string from the old title block to the data fields in the new title block was taking more than an hour per drawing.

The program Phocaz created takes about a second. Further, this tool was modified to process multiple drawings (batch process) – so the design team can now run this program at the beginning of a project and swap out all of the old title blocks with new, fully populated title blocks.

Project Final


Your approach to final packaging of a project’s electronic deliverables can be and afterthought or it can be a business differentiator. Whether you are aware of it or not, your team has to do some house-keeping on all CAD files before these are handed-off to the customer/owner.

This would be operations that go beyond basic CAD standards. In MicroStation your team might be turning on/off views, on/off levels, and setting file attributes. And in AutoCAD this could be turning on/off layers, window to a specific coordinate, running purge, and making model space the active tab. It’s also likely that your team is burning a lot of project hours to accomplish these tasks because they are making these settings one at a time and on one drawing at a time.

Instead, what if they could accomplish this entire task in just a few seconds and with consistent results. That is, they don’t miss a step or turn on the wrong layer. We can help. You tell us what final state the drawings need to have, and we will provide a script, or program, that will process the drawings in seconds.

Technologies: C#, VBA, MicroStation, AutoCAD

ProjectWise Integrations


A document management system (DMS) provides governance over the design practice and can be essential when working in complex organizations that interact with many external partners. ProjectWise is a DMS commonly used in CAD environments. Incorporating ProjectWise capabilities into add-ins and custom applications ensures workflow compliance.


Deed Writer is a desktop application developed to construct deed documentation. The program takes an InRoads (or OpenRoads) output file describing a property and reformats this description into Microsoft Word format. Additionally, the application provides several options so the planner can create a complete project document. 

When the ProjectWise option is turned on, the program will use the ProjectWise browse dialog to find and save files.
Instead of manipulating each component individually, the integrated process automatically combines each component in a way that improves project integrity. It does this by combining business critical technologies – ProjectWise, Microsoft Word, and CAD.


Tecnologies: C#, ProjectWise, OpenRoads, InRoads, Microsoft Office

Service Bundles: Smart Tools 

Many of the programs we design, build, and maintain fit into a category called smart tools – versus productivity tools that batch changes, like Project Final. With smart tools, the user’s input is usually directed through a GUI. Dimensional parameters and properties are controlled through this interface. And, almost always there is extended data added to the drawn entities (elements in MicroStation). This extended data can be reported, and it can be used to automate subsequent drawing actions. In the following sections we will highlight specific smart tools to demonstrate how add-ins can automate and standardize work process.

Sign Post Placement

A Smart Tools Service Bundle

As a function of a larger road sign program built for a state transportation department, the post placement command represents a good example of how we might automate the placement of a CAD entity based on existing data and drawing entities.

Imagine if we could place a block (cell in OpenRoads) by specifying station and offset, then automatically rotate it to match the direction of travel along the highway. Further, consider appending xdata to the block. If we did this, we can use it to automate label placement, and later generate estimates based on pay items that are also stored on the sign post block.

This is exactly what we have been able to accomplish in our signs program. And, we have replicated the work flow in both Civil 3D and OpenRoads designer. Below are some images from the program. Demonstrating placement along an alignment and post labels.

Figure 1: Program GUI for Post Selection – Pay Item is discovered automatically based on user input.
Figure 2: Placement is dynamic and post rotates to match direction of travel.
Figure 3: Mouse over post to see xdata. Also (not shown) the post is rotated during placement to match the direction of travel.
Figure 4: Place Post Label Command Automatically Extracts XData from Entity and Configures Label

Technologies: C#, MicroStation, OpenRoads, AutoCAD, Civil 3D


A Smart Tool Service Bundle

By selecting a pavement marking pay item, and setting a few placement properties, our client can now draw several miles of striping with a couple of clicks. The real power, however, comes from the data tracked on each stripe element.

Figure 1: Program GUI – Pavement Marking Properties are Selected by the User

How does this work? When the designer wants to add stripes to a drawing, the only data that needs to be set is the pay item for the inside (and outside stipe if different). Users search and select from the data tree.

Figure 2: Data Selection from Tree View

With this single selection, the program can determine the pay item name, the level/layer, a long description, stripe length, and skip length when needed. Data about the stripes is further extended by calculating the total length and all of this is tracked. In Open Roads we use item types, and in Civil 3D xdata is used.

The designer then adds the stripes. In this example the alignment is selected, and the stipes are drawn along the edge of the pavement.

Figure 3: Stripes Added to Road with Data

This data is now readily quantifiable and easily reportable. This data is structured in a way that will allow the client to use their standard reporting tools.


Technologies: C#, MicroStation, OpenRoads, AutoCAD, Civil 3D

Spot Elevation

A Smart Tool Sertvice Bundle

What happens when a tool from your CAD workflow is removed or is no longer supported?

That is, it will not work in newer versions of your favorite CAD software. Typically, there are replacement features, but these are often only available in premium applications, and/or have pre-requisite workflows that make adding some detail complicated and time consuming. You just want that command back.

This is the case with a command called Spot Elevation.

This command places markers at a selected or specified elevation. The command does not save any data, but it does take user input to control the command action – marker style, level, size, with or without leader, etc.
If you’re familiar with the old command, then this one will be very familiar.

The original command was included as part of a larger add-in called Civil Tools and has not been carried forward to the latest generation of MicroStation – CONNECT. By re-creating this tool we are helping our client maintain established practices and standards that his clients expect.

Reporting Overview

When analyzing the work process there are almost always one of the three areas of automation that are underserved.

We have looked at the first two already, productivity and smart tools.

Productivity tools address quality and speed, while smart tools offer a means to automate event driven actions such as labeling or moving related graphics at the same time – the latter is particularly helpful when users are unaware of entity dependencies. 

The third area is reporting.

This involves extracting data from CAD and then exporting to CSV, a word document, or excel file complete with formatting.

Basic extraction tools might gather information about levels, element types, and locations. While more sophisticated reporting will dig into the smart data facilitating the creating of estimates, bills of material, and engineering analysis. Further, the interrogation of smart data can lead to more complex design validations beyond levels, color, and style.

Exporting Photo Locations

A Reporting Service

Photogeo[DWG and DGN] is a program that helps you remember why and where you captured a project photo. It does this by automatically inserting markers and photos into a CAD file, with a defined coordinate system, at the location and orientation they were shot.


Once this data is in the design file, we can scan the drawing to get the photos in the design file and then report the positions – both cartesian and gps – of each photo. 

In this example, PhotogeoDWG has found seven photos in the drawing.

Running the Export to CSV command reports the positions.