AseptSoft Core Documentation
Breadcrumbs

Fluidstream Mapping Strategies

Before a fluidstream simulation can propagate fluid through a P&ID, AseptSoft must first build the connectivity graph — determining which entities are connected to which. This page describes every mapping strategy that AseptSoft uses to discover connections between pipes, fittings, instruments, and other components.

Each mapper runs independently and contributes edges to the connectivity graph. The mappers execute in sequence, and later mappers can see (and build upon) connections established by earlier ones. Together, they handle the full range of geometric situations found in real-world P&ID drawings.

Note: All mappers described below are shared between AutoCAD Standard and AutoCAD Plant 3D, except the final one — Inline Assets on Line — which is exclusive to Plant 3D.


💊 Pharma Example: How Mapping Detects a WFI Spray Ball Connection

Consider a pharmaceutical WFI (Water for Injection) distribution loop feeding spray balls inside a CIP vessel. On the P&ID, a spray ball symbol is placed as a clamp-style block sitting directly on the WFI supply line. Here is how the mapping strategies work together to detect this connection:

  1. Endpoint Proximity Mapping first detects that the WFI supply pipe endpoints connect to the distribution loop tee

  2. Sticky Block References then detects that the spray ball clamp symbol's connection points touch the WFI branch line running into the vessel

  3. Line Gap Bridging bridges any visual gaps in the branch pipe where instrument tap points create small breaks in the line

The result: a complete fluid path from the WFI source, through the distribution loop, down the branch line, and into the spray ball — all detected automatically from your drawing geometry. When you run the fluidstream simulation, the entire path lights up in the WFI fluid color, confirming coverage.


📋 Overview of All Mapping Strategies

#

Strategy

What It Detects

Platform

1

📍 Endpoint Proximity Mapping

Endpoint-to-entity proximity

Both

2

↔️ Parallel Block-to-Line Mapping

Internal block lines parallel and aligned with free lines

Both

3

📎 Overlapping Clamp Lines

Overlapping line segments between Clamp blocks

Both

4

📌 Sticky Block References (Clamp)

Clamp connection points touching nearby entities

Both

5

⚡ Highly Reactive Block References

Padded bounding-box overlap for specially marked blocks

Both

6

🔗 Symbol Attachment Points

Symbol Style attachment points defining explicit connection locations

Both

7

🔲 Line Gap Bridging

Co-linear pipe segments separated by visual gaps

Both

8

🌀 Arc Connectivity

Arc entities aligned on the same axis

Both

9

📦 AutoCAD Group Connectivity

AutoCAD named Group connectivity

Both

10

〰️ Parallel Line Pairing

Parallel free lines forming a rectangular pipe corridor

Both

11

🏭 Inline Assets on Line (Plant 3D only)

Plant 3D assets sitting on a PnP Line Segment

Plant 3D only


📍 1. Endpoint Proximity Mapping

Purpose: The most fundamental mapper. It connects line/polyline/arc/spline endpoints to any nearby entity within a distance tolerance.

How It Works

Imagine every pipe line (Line, Arc, Polyline, or Spline) has two endpoints — a start and an end. For each endpoint, AseptSoft draws an imaginary circle of radius equal to the Tolerance Distance around that point. Any entity whose geometry falls within that circle is considered a neighbour and a connection is established.

The mapper uses a spatial index for performance — only entities within the bounding envelope of the tolerance circle are checked. For each candidate, a precise geometric test determines the closest point on the candidate entity to the pipe endpoint.

Snap-to-Midpoint-or-Ends

In addition to the main tolerance, there is an Attachment Point Snapping tolerance. When a pipe endpoint falls within this smaller snapping distance of another entity's start, midpoint, or end, the connection point is "snapped" to that exact geometric feature. This prevents small drawing imprecisions from creating incorrect graph topologies.

What Gets Connected

  • Pipe endpoint to pipe endpoint (two lines meeting at a corner)

  • Pipe endpoint to block reference (a line ending at a valve symbol)

  • Pipe endpoint to any curve entity within range

