AseptSoft Core Documentation

P&ID Components Classification

Classification is the process of teaching AseptSoft which block definitions represent which types of components in your P&ID drawings. Before AseptSoft can simulate fluid flow, colour valves by state, or extract instrument data, it must know that a particular block is a valve, another is an instrument, and another is a pipe source.

This page describes the unified classification system that works across both AutoCAD Plant 3D and AutoCAD Standard.

For a guided, step-by-step walkthrough of how to perform your first classification, see First Time Setup. That page also explains the 4 Glasses Model — the conceptual framework for how TAG recognition flows from environment rules to resolved TAGs.


🧠 Core Concepts

What Is a Class?

A class is a named rule that maps one or more block definition names to an AseptSoft component type. For example:

  • Class "CV-Globe" → maps block definitions whose name contains "CV-Globe" → classified as Control (Engineering Item)

  • Class "PT" → maps blocks matching "PT*" → classified as Instrument

  • Class "WFI-Source" → maps a specific block → classified as Source

What Is an Environment?

An environment is a portable file (.aseptenv) that bundles all class definitions, property rules, token patterns, and groupings into one reusable package. The environment corresponds to Glass 1 in the 4 Glasses Model — the global set of rules that AseptSoft uses to search for and assign TAGs. Environments can be:

  • Shared across projects (copied into the project folder for team distribution)

  • Applied to individual drawings (in AutoCAD Standard) or project-wide (in Plant 3D)

  • Updated centrally and pushed to all users via the project's Environments folder

🔀 Classes vs. Instances

Classification operates at two levels:

Level

Scope

Example

Class

Shared by all block references of the same type

"All globe valves have a Tag, a Control Type, and belong to the Control behaviour"

Instance

Unique to each individual block reference

"This specific globe valve has Tag = CV-101, Control Type = Globe Valve, and is 45% open"

Class-level definitions provide the schema (what properties exist, how they are found). Instance-level data provides the values (the actual tag, type, percentage for each placed symbol).


📂 Classification Types (Behaviours)

Every class is assigned a behaviour type that determines how AseptSoft treats instances of that class. The available behaviours are:

Behaviour

AseptSoft Component

Purpose

Control

Engineering Item (Valve)

Controllable items: valves, pumps, tanks, heat exchangers, agitators, check valves. Have a state (open/closed/percentage), fluid response, and optional connectors.

Instrument

Instrument

Measuring devices: pressure, temperature, flow, level transmitters. Static elements without states, used for GRAFCET conditions. Have a phenomenon type and instrument type.

Fluid Source

Source

Fluid origins: water supplies, steam headers, gas inlets. Static objects that always emit a specific fluid. For dynamic source behaviour with states, classify as Control instead.

Off-Page Connector

Off-Page Connector

Cross-PID references: arrows or symbols that indicate a pipe continues on another drawing. Paired by bind value or tag using one of three methods (Match, Point, or One-Way). Treated as controls — can have states for simulation.

Block Valve

Block Valve

Composite symbols containing an internal flow graph (defined in the Symbol Editor). Treated as a mini-network of control modules.

Excluded

(Ignored)

Blocks that should be explicitly ignored by AseptSoft — never classified, never participate in the flow graph.

⚡ AutoRun Behaviours

In addition to the primary types, classes can be assigned AutoRun behaviours that trigger automatic processing:

AutoRun

Purpose

Auto-Group

Automatically groups block references of this class using token-matched values (e.g., all objects containing "X" in their name). Grouped objects share fluid flow — commonly used for teleport flags.

Auto-Explode

Automatically explodes the block reference every time AseptSoft opens — breaking it into individual unconnected lines to expose internal geometry.

Area Marker

Defines area zones on the PID — each instance marks a region, and components within that region inherit the area designation. Areas can be referenced in TAG segments using $$area(g)$$.


🌊 Fluid Behaviours

Each class can be assigned one or more fluid behaviours from the Fluid dropdown. These control how the block interacts with the fluidstream simulation:

Fluid Behaviour

UI Label

Description

Sticky

Sticky

The block connects to everything that physically touches it — like a fly trap. Any line or object in contact will connect and allow fluid flow. Use for objects sitting on top of other objects (e.g., a valve laying over a tank).

Refuses Sticky Connection

Refuses sticky connection

