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 |
Measuring devices: pressure, temperature, flow, level transmitters. Static elements without states, used for GRAFCET conditions. Have a phenomenon type and instrument type. |
|
|
Fluid 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 |
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 |
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 |
🌊 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:
-
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.
-
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.
-
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:
-
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.
-
Environment database: All class definitions are stored in the environment database (.aseptenv file). The environment is loaded per-PID.
-
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.
-
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
-
Select a class from the Class dropdown (or type to search). Clicking an object on the P&ID automatically selects its class.
-
Add included classes using the multi-select Included Classes dropdown. Manually included classes appear red, regex-included classes appear orange.
-
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).
-
Set Fluid Behaviours using the multi-select Fluid dropdown. Select all applicable fluid interaction modes.
-
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
-
-
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.
-
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
-
-
Use the [+] button next to any property to add new custom properties to the class schema.
-
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 |
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:
-
Enumerates all block references and all text entities in the drawing
-
Builds a spatial index of text entities
-
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
-
-
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):
-
Open the Classification Window, select the valve's block definition
-
Set Behaviour to Control, Control Type to Valve
-
Add one TAG segment with Regex text retrieval:
PAV\d{2} -
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"):
-
Select the valve class, set Behaviour to Control, Control Type to Valve
-
Segment 1: Click Select, click on "XM" in the P&ID → configures Advanced block property acquisition: TAG → SEG1
-
Segment 2: Set to Manually write text:
- -
Segment 3: Click Select, click on "4091" → configures Advanced block property acquisition: TAG → SEG3
Example 3: Classifying a Pressure Instrument
-
Select block definition, set Behaviour to Instrument
-
TAG Segment 1: Block property acquisition → property "PHE" (contains "PS")
-
TAG Segment 2: Manually write text →
- -
TAG Segment 3: Block property acquisition → property "NUM" (contains "301")
-
Phenomenon Acquisition: Block property acquisition → property "PHE" (identifies instrument type as Pressure)
Example 4: Classifying an Off-Page Connector
-
Select the off-page connector class, set Behaviour to Off-Page Connector
-
Configure TAG segments (use Select or manual setup)
-
Add TAG Localisation: Stop at First Match + Maximum Mandatory Chain (e.g., 10)
-
Set the TAG text block's classification to Very Reactive so it connects to the pipe line
-
Set Bind Method to Match (or Point/One-Way depending on your conventions)
🔗 Related Pages
-
First Time Setup — Step-by-step guide with the 4 Glasses Model and hands-on workflows
-
PID Components — Component categories and the detection pipeline
-
Host Project Definition — How the project root and classification scope differ per platform
-
Engineering Item — Control-type component details
-
Instrument — Instrument component details
-
Source — Source component details
-
Off-Page Connector — Off-Page Connector pairing details
-
Block Valve — Block Valve with internal flow graph
-
Symbol Editor — Defining symbol styles, attachment points, and internal fluid maps
-
Fluidstream Mapping Strategies — How connectivity is built from classified components
-
Fluidstream Simulations — How to verify fluid connectivity