Special Behavior with Gap and Pipe Crossing Blocks

If the nearby entity is a Gap or Pipe Crossing Break block (as determined by its classification), the pipe endpoint remains marked as "open-ended" even though a connection is made. This allows subsequent mappers (like the Line Gap Bridging) to properly handle the visual gap.

Configurable Tolerances

  • Tolerance Distance — The radius of the search circle around each endpoint

  • Attachment Point Snapping — The smaller snap radius for precise alignment


↔️ 2. Parallel Block-to-Line Mapping

Purpose: Connects a line inside a block reference (e.g., a pipe stub drawn inside a valve symbol) to a free line (an actual pipe segment) when the two are parallel, equal in length, and center-aligned.

How It Works

Many P&ID symbols contain internal lines that represent the pipe passing through the component. When these internal lines are parallel to and aligned with an actual pipe line in the drawing, it indicates the pipe "enters" the symbol from that side.

The mapper:

  1. For each block reference in the graph, extracts all internal lines (transformed to world coordinates)

  2. If the block has Half-Clamp style entities defined, only those specific internal lines participate

  3. For each internal line, searches the spatial index for nearby free lines

  4. Checks if lines overlap (share a common segment) — if so, they connect immediately

  5. Otherwise, checks if lines are parallel (within angle tolerance), equal in length (within difference tolerance), and center-aligned

  6. Verifies no other objects lie in between (using a length-to-distance ratio check)

Three Connection Modes

This mapper supports three levels of parallelism checking, configured per-PID:

Setting

Friendly Name

Behavior

Free lines only

Free lines only

Only checks block internal lines against free pipe lines

Free lines and sticky block references

Free lines and sticky block references

Also checks block-to-block parallel lines (where at least one is a Clamp)

Free lines and any block references

Free lines and any block references

Checks all block-to-block parallel lines

Configurable Tolerances

  • Tolerance Distance — How close endpoints need to be to consider alignment

  • Tolerance Angle — Maximum angular deviation from perfect parallelism (in degrees)

  • Parallel Lines Difference — Maximum allowed difference in line lengths

  • Parallel Lines Distance Ratio — Minimum ratio of line length to inter-line distance (prevents connecting distant short lines)

  • Buffer for Parallel Lines — Spatial search buffer multiplier


📎 3. Overlapping Clamp Lines

Purpose: Connects two Clamp-classified blocks when their internal line segments physically overlap in world space.

How It Works

Some P&ID drawing standards use symbols whose internal lines overlap with the pipe or with adjacent symbols. This is common with "clamp" style connections — fittings that sit directly on the pipe with overlapping geometry.

The mapper:

  1. Identifies all pairs of block references whose bounding boxes intersect

  2. Filters to pairs where at least one block is classified as a Clamp (and the other does not refuse clamp connections)

  3. For each pair, builds a spatial index of internal lines per block

  4. Tests each line from Block A against nearby lines from Block B using 2D line segment overlap detection

  5. If any pair of internal lines shares a common overlapping segment, the two blocks are connected

No Tolerance Parameters

This mapper uses only the global geometric tolerance for overlap detection — it either overlaps or it does not. No user-configurable tolerances apply.


📌 4. Sticky Block References (Clamp)

Purpose: Connects Clamp blocks to any entity whose geometry touches their connection points — the vertices of special "Clamp" sub-entities defined in the Symbol Style.

How It Works

Certain P&ID symbols are designed to "stick" to whatever pipe or entity passes near their connection points. These connection points are defined either through:

  • Symbol Style Clamp entities — Specific sub-entities in the block definition marked as connection interfaces

  • Line endpoints — If no Clamp entities are defined, the mapper falls back to the start/end points of all internal lines