This block refuses to connect with any Sticky block. Fluid will not pass through from Sticky objects.

Fully Ignored

Fully Ignored

AseptSoft completely ignores this block for fluid flow. Fluid passes through as if it were not there, even when the block has states like "closed".

Always Block

Always Block

The block always blocks fluid propagation regardless of its state. Even if a valve is set to "open", fluid stops here.

Pointed at from Far

Pointed at from far

If the open end of a pipe line points towards this block from a distance (without physically touching), AseptSoft creates a connection. Use for sources or objects drawn disconnected from the pipe network but logically connected.

Tank-like

Tank-like

Only gas leaves through the top connection; liquid exits from the bottom.

Very Reactive

Very Reactive

The block connects to anything within a padded bounding box (configurable distance). Imagine an invisible rectangle around the object — anything crossing that rectangle connects.

Immune to Reactive Blocks

Immune to Reactive Blocks

This block cannot be captured by Very Reactive blocks.

Pipe Crossing Break

Pipe Crossing Break

An X-shaped crossing where two pipes cross visually but do not connect.

Non Touching

Non Touching

The block sits near the pipe with a gap — it connects through the Line Breaker mapper with a configurable maximum distance.

Fluid Colourable

Fluid Colourable

The block's geometry participates in fluid colouring — pipes and symbols change color when fluid passes through.

Not Fluid Colourable

Not Fluid Colourable

The block is excluded from fluid colouring even if connected to the flow graph.

Multiple fluid behaviours can be assigned to the same class by selecting them in the multi-select dropdown.

An alternative to setting fluid behaviour globally for a class is the Symbol Editor, where you can fine-tune fluid flow within the block's internal geometry — differentiating which parts of the block let fluid through and which do not.


🖥️ Platform Differences

AutoCAD Plant 3D

In Plant 3D, classification works at two levels simultaneously:

  1. Native Plant 3D classification: The Plant 3D data model already knows that certain PnP assets are valves, instruments, etc. AseptSoft reads this native classification through the DataLinksManager and PnP picklists.

  2. AseptSoft classification overlay: AseptSoft creates additional columns and picklists in the Plant 3D data model. Users can assign AseptSoft properties directly from the Plant 3D Data Manager.

  3. Hierarchy support: Plant 3D provides a class hierarchy (parent-child relationships between PnP classes). The Classification Window displays this hierarchy with depth-based colour coding and an optional tree-mode toggle.

Classification is project-wide in Plant 3D — all PIDs share the same definitions loaded from the project database.

AutoCAD Standard

In AutoCAD Standard, classification relies entirely on the artificial classification system:

  1. Segment-based TAG resolution: Since there is no native data model, AseptSoft uses TAG segments — each segment defines one part of the TAG (see TAG Segments in the First Time Setup guide). Content sources include: manually written text, block property acquisition, advanced block property acquisition from nearby blocks, regex text retrieval, and special properties.

  2. Environment database: All class definitions are stored in the environment database (.aseptenv file). The environment is loaded per-PID.

  3. Hungarian algorithm matching: When resolving TAG segments against actual drawing entities, AseptSoft uses the Hungarian algorithm to find the optimal assignment of text entities to TAG segments, minimizing total distance while respecting layer filters and distance constraints.

  4. No hierarchy: Classes are flat (no parent-child structure). The Classification Window shows a simple alphabetical or grouped list.


🪟 The Classification Window

The Unified Classification Window is the main interface for defining and editing class definitions. It is the same window on both platforms, with minor UI variations for Plant 3D hierarchy features.

