AseptSoft Core Documentation

Highlighters

Highlighters are reusable visual annotations that AseptSoft paints on top of your P&ID — a coloured outline around a valve, a label that follows an instrument, a fill-tinted shape on a state, a warning diamond on an alarm instrument, or a free-form frame you place by hand. Each one is a small recipe that is configured once in a catalog and reused everywhere it applies. When you close AseptSoft or change step, highlighters update automatically to reflect the new context, and they never leave anything behind in the saved drawing.

Where to find it: Module RibbonLive Edit panel → the Highlight split button. Its dropdown is the home for the whole highlighter workflow: place a highlight, edit a placed highlight, open the Highlighter Designer, open the Manage Placed Highlights window, and toggle the alarm / equipment-module overlays.


🎨 What a highlighter is

A highlighter is a recipe for what to draw (one or more stacked shapes — frame, circle, square, polygon, hatch, split panel, polyline, path, text, or icon), where to put it (anchored to a symbol, a tag block, or a point you pick), and when it is visible (its scope). The same recipe applies wherever its trigger fires: change step and the highlight follows, toggle a state and it follows, rotate the symbol it sits on and it rotates with it.

Every highlighter belongs to one category. Categories group the catalog so the Designer's left list stays organized, and they decide who applies the recipe automatically.

Category

What triggers it

How you edit it

🔵 Instruments — Monitoring

Painted on every instrument that monitors in the active step (teal square).

Built-in, parts editable

🟣 Instruments — Controlling

Painted on every instrument that controls in the active step (magenta square).

Built-in, parts editable

🟢 Controlled Valves / Control Valves

Painted on valves driven by a control loop in the active step.

Built-in, parts editable

🔴 Instrument Alarms

Painted on every instrument referenced by at least one configured alarm (red diamond).

Built-in single recipe, parts editable

🎨 States — Master

Painted on every valve in a state marked Highlightable in the active step.

Built-in; fork into a Custom per state

🖌️ States — Custom

Same as Master, but only for the state it was forked from.

Independent recipe per state

✏️ User-defined

Placed manually with Highlight in Phase.

Author from scratch

💡 The four instrument and valve trigger categories are colour-coded to be distinguishable at a glance: Monitoring is teal, Controlling is magenta, Control Valves are rose-pink, and Instrument Alarms are a red diamond. Each motif reads differently even before colour registers, so an alarm-tagged controlling instrument shows both its magenta square and its red diamond without the two ever being confused.


🧰 The Highlighter Designer

https://downloads.aseptsoft.ch/documentation/images/PID-Components/Highlight/highlighter-designer.png

The Designer is where you author and tune the look of every highlighter. Open it directly from the Highlight split button's dropdown (it also remains reachable from the Settings menu). It opens to the catalog grouped by category; pick any row to inspect or edit it. Every change is reflected in a live preview that uses the exact same drawing engine AutoCAD uses — what you see in the preview is what gets plotted.

The catalog list

The left list groups recipes by category, with the State Master at the top of its group and any per-state forks listed beneath it. Each row carries a small shape icon and a readable label so you can scan the catalog and recognise a recipe by its silhouette before reading its name.

Definition, targeting, and geometry

Section

What you control

Definition

Name, description, and target category.

Targeting

Which entities the recipe lands on — the body symbol, the tag block, or both — with rules for what to do when the tag is ambiguous (see below).

Geometry behavior

Two checkboxes: Follow entity transform (rotate/scale with the symbol — the recommended default) and Text parts follow transform (when off, text labels stay anchored to their world-aligned corner so they always read upright at a stable spot, regardless of how the symbol is rotated or mirrored).

Parts list

The stack of shapes that compose the highlighter. Each part has its own anchor (where on the bounding box it attaches) and origin (which corner of the part lands on that anchor).

Part Inspector

The properties of the selected part. The inspector adapts to the part's shape (see below).

The shape palette

A part can be any of ten shape kinds, each rendered faithfully in both the live preview and the plotted drawing.

Shape

What it draws

Frame / Rectangle

A rectangular outline, optionally filled.

Circle / Square

A circle or equal-sided square, optionally filled.

Regular polygon

An N-sided polygon (you set the number of sides) with an optional solid fill.

Hatch

A named fill pattern (with scale and angle) over a rectangle.

Split panel

The part rectangle divided into coloured columns, rows, or two diagonal triangles — each segment taking its own colour.

Polyline

A free point list, open or closed, with a polygon fill when closed.

Path

A vector outline scaled into the part box for custom marks and logos.

Icon

A FontAwesome glyph drawn as real geometry, so it prints correctly without depending on any installed font.

Text

A label, with placeholder tokens, font choice, and span fitting (see below).

The inspector knows each shape