The mapper:

  1. Enumerates all block references classified as Clamp or Clamp Refuser

  2. For each Clamp block, computes its connection points in world coordinates

  3. Grows the block's bounding box by the spatial search buffer to find nearby candidate entities

  4. For each candidate entity near a connection point, performs a precise point-on-entity test with the tolerance distance

  5. If the point lies on (or very near) the candidate, a connection is established at that exact location

  6. Clamp-Refuser blocks are excluded from connecting to Clamp blocks (mutual rejection)

Configurable Tolerances

  • Tolerance Distance — How close a connection point must be to an entity's geometry

  • Attachment Point Snapping — Snap to exact midpoints/endpoints when within this smaller tolerance


⚡ 5. Highly Reactive Block References

Purpose: Connects blocks classified as Highly Reactive to any entity whose bounding box overlaps the block's padded bounding box. This is the most aggressive connection strategy.

How It Works

Some components (like tank nozzles or large fittings) need to connect to any pipe that merely passes near them, even without precise geometric contact. These components are classified with the Highly Reactive fluid mode, which gives them an expanded "catch zone."

The mapper:

  1. Scans all block references for those classified as Highly Reactive (either via classification or via Symbol Style reactive entities)

  2. For blocks with Symbol Style reactive entities, each reactive sub-entity gets its own padded bounding box, allowing precise control over which part of a complex symbol is reactive

  3. For legacy class-level definitions, the entire block's bounding box is padded

  4. The padding distance is configurable per-class as the Reactive Distance property

  5. Any entity whose bounding box falls within the padded zone is connected — unless it is classified as Immune to Highly Reactive

  6. To prevent false positives, entities that fully encapsulate the reactive block (i.e., the reactive block is completely inside the candidate) are excluded

Immunity

Blocks classified with the Immune to Highly Reactive fluid mode are immune to being captured by Highly Reactive blocks. This prevents unwanted connections between overlapping large symbols.


🔗 6. Symbol Attachment Points

Purpose: Creates explicit connection endpoints at Attachment Point locations defined in a symbol's Internal Fluid Map (from the Symbol Editor).

How It Works

The Symbol Editor allows users to define an Internal Fluid Map — a graph of nodes and edges inside a symbol. Among these nodes, Attachment Point nodes mark the exact locations where the symbol should connect to external pipes.

The mapper:

  1. For each block reference, looks up its Symbol Style via the style lookup table

  2. If the style defines an Internal Fluid Map with vertices, it processes each Attachment Point node

  3. Each Attachment Point's location is transformed from style-space to block-definition space to world coordinates using the symbol instance transform

  4. These transformed points are registered as connection endpoints in the global graph

  5. Conversely, Attachment Points that fall within a No-Connect Area (also defined in the Symbol Style) are registered as disconnection points, explicitly preventing connections at those locations

Why This Matters

Without this mapper, complex symbols like Block Valves (which contain multiple control modules connected by an internal flow graph) would have no way to define where external pipes should attach. The Symbol Editor's Attachment Points provide this precise control.

No Tolerance Parameters

This mapper uses the symbol's exact geometric definitions — no user-configurable tolerances apply.


🔲 7. Line Gap Bridging

Purpose: Reconnects co-linear pipe segments that are visually separated by a gap, as long as no "non-touching" block lies in the gap.

How It Works

In many P&ID standards, a single logical pipe is drawn as multiple line segments with small visual gaps between them. These gaps might exist for clarity (to show instrument tap points) or due to drawing conventions. The Line Gap Bridging mapper bridges these gaps.

However, if a Non-Touching block (e.g., an instrument that taps into the pipe without touching it) sits within a gap, the pipe segments on either side connect to that block instead of bridging the gap directly.

The mapper:

  1. Groups all free lines and polylines by axis alignment — horizontal lines grouped by their Y-coordinate, vertical lines by their X-coordinate (within the angle tolerance)

  2. Within each group, sorts segments by position along the perpendicular axis

  3. Walks through consecutive segments, checking if the gap between them is small enough:

    • Maximum absolute gap length — The gap must be shorter than this value

    • Maximum gap as ratio — The gap must be shorter than a fraction of the longer segment's length

  4. Checks whether any Non-Touching block sits within the gap zone

  5. Also handles Pipe Crossing Break blocks — these create an X-shaped crossing where two pipes visually intersect but do not actually connect