📋 Step-by-Step Workflow

  1. Select a class from the Class dropdown (or type to search). Clicking an object on the P&ID automatically selects its class.

  2. Add included classes using the multi-select Included Classes dropdown. Manually included classes appear red, regex-included classes appear orange.

  3. Set the Behaviour to one of the primary types (Control, Instrument, Fluid Source, Off-Page Connector, Block Valve, Excluded) or an AutoRun type (Auto-Group, Auto-Explode, Area Marker).

  4. Set Fluid Behaviours using the multi-select Fluid dropdown. Select all applicable fluid interaction modes.

  5. Configure TAG Localisation in the Acquisition Source section below:

    • Add segments to define how the TAG is built (content sources: manually, block property, advanced block property, regex, special properties)

    • Use the Select button to automatically configure a segment by clicking on TAG text/blocks in the P&ID

    • Add Only where property filters for extra precision

  6. Configure TAG Localisation options (via the + button, top-right): Maximum Priority Chain, Maximum Mandatory Chain, Maximum Distance, Distance Calculation Method, Acquisition Layers, Stop at First Match.

  7. Configure Type-Specific Properties that appear based on the selected behaviour:

    • For Control: Control Type (Valve, Tank, Pump, Source, Agitator, Heat Exchanger, Check Valve, Other)

    • For Instrument: Phenomenon Acquisition (how to identify the measurement type), InstrumentType

    • For Fluid Source: Fluid type (the substance the source generates)

    • For Off-Page Connector: Bind Build (how to match pairs), Bind Method (Match, Point, or One-Way)

    • For Area Marker: Area Build, Area Method, Area Margins, Area Propagate

  8. Use the [+] button next to any property to add new custom properties to the class schema.

  9. Clear cache when you make changes — the class cache button clears the current class, and the all-cache button forces a complete re-read.


📍 TAG Localisation — Finding TAGs

TAG Localisation controls how AseptSoft finds the TAG for each classified object. The primary configuration is the TAG segments (what the TAG looks like), supplemented by localisation options (where and how to search).

TAG Segments

Each TAG is built from one or more segments. The order of segments defines the TAG structure. For each segment, select a content source:

Content Source

Description

Manually write text

A fixed value typed by you — the same for every object of this class. Common for separators like hyphens.

Block property acquisition

Reads a property (attribute) from inside the classified block itself. Common for instruments with internal TAG properties.

Advanced block property acquisition

Reads a property from a nearby block (e.g., a TAG block near a valve). Specify the block type ("In blocks of type") and the property name ("Under property").

Regex text retrieval

Searches for nearby text matching a regex pattern. Use when TAGs are plain text, not block attributes.

Special properties

Computed values: PID name, Area designation, Layer name, or Block name. Use tokens like $$area(g)$$ for area references.

TAG Localisation Options

These options refine where AseptSoft searches for TAGs. Access them via the + button in the top-right corner of the Classification Window.

Option

Type

Description

Maximum Priority Chain

Number

Maximum chained objects between object and TAG for priority. Connected TAGs within this distance take priority over closer but unconnected TAGs.

Maximum Mandatory Chain

Number

Hard limit on chain distance. If no TAG is found within this many chained links, the object gets no TAG.

Maximum Distance

Number

Maximum spatial distance (drawing units) to search for a TAG.

Distance Calculation Method

Selection

"Centre" (centre to centre) or "Closest" (nearest edge to nearest edge).

Acquisition Layers

Text

Comma-separated AutoCAD layer names to restrict the TAG search.

Stop at First Match

Boolean

Follow the pipe line and stop at the first matching TAG. Commonly used for Off-Page Connectors.

Regex Ban

Text

Regular expression — matching text entities are excluded from TAG candidates.

Auto-TAG Generation

When no TAG is found, AseptSoft generates a default TAG. Configure this in the Default value section:

  • Fixed: A static default value

  • Autoincremented: A prefix + auto-incrementing number (e.g., R00100, R00101, R00102...)

  • Minimum digits: Zero-padded digit count

  • Must be higher than all existing tags: Ensures unique numbering


🔗 Off-Page Connector Pairing

Off-Page Connectors work in pairs — one on each PID. The Bind Method determines how AseptSoft matches pairs:

Method

Description

Match the exact value with the pair

Both connectors must have the exact same bind value in their Acquisition Source

Point to the exact TAG of the pair, and the pair points to the exact TAG of this

Bidirectional: each connector's bind value equals the other connector's TAG

One way pointing to the exact TAG of the pair

Unidirectional: one connector's bind value matches the other's TAG


🧮 Advanced Token Resolution

For complex classification scenarios, AseptSoft uses a sophisticated token resolution engine:

Token Matching Process

When AseptSoft reads a PID, it:

  1. Enumerates all block references and all text entities in the drawing

  2. Builds a spatial index of text entities

  3. For each classified block reference, evaluates all TAG segment patterns:

    • Finds candidate text entities on the correct layers, within the max distance

    • Applies the distance evaluation method (Centre or Closest)

    • Uses the Hungarian algorithm to optimally assign text entities to segments (when multiple blocks compete for the same text)

    • Applies chain distance constraints for sequential segment matches

    • Applies regex ban filters to exclude false matches

  4. Stores the resolved values as instance-level properties