The Part Inspector shows only the fields that matter for the selected shape, so the editor never buries you in irrelevant controls:

  • Sides for a regular polygon; Pattern / Scale / Angle for a hatch; a searchable icon picker for an icon; a point-list editor for a polyline; vector data for a path; orientation + per-segment colour for a split panel; template / font / bold / italic / alignment for text.

  • The shape dropdown shows an icon next to each kind so the choice is scannable.

  • Both anchor pickers are 3×3 grid selectors — click the corner, edge, or centre where the part should attach.

  • Per-part Visible, line weight, line type, and a fixed rotation in degrees are all editable.

  • Expression fields validate as you type — a bad entry shows a red border and a tooltip explaining the problem.

Colour-mode aware pickers

Every colour field offers four modes, so a part can carry a dynamic colour rather than a frozen one:

Mode

The colour comes from…

Fixed

A colour you pick directly.

Item state

The valve's current state colour — the highlight recolours itself as the state changes.

Active fluid

The colour of the fluid currently flowing through the line.

Token

A placeholder such as {State.Color}, resolved at draw time.

The searchable icon picker

When a part is an icon, the picker is a filterable dropdown of roughly two thousand FontAwesome glyphs. Each row renders the actual glyph next to its name, and typing in the box live-filters the list to names containing what you typed. A glyph preview sits beside the box so you can confirm your choice before committing.

Filled shapes look filled

Whenever you give a Circle, Square, Rectangle, or polygon a real fill colour, it shows up filled on the drawing. Picking a transparent, pure-black, or pure-white fill is the conventional way to say "no fill" — the highlighter then renders only its outline.

Span text between two points

A text part can be anchored by two points instead of one, fitting into the box they form. A left-to-right pair gives a horizontal span, a top-to-bottom pair a vertical span, and opposite corners a full box. The Text inspector exposes a Span text between two points toggle that reveals the second anchor, its offsets, and the fitting controls.

Control

Effect

Span on

Text that is too long for the span is always condensed to fit — it can never overflow the wall you spanned to.

Longer to fill (off by default)

Governs text that is shorter than the span. On: the text stretches to touch both ends. Off: the text keeps its natural width and is positioned by Alignment (Left / Center / Right).

Auto-break long lines (off by default)

Wraps a long note onto multiple lines rather than squeezing it. When both width and height are constrained, the text is sized as large as fits the box, so each line fills the width and the block fills the height — with no glyph distortion.

Alignment

Left / Center / Right, shown only when the text is not stretched to fill.

📐 Condensing or stretching only ever changes the width of the letters — never the height — so a label fitted to a wall keeps its natural, readable proportions. The width is measured with AutoCAD's own font metrics, so a fitted label lands exactly on the target wall in the plotted drawing, matching the Designer preview.

Tag-aware targeting

Many highlighters look best sitting on the valve's TAG block rather than the body symbol. The Targeting card has four toggles for that:

Toggle

Effect

Emit on body

Draw the recipe on the entity's main shape.

Emit on tag sources

Draw the recipe on the entity's TAG block(s) too.

Tag only if a single tag is found

When a valve has more than one TAG candidate, fall back to the body — never split across multiple tags.

Hide body if any tag was rendered

If the tag did get rendered, suppress the body emission so the highlight sits on the tag or the body, never both.

Out of the box, the State Master highlighter has all four enabled — so a state highlight prefers the TAG and falls back to the body when the data doesn't allow it.


✏️ User-defined highlighters and "Highlight in Phase"

User-defined highlighters are recipes you author yourself, with no automatic trigger. You place them on the drawing with the Highlight in Phase command and they live exactly where you put them, with the visibility scope you chose.

Creating a recipe

  1. Open the Highlighter Designer from the Highlight dropdown.

  2. In the left list, scroll to User-defined and click ➕ Add user-defined. A blank recipe with a single square frame appears.

  3. Build it up in the Part Inspector — add shapes, set colours, type text, choose icons, span a label between two points.

  4. Use placeholders inside text content where appropriate:

    • {User.<key>} — a free-form value you supply when placing the highlight (e.g. {User.Comment}, {User.Author}).

    • {User.Author} auto-fills with your AseptSoft username on first placement; you can still overwrite it.

  5. Save. The recipe joins the catalog and becomes available as a placement target.

Placing a highlight on the drawing