Pipe Crossing Breaks

A Pipe Crossing Break represents two pipes crossing over each other (one typically shown with a small gap or bump). The mapper:

  • Detects when a classified Pipe Crossing Break block sits at the intersection of co-linear line groups

  • Connects each through-pair: Segment A to Crossing to Segment B on one axis, and Segment C to Crossing to Segment D on the perpendicular axis

  • Does not connect A to C or B to D (those would be incorrect cross-connections)

Configurable Tolerances

  • Tolerance Angle — Maximum deviation from perfect horizontal/vertical alignment

  • Tolerance Distance — Proximity threshold for grouping co-linear segments

  • Max Absolute Gap Length — Maximum physical gap distance

  • Max Gap Ratio — Maximum gap as a multiple of the longer side line's length


🌀 8. Arc Connectivity

Purpose: Connects arc entities that share the same axis alignment, bridging gaps between consecutive arcs in a curved pipe run.

How It Works

Some P&ID drawings use arc entities to represent curved pipe segments (bends, elbows, or rounded corners). When multiple arcs share the same center axis, they form a continuous curved path.

The mapper:

  1. Groups arc entities by orientation — vertical arcs grouped by their X-coordinate, horizontal arcs grouped by their Y-coordinate

  2. Within each group, sorts arcs by their position along the perpendicular axis

  3. For each consecutive pair of arcs, checks if the end of one arc and the start of the next arc are both "open" (not already connected to something else)

  4. If both ends are open, bridges the gap by connecting them

Configurable Tolerances

  • Tolerance Distance — How close arc coordinates must be to be grouped together

  • Tolerance Angle — Maximum angular deviation from perfect axis alignment


📦 9. AutoCAD Group Connectivity

Purpose: Connects all entities that belong to the same AutoCAD named Group.

How It Works

AutoCAD's named Groups allow users to logically associate entities. When entities are placed in the same Group, AseptSoft treats them as connected regardless of their geometric positions. This is useful for:

  • Connecting components that are drawn far apart but logically belong to the same flow path

  • Forcing connections that no geometric mapper can detect

  • Overriding the default connectivity for special drawing conventions

The mapper:

  1. Reads the AutoCAD Group dictionary from the drawing database

  2. For each named Group, retrieves all entity IDs

  3. If the first entity in the Group exists in the connectivity graph, connects all other Group members to it

No Tolerance Parameters

This is a purely logical mapper — geometry is irrelevant. No tolerances apply.


〰️ 10. Parallel Line Pairing

Purpose: Connects two parallel free lines (not inside blocks) that face each other and form a rectangular corridor, typically representing heat exchangers, double-wall pipes, or other paired-line conventions.

How It Works

Some P&ID conventions draw certain equipment using two parallel lines.

The mapper:

  1. For each free line (Line or 2-vertex Polyline) and each internal block line, searches the spatial index for nearby parallel lines

  2. Checks if the candidate line is parallel (within angle tolerance), equal in length (within difference tolerance), and center-aligned with the source line

  3. Verifies that no unrelated objects lie in the rectangular zone between the two parallel lines (the "corridor" must be clean)

  4. Critically, verifies that perpendicular lines or curves connect to both parallel lines — this distinguishes a genuine paired-pipe corridor from two unrelated pipes that happen to be parallel

  5. Lines connected by this mapper are excluded from the Line Gap Bridging mapper to prevent double-counting

Why Perpendicular Lines Are Required

The perpendicular-line check is essential to avoid false positives. Without it, any two nearby parallel pipes (which are extremely common in P&IDs) would be incorrectly connected. The perpendicular connectors prove that the two lines form an intentional rectangular structure.

Configurable Tolerances

  • Tolerance Distance — Proximity for spatial searches

  • Tolerance Angle — Maximum deviation from parallelism and perpendicularity

  • Parallel Lines Difference — Maximum allowed difference in line lengths

  • Parallel Lines Distance Ratio — Minimum ratio of line length to inter-line gap

  • Buffer for Parallel Lines — Spatial search buffer multiplier