📏 Property Suffixes Reference

Each property scope (Tag, Phenomenon, Fluid, etc.) can have the following configuration suffixes:

Suffix

Type

Description

Build

Segment pattern

The segment configuration describing how to find this property's value

Layers

Text

Comma-separated AutoCAD layer names to search for text entities

Distance

Number

Maximum search radius from the block reference

Distance Method

Selection

"Centre" or "Closest"

Chain

Number

Maximum priority chain distance for connected TAG matches

Chain (mandatory)

Number

Mandatory chain distance — must be matched to validate the primary match

One Match

Boolean

Stop after the first match (don't search further)

Regex Ban

Text

Regular expression pattern — matching text entities are excluded

Control Valve Regex

Text

Regular expression to identify control valves among matched instances

🏗️ Area-Specific Suffixes

Suffix

Type

Description

Method

Selection

"Affects the entire PID" or "Affects only a part of the PID"

Margins

Text

Physical margin around the area boundary

Propagate

Boolean

Whether the area designation propagates to connected components


🎨 Color Inheritance

When AseptSoft colors components, it determines the base color using one of these inheritance modes:

Color Inheritance

Description

Inherit from layer

The component uses the color assigned to its AutoCAD layer

Inherit from block

The component uses the color defined in the block definition

Use own color

The component uses its own explicitly assigned color


📁 Class Grouping

Classes can be organized into groups for easier management. When you include multiple classes in the Included Classes dropdown, AseptSoft automatically creates a group. Groups provide:

  • A combined classification rule shared by all included classes

  • Visual organization: manually included classes appear red, regex-included classes appear orange

  • Manageable through the Class Grouping window (accessible from the Class Properties dropdown on the ribbon)

A class can only belong to one group at a time. When you untick a class, it is released from the group and becomes available for other groups.


🔧 FCE (Final Control Element) Properties

For Control and Instrument classes, additional FCE scopes can be configured to extract actuator and feedback data:

FCE Scope

Description

Actuator Type

Type of actuator (pneumatic, electric, hydraulic)

Fail Position

Fail-safe position (open, closed, last)

Output Signal Type

Control signal type (4-20mA, digital, etc.)

Feedback Type

Feedback mechanism type

These scopes are created on demand via the [+] button in the Classification Window — they do not appear by default and only activate when explicitly configured for a class.


💊 Practical Examples

Example 1: Classifying a Simple Valve (Single-Segment TAG)

For valves where the TAG follows a pattern like "PAV15" (letters + number):

  1. Open the Classification Window, select the valve's block definition

  2. Set Behaviour to Control, Control Type to Valve

  3. Add one TAG segment with Regex text retrieval: PAV\d{2}

  4. AseptSoft searches nearby text matching this pattern

Example 2: Classifying a Valve with Multi-Segment TAG

For valves where the TAG is in a separate block (e.g., "XM-4091"):

  1. Select the valve class, set Behaviour to Control, Control Type to Valve

  2. Segment 1: Click Select, click on "XM" in the P&ID → configures Advanced block property acquisition: TAG → SEG1

  3. Segment 2: Set to Manually write text: -

  4. Segment 3: Click Select, click on "4091" → configures Advanced block property acquisition: TAG → SEG3

Example 3: Classifying a Pressure Instrument

  1. Select block definition, set Behaviour to Instrument

  2. TAG Segment 1: Block property acquisition → property "PHE" (contains "PS")

  3. TAG Segment 2: Manually write text-

  4. TAG Segment 3: Block property acquisition → property "NUM" (contains "301")

  5. Phenomenon Acquisition: Block property acquisition → property "PHE" (identifies instrument type as Pressure)

Example 4: Classifying an Off-Page Connector

  1. Select the off-page connector class, set Behaviour to Off-Page Connector

  2. Configure TAG segments (use Select or manual setup)

  3. Add TAG Localisation: Stop at First Match + Maximum Mandatory Chain (e.g., 10)

  4. Set the TAG text block's classification to Very Reactive so it connects to the pipe line

  5. Set Bind Method to Match (or Point/One-Way depending on your conventions)