Increment MicroStation Text

Increment Individual Text

Q How do I increment a MicroStation text element or text node element that contains a text like AA? For example, I have a drawing title containing a revision code like Revision: AA and I want to revise that to Revision: AB.

A If you just want to use the Text Incrementor macro, jump to the download paragraph. Otherwise, keep on reading.

Increment Text in a Sequence

Q How do I create a sequence of MicroStation text elements or text node elements that start with a number and increment that text for each member of a sequence?

A If you just want to use the Text Incrementor macro to sequence numbers, jump to the download paragraph. Otherwise, keep on reading.

VBA Implementation

Read the text element, pass its content to an incrementor function, set the content to the result, and rewrite the element …

  1. Locate a TextElement
  2. Read the TextElement into memory
  3. Pass its text content to the IncrementText class described here
  4. Assign the result of the IncrementText function to the TextElement
  5. Rewrite the TextElement

The Text Incrementor VBA project is a working project that implements a text locator along with the text increment function. It works with simple text elements and with text node elements.

It's sensitive to selection sets and fences. If a fence is active, or a selection set is present, the macro processes the elements in that collection. Otherwise, it provides a pick tool, which prompts you to pick text or text node elements.

When used with a text node element, the Text Incrementor looks only at the last text element in the node. That is, if your text node looks like this …

ABC
DEF

The incrementor considers only the last line (DEF) and increments that, like this …

ABC
DEG

You don't have to be a VBA whizz to use this macro. Follow the instruction to download the macro and invoke the key-in mentioned below.

Sequencing

When sequencing text, the Text Incrementor expects an active selection set or a fence. It extracts the text of the first text element in that set, and uses it as the pattern for subsequent values in the sequence.

Text Incrementor looks at the first text or text node element in the selection or fence. It uses that as the pattern for subsequent text. For example, if the first element contains text Revision AA, then Text Incrementor calculates the next value of the sequence as N x increment. N is the current index in the sequence, and increment is the increment (or decrement) value. In this example, the sequences becomes …

Revision AA
Revision AB
Revision AB
...
Revision AZ
Revision BA

The text in a sequence may not be what you expect. If elements are in a selection set, the numbers correspond to the position of each text element in that set. You have control over the order in which you select elements. If elements are in a fence, the numbers may appear almost random. The increment corresponds to the file order of text elements found in the fence. You have no control over the order in which the Text Incrementor processes the fence contents.

Increment Numeric Text

If you want a tool to increment numeric text, then read this article

VBA Comments

IncrementText VBA Class

The IncrementText class does the work of incrementing a single text or text-node element, or multiple text or text-node elements. It extracts the element's text, calculates the incremented value that it applies to the text, then rewrites the text element.

When creating a sequence of numbers, it finds the first text element in the selection or fence, and uses that as a pattern for the rest of the sequence. For example, if the first text element in the selection contains ABC AAA, then the pattern for subsequence text will be …

ABC & AAA + index * increment.

If you're a VBA developer, then download the macro and examine the source code using MicroStation's Interactive Development Environment (IDE).

Download IncrementAlpha.ZIP

Download the IncrementAlpha ZIP archive, and unpack it to a suitable location such as \Workspace\Standards\vba. Start the macro using the key-in …

vba run [AlphaIncrementor]modMain.Main

Or, if you want to sequence values, do this …

vba run [TextIncrementor]modMain.Main sequence

When creating a sequence, the Text Incrementor works on multiple text elements. It expects to find those elements either in a selection set or a fence.

Any of those key-ins reveals the macro version number in MicroStation's Message Center …

Text Incrementor version

Questions

Post questions about MicroStation programming to the MicroStation Programming Forum.