Automation rules
Wire up and label a whole piece of equipment on a page in one step, from your tag naming convention.
Building a page by hand means, for every symbol, finding the process value, finding the set point, attaching the running and manual tags, adding the alarms, and placing and styling a label for each — a dozen small steps per symbol, repeated hundreds of times, and easy to get subtly inconsistent.
Automation rules do that from your tag naming convention instead. If your
tags are named like AHU01_SF01_PV, AHU01_SF01_SP, AHU01_SF01_M, then
“everything about supply fan 1” is already expressed in the names — the rule
teaches THMI to read it. You then drop a fan symbol on a page, point it at
AHU01_SF01, and everything is attached and labeled at once.
The two levels
Automation rules are configured under Automation rules in the project, and there are two levels to them:
- Project-wide label settings — how automation labels look and how names are turned into label text, for the whole project.
- Rules — the named rule sets that recognize suffixes and decide what to do with each one. A page element is bound to one rule.
A rule can override the project settings where it needs to, so the project level is the house style and the rules are the exceptions.
Project-wide label settings
Label appearance
How every automation-created label is drawn, unless a rule overrides it:
| Setting | What it does |
|---|---|
| Font family | Arial, Courier New, Times New Roman, Verdana, or Roboto. |
| Font size | The label’s size. |
| Font style | Any combination of bold, italic, and underline. |
| Position | Where the label sits relative to its symbol — top, bottom, left, or right. |
| Fill | The label’s color. |
| Autoscale | Scale the label with the symbol, so it stays proportionate when you resize. |
System name labels and custom name labels
A tag’s full name is rarely what you want printed on a diagram —
AHU01_SF01_TE01_PV is precise but unreadable at a glance. These two sections
turn a name into label text, separately for
system names and custom names, because the two usually
follow different conventions:
| Setting | What it does |
|---|---|
| Delimiter | The single character that separates the parts of a name. Defaults to _. Left empty, _ is used. |
| Delimiter transform | The character to replace the delimiter with in the finished label. Left empty, the delimiter is kept as it is. |
| Trim amount | How many leading parts to drop, counting from the left. |
The suffix is always removed, whatever you set here — that’s what identifies the tag’s role, not part of its name. A live Preview under the fields shows the result on a sample name, so you can dial these in without guessing.
Working through MODULE_C1_C2_C3_C4_SUFFIX with delimiter _:
| Delimiter transform | Trim amount | Result |
|---|---|---|
- | 0 | MODULE-C1-C2-C3-C4 |
| (empty) | 0 | MODULE_C1_C2_C3_C4 |
- | 2 | C2-C3-C4 |
Trim is how you strip a prefix everyone on site already knows — if every tag on a page starts with the same building and system code, trimming two parts leaves just the part that distinguishes one component from the next.
Rules
A rule is a named set of suffix rules. Each suffix rule says: when a tag or alarm under the chosen path ends in one of these suffixes, do this with it.
Give a rule a name and a description, then add its suffix rules. Each has:
- Suffix — one or more suffixes this rule matches. Several suffixes on one
rule is normal:
VandVALUEfor the same role, say. As you type, suffixes already used elsewhere in the rule are suggested, so a set stays consistent. - Source — whether the suffix identifies a Tag or an Alarm.
- Action — what to do with what it matched.
Actions
The available actions depend on the source. With source Alarm, the only action is Attach as alarm. With source Tag, everything else is available:
| Action | What it does |
|---|---|
| Attach as process value | The measured value — attached, and given a label. |
| Attach as set point | The target value — attached, and given a label. |
| Attach to value property | Binds the tag to the symbol’s value. |
| Attach to running property | Binds the tag to the symbol’s enabled state, so the symbol fills in when it runs. |
| Attach to manual property | Binds the tag to the symbol’s manual state. |
| Attach to change value | Makes the matched tags writable from the symbol — a click action that changes a value. |
| Add to trend | Marks the tag as trendable so it’s collected for trends. |
| Attach as alarm | (source Alarm) Attaches the alarm, so its indicator lights up on the symbol. |
Attach to change value works differently from the rest: it’s a collector. Its
suffix list is normally made up of suffixes other rules have already matched, and
it gathers those into the symbol’s change-value action in the order you list
them. So V, PV, M on a change-value rule makes those three writable from
the symbol, in that order. A suffix that appears only on the change-value rule
still resolves on its own.
Per-rule overrides
Each rule can override the project label settings:
- Override label transform — on the rule’s System names and Custom names sections, replace the project’s delimiter, delimiter transform, and trim amount for this rule only.
- Override label appearance — on a suffix rule, replace the project’s font, size, style, position, fill, and autoscale. This is only offered for Attach as process value and Attach as set point, since those are the actions that produce a label.
Use overrides sparingly. The reason automation rules produce a consistent-looking page is that most things inherit the project style.
Using a rule on a page
Rules do nothing until an element on a page is bound to one. In the page editor, select a symbol (or a text element) and open the Automation section of the Properties panel.
Binding
Choose Bind to open Select automation path, which asks for two things:
- Rule — which rule to apply. It determines how suffixes are handled and how labels are shown.
- Path — where in the project’s tags to look. Browse down from All to the folder holding the component’s tags. The browser shows how many Suffixes each path matches under the chosen rule, so you can see at a glance whether you’re at the right level before committing.
Choose the rule first — the path browser stays empty until you do, because what counts as a match depends on the rule.
Confirming applies every suffix rule at once: tags are attached to the symbol’s properties, alarms are attached, labels are created and styled, and trendable tags are marked. The Automation section then shows the bound path and a link to the rule it used.
Symbols support every action. A text element supports the subset that makes sense for it: add to trend, attach to change value, attach as process value, and attach as set point.
Unbinding and rebinding
Once bound, an element remembers the connection, which lets you edit it and put it back. This works at two levels.
The whole element. The Automation section shows the bound path with a Remove button beside it. Removing detaches the element from its rule and keeps whatever is currently on it — do that when a symbol needs hand-tuning the rule doesn’t allow for.
One property at a time. Each individual thing the rule filled in — a state field, a click action, a label — carries its own small Unbind / Rebind toggle. Unbind that one property to take manual control of it while everything else on the symbol stays rule-driven; rebind it to throw your change away and take the rule’s value back. This is the finer instrument, and usually the one you want: you rarely need to detach a whole pump just to override its label.
For a whole page at once, use Tools → Automation in the menu bar:
- Rebind all — rebind every automation-bound object on the page.
- Rebind selected — rebind only what’s selected.
- View rules — jump to the project’s rules.
A rebind confirms first and tells you how many objects it will affect. Afterwards you’re told how many were rebound, and how many were skipped because their rule could no longer be resolved — a rule that’s since been deleted, for instance. If there’s nothing automation-bound to act on, you get a message saying so instead of the confirmation dialog.