PipeTagger™ is an AddIn or App that adds functionality to Bentley Systems MicroStation® CONNECT. It's a tool for architects, engineers, planners and technicians.

When you annotate an linear feature, Annotator provides two types of label …

  1. A text label, which is typically composed of a MicroStation text node element
  2. A SmartText™ label, which is composed from a cell template

PipeTagger Labels

Text Labels

An Annotator text label is a MicroStation text node element. The text in the text node is populated with data about the tagged element …

PipeTagger example DGN model

Cell Labels

An Annotator cell label is composed from a cell template that you design. Possibly, your CAD administrator will take responsibility for the label template design so it's maintained with other CAD standards. The cell template is a normal MicroStation cell. You store that cell template in a normal MicroStation cell library.

The cell template can contain a mixture of DGN graphic elements, text elements and SmartText elements.

 label template

Note: There is bug in MicroStation CONNECT that prevents text fields in a cell from being updated automatically. That is, if you tag and subsequently edit an linear feature, the length of that feature will initially be correct but won't be correct after you modify that linear feature.

That bug is known to exist in MicroStation CONNECT Update 11 and earlier. The bug does not exist in MicroStation V8i.


SmartText is text that an application, such as Annotator, can replace automatically. Annotator uses SmartText in label templates that you design. SmartText is a placeholder: it is the name of an Annotator property wrapped in special delimiter characters, such as a dollar sign.

For example, one PipeTagger property is Purpose. In a template cell, place text $purpose$ to instruct Annotator to replace $purpose$ with the value of that Item Type in the linear feature that you are tagging.

 label created from template

In the above examples, you can see SmartText in several places. One example is $ID$. You put that SmartText where you want the ID to appear when you tag an linear feature. Once the feature is tagged, PipeTagger substitutes the actual value of the ID for the SmartText in your label cell. It continues substituting the actual value for each piece of SmartText it finds in your label design. Finally, it adds the label to the active DGN model.