🏭 11. Inline Assets on Line (Plant 3D only)

Purpose: Connects Plant 3D inline assets (valves, instruments) to the PnP Line Segments they sit on. This mapper is mandatory in Plant 3D and does not exist in AutoCAD Standard.

How It Works

In AutoCAD Plant 3D, P&ID components (called "assets") are placed directly onto PnP Line Segments (the Plant 3D pipe objects). The Plant 3D data model maintains an explicit parent-child relationship between an asset and its host line. This mapper leverages that native relationship instead of geometric proximity.

The mapper:

  1. Queries the Plant 3D data model for all Line Segments in the drawing

  2. For each Line Segment, retrieves the list of assets placed on it

  3. Creates connections between the Line Segment and each of its assets

  4. Also connects consecutive assets on the same line to each other (forming a chain along the pipe)

Why This Is Mandatory for Plant 3D

In Plant 3D drawings, assets may not have clear geometric endpoints touching the line — they are placed "on" the line via the PnP data model rather than by precise geometric snapping. Without this mapper, many Plant 3D components would appear disconnected from their host pipes, even though the Plant 3D user clearly placed them on the pipe.

No Tolerance Parameters

This mapper uses the Plant 3D data model relationships directly — no geometric tolerances are needed.


🔄 Mapper Execution Order and Interactions

The mappers execute in the order listed above (1 through 11). Some important interactions:

  • Endpoint Proximity Mapping runs first and establishes the baseline connectivity. All subsequent mappers build upon and refine this baseline.

  • Line Gap Bridging respects the "open end" markers set by Endpoint Proximity Mapping — it only bridges gaps between endpoints that remain unconnected.

  • Parallel Line Pairing excludes connected lines from being processed by Line Gap Bridging, preventing double-counting.

  • Symbol Attachment Points can disconnect points (via No-Connect Areas), overriding connections established by earlier mappers.

  • Inline Assets on Line (Plant 3D) runs as a mandatory mapper that always executes, complementing the optional mappers.


⚙️ Configuring Mappers

Enabling/Disabling Mappers

Users can select which mappers are active for each PID through the Mapping Settings interface. The optional mappers (1-10) can be individually enabled or disabled. The mandatory mapper (11, Plant 3D only) always runs.

Tolerance Settings

All tolerances are configurable per-PID through the Mapping Settings panel. The default values work well for most standard P&ID drawings, but may need adjustment for:

  • Drawings with tight spacing — Reduce tolerances to prevent false connections

  • Drawings with loose geometry — Increase tolerances to catch intended connections

  • Non-standard scales — Adjust the absolute distance values proportionally

📏 Summary of All Tolerances

Tolerance

Used By

Description

Tolerance Distance

Endpoint Proximity, Parallel Block-to-Line, Sticky Block References, Line Gap Bridging, Parallel Line Pairing

Primary proximity threshold for endpoint matching

Attachment Point Snapping

Endpoint Proximity, Sticky Block References

Smaller snap radius for precise alignment to endpoints/midpoints

Tolerance Angle

Parallel Block-to-Line, Line Gap Bridging, Arc Connectivity, Parallel Line Pairing

Maximum angular deviation from parallelism/perpendicularity

Parallel Lines Difference

Parallel Block-to-Line, Parallel Line Pairing

Maximum allowed difference in parallel line lengths

Parallel Lines Distance Ratio

Parallel Block-to-Line, Parallel Line Pairing

Minimum length-to-gap ratio for parallel connections

Buffer for Parallel Lines

Parallel Block-to-Line, Parallel Line Pairing

Spatial search buffer multiplier for parallel line detection

Max Absolute Gap Length

Line Gap Bridging

Maximum physical gap distance for line breaking

Max Gap Ratio

Line Gap Bridging

Maximum gap as a fraction of the longer side segment