Run Place a highlight (Highlight in Phase) from the dropdown. The command walks you through placement:

  1. Pick a recipe from the picker window. Recipes are grouped by category.

  2. Choose the visibility scope — three buckets, described in the next section.

  3. If the recipe references any {User.*} tokens, a Token values form appears — fill in the values and press Enter.

  4. Pick where it goes. Two modes are available, and you can switch back and forth:

    • Corners mode (default) — sweep a rectangle. The highlight previews live on the cursor as you drag; click to commit.

    • Entity mode — pick an existing AutoCAD entity. The highlight anchors on its bounding box.

  5. The keyword sWitch highlighter mid-loop reopens the picker if you want a different recipe (token values carry over so you don't retype them).

  6. Press Enter or Done to exit, or Esc to abort.

💡 Last-used memory: the next time you run the command in the same AutoCAD session, the prompt offers [Use/sWitch] so you can repeat the previous recipe with a single keystroke. The live preview uses the same emitter as the committed result — what you see while dragging is exactly what you get.

Same recipe, many placements

A single User-defined recipe can be placed on as many entities or rectangles as you like, each with its own {User.*} values. One Annotation recipe with a {User.Comment} token can serve dozens of placements without cloning the recipe per variant.


🌐 Visibility scope — step, process, or whole module

https://downloads.aseptsoft.ch/documentation/images/PID-Components/Highlight/highlight-creation.png

When you place a user-defined highlight, you choose how widely it is visible. The three buckets follow the operator's mental model of "where should this note live".

Scope

The highlight is visible…

Use it for

🔹 This step

Only while its own step is the active step.

A one-off comment that matters only on the Caustic Wash step.

🔸 This process

While any step of its process is active — it rides along through every step of that process.

A label that should follow the whole CIP Rinse Cycle, from Pre-Rinse to Drain.

🟩 Whole module

Always, regardless of which step or process is active.

A drawing-wide legend or safety notice that should always be on screen.

Setting

Effect

AseptSoft inactive / module closed

All highlights disappear automatically — the underlying P&ID stays clean.

✅ A single rule decides visibility everywhere a highlight appears — the live drawing, the edit-by-pick tool, the manager window, and the PDF export — so a placement always behaves consistently no matter where you look at it.


🗂️ Manage Placed Highlights

https://downloads.aseptsoft.ch/documentation/images/PID-Components/Highlight/placed-highlights-manager.png

The Manage Placed Highlights window lists every user-placed highlight across every open P&ID in the project. Open it from the Highlight dropdown. It is modeless — it floats above AutoCAD without blocking pan, zoom, or the command line — and it stays live: every PID switch and every step change refreshes the list so what you see always matches what is drawn right now.

Column / Action

What it does

PID group header

Rows are grouped by PID. The active PID appears at the top with an (active) suffix.

Recipe / Tokens / Anchor

A compact summary of each placement.

Scope pill

A coloured badge tells you the placement's bucket at a glance: Whole module , Active step , Process: «name» , or a grey pill naming another step.

🎯 Locate

Flashes a thick yellow dashed rectangle around the placement on the drawing. For a highlight on a non-active PID, AseptSoft activates that PID first; for a step- or process-scoped highlight, it also switches to the owning step or process so the placement is actually visible before zooming. It then zooms correctly whether you are in modelspace or inside a layout viewport — the paperspace composition is never disturbed.

🗑️ Delete

Removes the placement (the catalog recipe is unaffected).

Closing the window clears every numbered selection halo so the drawing returns to clean.


🚨 Instrument-alarm highlights

When alarm highlights are switched on, every instrument that is referenced by at least one configured alarm is marked with a red diamond (a 45°-rotated square), a ⚠ ALARM banner above it, and the names of the alarms it participates in listed below. The diamond shape is deliberately distinct from the square instrument frames, so it stacks cleanly on top of them — an alarm-tagged controlling instrument shows both its magenta square and its red diamond at once.

The instruments are detected by the same scan the instrument hover popup uses, so the diamonds and the popup always agree. Turn the overlay on from the Highlight dropdown's Show Instrument Alarms toggle. It is off by default — alarm highlights are an opt-in overlay for review work, not a permanent decoration — and editing an alarm refreshes the diamonds immediately.

💡 Power users can tune the alarm recipe in the Designer like any other. The alarm-name list is driven by a token family, so you can compact a crowded instrument — for example list its HH / H / L / LL alarms comma-separated on one line instead of one per line — without losing the per-alarm fields.


🌟 State-driven highlighters

Any State can be marked Highlightable in the State editor. When it is, every valve in that state in the active step gets a highlight from the catalog's State Master recipe — automatically, with the state's own colour and percentage flowing into the recipe via placeholder tokens.

What happens

When

The Master recipe paints across every Highlightable state

The state is in the active phase on a valve.

You fork the Master into a per-state Custom

You want one specific state to look different from the rest.

Master edits propagate everywhere

Forked states stay independent.

Creating a per-state Custom recipe

  1. Open the State editor.

  2. Tick Highlightable in active phase.

  3. In the Highlighter dropdown, pick Create Custom... — the Master recipe is cloned into a new Custom recipe owned by this state, the Designer opens with it selected, and you edit it freely.

A Reset button on a Custom row deletes the fork (the state falls back to the Master). A Reset button on the Master row reseeds it to its built-in default.

Placeholder tokens for state recipes

Text and colour fields in a State Master/Custom recipe can reference these tokens, which resolve at draw time per (valve, state, phase):

Token

Resolves to

{State.Name}

The active state's name.

{State.Color}

The state's colour (use it for stroke/fill so the recipe automatically follows the state).

{State.Percent} / {State.PercentSuffix}

The active percentage and a formatted suffix (e.g. " 50%").

{State.CustomAttributesLines}

Per-step attribute values as multi-line text.

{Valve.Name} / {Valve.Tag}

The valve being highlighted.

{Attribute.<key>} / {AttributeUnit.<key>} / {AttributeWithUnit.<key>}

Custom attributes the state defines per phase (e.g. an Open delay on a Pulsating state). Optional formatter: {Attribute.Closed delay:F1}.

So a State Master recipe with text content {State.Name}{State.PercentSuffix} and stroke colour {State.Color} is the one recipe that paints any Highlightable state with its own name, percentage, and colour — no per-state work needed.


🧮 Custom in-phase attributes on a state

Some states carry additional values that vary per phase — a Pulsating state with an Open delay and a Closed delay, a Sterilization state with a temperature, a CIP state with a chemical concentration. Define those values once on the state, and AseptSoft surfaces them in the right places automatically.

Where you set the values

Surface

What you do

Valve hover popup

While the active step uses the state, an Attributes in this step section appears under the state row with one editable field per key. Press Enter to commit.

Valve × Step Matrix

Right-click a cell whose state has attribute keys → Edit attribute values... opens the standard Attributes form scoped to that (valve × step × state) tuple.

Excel round-trip

The Module Excel export adds a sidecar sheet per Highlightable state-with-attributes — one sheet {StateName} - Attributes with valves on rows and {Step} • {AttributeKey} columns. Edit the sheet, re-import, and values flow back into the project.

How the values reach the highlight

Reference any {Attribute.<key>} token in the State Master/Custom recipe's text — the highlight on the drawing then displays the Open delay, Closed delay, etc. for the specific (valve × step × state) cell it's painting. Edit the value in the popup or the matrix, and the highlight refreshes immediately.

Step duplication preserves attributes

Duplicating a step (the common "Step 4 is mostly like Step 3 except…" workflow) carries every per-step attribute value across all the (valve × state) pairs both steps share. The new step's highlights look correct from the moment it's created.


🖼️ Symbol-aware geometry

Highlighters scale and rotate with the symbols they sit on. A highlight placed on a valve symbol:

  • …rotates with the symbol if you rotate the block,

  • …mirrors with the symbol if you mirror it,

  • …keeps text labels readable — when a symbol is mirrored or upside-down, the highlighter's text is automatically flipped back so it stays the right way up,

  • …uses the block's designed extents (not the runtime stretched bounding box), so the geometry sits at proportional positions across symbol variants.

Both behaviours are on by default; the Designer's Geometry behavior card lets you opt out per recipe when you need different semantics.


📄 PDF export honours scope

The Export Processes to PDF bundle renders highlights exactly as they appear on screen, page by page: a whole-module highlight prints on every page, a process-scoped highlight prints on the pages of its process, and a step-scoped highlight prints on its step's page. The alarm and equipment-module overlays can also be included via the export window's Highlights checkboxes (see Equipment Module Highlighting).


🏭 Pharma example: pulsating valves with per-step delays

A CIP supply line has six valves that pulse during the pre-rinse step. Each pulse cycle has a different Open delay and Closed delay depending on the size of the line.

  1. Open the State editor for the Pulsating state. Tick Highlightable in active phase. Add two attribute keys: Open delay and Closed delay (both with unit "s").

  2. Click the Highlighter dropdown next to HighlightableCreate Custom.... The Designer opens with a forked recipe.

  3. Edit the recipe's text content to read {State.Name} O:{Attribute.Open delay:F1}s C:{Attribute.Closed delay:F1}s. Save.

  4. In the active step, hover any valve in the Pulsating state. The popup's Attributes in this step section shows the two fields. Set Open delay = 0.8, Closed delay = 1.2, press Enter.

  5. The highlighter on the drawing now reads Pulsating · O:0.8s C:1.2s in the recipe's accent colour — visible from any zoom level.

  6. Want to set the same values for all six valves at once? Export Module Data to Excel, edit the Pulsating - Attributes sheet, re-import. Done.


  • State — defines state colours, fluid responses, and the Highlightable flag plus per-step attributes.

  • Equipment Module Highlighting — automatic highlights for valves grouped into Equipment Modules, plus the instrument-alarm overlay and PDF export options.

  • Notes Live Viewer — text-based annotations with their own scope rules.

  • Valve Hover Inspector — surfaces the Attributes in this step section.