Please ensure Javascript is enabled for purposes of website accessibility
Powered by Zoomin Software. For more details please contactZoomin

Hull and Outfitting

Placing Pipes on Racks and Planes

  • Last UpdatedJan 12, 2026
  • 11 minute read

This section describes how to set up rules which control:

  • How spacing between Pipes on pipe racks and routing planes is calculated from Flanges on the Pipes.

  • How the weight of a Pipe can affect Pipe Rack Packing.

  • Shoe Height.

Flanges on Routing Planes

By default, Pipe Router will run pipes along Routing planes with the wall-to-wall Pipe Gap given on the Pipe Router Defaults window. for further information, refer to Pipe Fabrication Defaults.

If you need to run sections of Pipes which include Flanges along routing planes, you can specify that the gap value will be applied as a wall-to-flange (WF) gap, if the flanges can be staggered, or as a flange-to-flange (FF) gap, if the flanges are side-by-side on the plane. The default is wall-to-wall (WW) spacing. The spacing is controlled by the PLWW attribute of the RPLA. PLWW can be set to WW, WF or FF.

If WW or WF spacing is specified, the Pipe Router will look for rules of type FLWI and apply them. The size of flange is found using the Flange Width (FLWI) rule, which is applied to the default flange (that means, the flange which is obtained with an AVEVA PDMS SELECT) for each branch at its current bore, even if there are other flanges on the pipe rack.

  • When wall-to-flange spacing is used, the greater of the flange widths for the current pipe and the adjacent pipe will be added to the wall-to-wall spacing.

  • When flange-to-flange spacing is used, the flange width of both pipes will be added to the wall-to-wall gap.

    Notes:

    The flange width taken as 0 if:

    No flange width rule is applied.

    Either branch does not have a default flange.

    If necessary you can also specify an additional pipe-specific gap, for example, for very hot pipes.

Example of Wall-to-Flange Spacing

If a rule is used, so that the flange width is set to 1.5 x bore, then wall-to-flange spacing is calculated as follows.

The constant gap is set to 50mm. Then the centre of an insulated branch of OD 200mm, bore 100mm would be placed 435mm from the centre of an adjacent branch of OD 150mm, bore 140mm.

Example of Flange-to-Flange Spacing

If the rule sets the flange width to 1.5 x bore, then flange-to-flange spacing is calculated as follows:

½ OD Pipe A

100

Flange width Pipe A

150

Gap

50

Flange width Pipe B

210

½ OD Pipe B

75

Total

585

Packing Methods

There are two packing methods available. Pipe Router will either place a pipe on a plane as near as possible to the edge of the plane, or pack heavy pipes at the edges of racks and light ones at the centre. The packing method is an attribute of the Routing Plane. It can be set for the Travel Plane of pipe-racks and for individual planes.

If you select the By Weight method, the PLPM (Plane Packing Method) attribute of the plane will be set to WEIG, and Pipe Router will look for a weight rule, (PURP set to WEIG), to determine whether pipes are light or heavy.

You can use weight rules to determine whether pipes are packed at the top or bottom of vertical planes

Horizontal Routing Planes

In the weight-related packing method on horizontal planes, for heavy pipes Pipe Router will search inwards from both edges looking for a free slot with a large enough gap between it and any adjacent pipe. The heavy pipe will be placed closest to whichever edge a slot is found. For light pipes Router will first look in the middle of the plane or rack to see if this slot is free. Router will then search in both directions outwards looking for a free slot and use the closer to the centre. Pipes for which no rule exists will be treated as light pipes and placed in the centre of the rack or plane.

Vertical Routing Planes

The weight-related packing method can also be applied to vertical routing planes with a horizontal travel direction. If the weight-related packing method is used then, for light pipes, Pipe Router will search downwards from the top edge of the routing plane edges looking for a free slot with a large enough gap between it and any adjacent pipe. For heavy pipes Pipe Router will search upwards from the bottom edge of the plane. Pipes for which no rule exists will be treated as light pipes.

  • You cannot use weight-related packing for a vertical plane with a vertical travel direction.

Example of Weight-related Packing

If the third and sixth pipes to be packed on a rack are ‘heavy’ and the others are light, the placement of pipes will be:

Additional Gaps

Sometimes certain pipes need to be placed further than others from their neighbours. Process pipes might need to be separated more than utility pipes. Extra-hot pipes, or pipes which will need tracing where the tracing has not been represented by the insulation, should have wider gaps beside them.

The size of any additional space required can be found using an additional gap rule (Purpose ADGP) applied to the default bend or elbow of each branch at its current bore.

Example

Assume WF spacing is used, with a rule that the flange-width is 1.5 x bore and that you have a constant 50mm gap. Then the centre of an insulated branch of OD 200mm, bore 100mm, extra gap 20mm would be placed 465mm from the centre of an adjacent branch of OD 150mm, bore 140mm extra gap 10mm.

Shoe Heights

Branches routed via planes or pipe-racks can be offset by a user-specified distance from the plane to allow for shoe-heights. You specify the shoe-height using rules.

The Rules should have PURPose ‘SHOE’. Rules with purpose ‘SHOE’ do not have a logical part. Their action is a real expression giving the shoe height.

Note:
The Shoe Height is calculated from the bottom of the pipe not the insulation.

The real value (h) returned from a shoe height rule is used to specify the height, above a rack or plane, of the bottom of the insulation. However, you may wish to specify a shoe height (H) with respect to the bottom of the pipe itself, which is shown in the following diagram:

Using the shoe height rule, you can specify the shoe height as the expression:

h = H - ½ ( Insulation parameter[1])

Example

Rule with shoe height H of 200mm:

Selection:

( ALL BRANCH ALL BRANCH MEMBERS ) WITH ( NOT UNSET ( ATTRIB IPAR[1] ) )

Action:

( 200mm - 0.5 * ATTRIB IPAR[1] )

Importing Data from P&ID Files

If your P&ID system is configured so that it is capable of outputting data for use in AVEVA PDMS, you can load your P&ID file into Pipe Router. This section describes which attributes must be set before the P&ID data can be imported, and also the P&ID file format.

Note:
The P&ID file is imported by selecting Create > Add New Pipes From P&ID. The P&ID Import window is displayed.

Attribute Settings

Make sure that the following branch and component attributes are set.

Branch Attributes:

Pspec

Piping Specification to use

Ispec

Insulation Specification to use

If the head connects to another branch, set:

Href

Name of the element to which the head connects.

If the head is unconnected (Href is unset), set:

Hbor

The bore of the head.

Hcon

Connection type of the head.

Lhead

TRUE - indicates that Hpos is a valid position.

Hpos

The position of the head.

Hdir

Direction of the head.

If the tail connects to another branch, set:

Tref

The name of the element to which the tail connects.

If a tail is unconnected, set the following attributes:

Tcon

Connection type of the tail.

Tbor

The bore of the tail.

If the tail is unconnected (Tref is unset), then you do not need to set its position. If the tail’s position is fixed, set:

Ltail

TRUE - indicates that Lpos is a valid position.

Tpos

Position of tail

Tdir

The direction of the tail.

Alternatively, leave both Ltail, Tdir, and Tpos unset. In this case, Pipe Router will calculate the position based upon the components in the branch, and any component and tube rules that apply.

Component Attributes

The Spref attribute must be set.

The Neutral Description Language

A neutral description language is used to extract an intermediate ASCII file from your P&ID system and then used to recreate the P&ID in PDMS for use with Pipe Router.

Before attempting to create a neutral flat file, be aware of the following points:

  • All characters must be in upper case, except for names of elements, which can be standard PDMS format (/Pipe-1-B2).

  • All comments take up one line and have two hyphens and a space as the first three characters.

  • You can insert blank lines, if required.

  • You can use the space bar and tab to create space between fields and commands.

When a pipe or branch is created, the first command you must enter is START, which enters set-up mode. Any elements that you create while you are in set-up mode belong to the significant element specified in the last START command.

The general format of the file is as follows:

START PIPE /pipe_name...
 START BRANCH /branch_name...
   ...elements...
 END
 START BRANCH /branch_name...
   ...elements...
 END
END

Where element can be one of the following types:

 CAP

INST

REDU

TEE

VALV

VENT

OLET

For example:

-- Here is a simple example of a neutral flat file.

START PIPE /Pipe2 PSPEC /DDD BORE 200 ISPEC /A1D
START BRANCH /branch-1 HREF /PUMP1/N1 TREF /VESS1/NOZZ2 BORE 150
TEE /TEE3 80
VALV /VALVE2 GLOBE
END
END

Before performing an import, you must create the equipment that is required, which enables the pipes to set the HREF and TREF on the nozzles of the equipment. It is assumed that the nozzle names are the same in both the P&ID and PDMS.

Each file must contain one or more pipes. Each pipe must have one or more branches. It is up to the P&ID system to decide what is a branch and what is a pipe. The following figure shows a simple P&ID.

The diagram could be represented as:

  • PipeA, PipeB, PipeC and PipeD

or

  • Pipe1/B1 (A), Pipe 1/B2 (B), Pipe1/B3 (C) and Pipe1/B4 (D).

Command Syntax for P&ID Neutral Flat Files

Anything in lower case is one of the following:

value

Positive or negative real number

integer

Positive integer

logical

TRUE or FALSE

nl

New line

PIPE

>-START PIPE /pipe_name -+------------------.
                        |                  |
                        ‘-PSPEC pipe_spec -+-------------.
                                           |             |
                                           ‘- BORE value +--cont

continued >--+- ISPEC -- insulation_spec .
            |                            |
            |- TSPEC -‑ tracing_spec ----|
            |                            |
            |- PSPEC ‑- pipe_spec -------|
            |                            |
            |- INSU ‑- value ------------|
            |                            |
            |- PRES -- value ------------|
            |                            |
            |- attribute -- value -------|        .--------.
            |                            |       /         |
            ‘----------------------------+- nl -*- branch -+- END ->

where

branch

is the syntax to define a branch, see below

attribute

is any Pipe attribute

INSU value

is the thickness of the insulation.

BRANCH

>-- START BRANCH /branch_name HREF /name ‑--> continued

   continued ---+-----------------------------.
               |                             |
               |- BORE integer --------------|
               |                             |
               |- PSPEC pipe_spec -----------|
               |                             |
               |- ISPEC insulation_spec -----|
               |                             |
               |- TSPEC tracing_spec --------|
               |                             |
               |- INSU insulation thickness -|
               |                             |
               |- PRES -- value -------------|
               |                             |
               |- attribute -- value --------|
               |                             |
               |- TREF /name ----------------’
               |
               |
               | .-------<-------.
               |/                |
               *---- element ----'
               | 
               ‘---------------- nl -- END ->

where element is any of the following:

CAP

/pipe_name/cap_name

stype

REDU

/pipe_name/reducer_name 

stype 

value

TEE

/pipe_name/tee_name

stype

value

VALV

/pipe_name/valve_name 

stype

VENT

/pipe_name/vent_name 

stype

INST

/pipe_name/inst_name 

stype

OLET

/pipe_name/olet_name 

stype

Note

  • The STYPE set for each element can be omitted if a default STYP is set in the specification. For example, a Tee could be specified by either:

    TEE   /tee-1   T-Type   200

or

TEE   /tee-1   200

if the default STYP is set to T-Type. It is recommended that specifications are set up with default STYPs so if the STYP is missing in the flat file a valid component will still be selected and Pipe Router can route it.

In each case, element can optionally be followed by options from one or both of the following:

>----+--- PBOre integer ---------.
    |                           |
    |--- ANgle -----------------|
    |                           |
    |--- RAdius ----------------|
    |                           |
    |--- ABOre -----------------|
    |                           |
    |--- ISPEC insulation_spec -|
    |                           |
    |--- TSPEC tracing_spec ----|
    |                           |
    |--- LBOre -----------------|
    |                           |
    |--- PREssure --------------|
    |                           |
    |--- TEMperature -----------|
    |                           |
    ‘--- RATing ----------------+--- uval -->
   

>----+--- STYpe -----------------.
    |                           |
    |--- TYpe ------------------|
    |                           |
    |--- ACOnn -----------------|
    |                           |
    |--- LCOnn -----------------|
    |                           |
    |--- PCOnn integer ---------+--- word --.
    |                                       |
    ‘--- word ------------------+-- value --|
                                |           |
                                ‘-- word ---+--->

  • value is the new bore of the pipe for a Reducer (or enlarger), and the P3 bore for a Tee. Any change in bore along a branch can be specified by the BORE keyword. For example:

    START PIPE /P-1 BORE 200

      START BRANCH /B-1 BORE 100

        REDU /R-1 BORE 50

      END

    END

  • The bores at P1, P2 and P3 can be set individually. For example:

    TEE /T-1 PBORE1 100 PBORE2 50 PBORE3 50

  • If a component is at a different bore to the rest of the pipe, for example, a reducing valve, its PBORE0 can be set. PDMS Router will insert a reducer automatically when routing the pipe. An example of this syntax is:

    BRANCH /B-1 HREF /NOZZ-1 BORE 100

    VALV /V-1 GATE PBORE0 50

    END

  • If the PBORE0 is set on a REDU along with the BORE, it will be ignored.

  • The tracing and insulation specifications can be set with the syntax:

    element   TSPEC /tspec-1  ISPEC /ispec-1

  • Elements that appear in more than one branch will only be created once. For example: Valve /V-1 is included in branch /B-1 and /B-2. Branch /B-1 has its TREF set to /V-1 so the valve will not appear in /B-1. It is assumed /V-1 is an inline component for /B-2.

Example of a Neutral Flat File

Below is an example of a typical neutral flat file. Different style layouts are shown for each pipe.

-- File to test import from P&ID to PDMS Design
—- Pipes from Sheet X

START PIPE /PIPE1 PSPEC /A3B BORE 300 ISPEC /XXX INSU 100
START BRANCH /first_branch HREF VESSEL1/NOZZ1/ TREF PUMP1/NOZZ1
VALV /VALVE1 GATE
REDU /REDU1 200
TEE /TEE 200
TEE /Tee-2 PBORE3 200
VALV /VALVE2 GLOBE
CAP /CAP1 OPEN
END
START BRANCH /second_branch HREF VESSEL1/NOZZ2 TSPEC /t-spec
VALV /GATE_VALVE GATE
REDU /REDU2 CONC 200 ISPEC /I-spec TSPEC /T-spec
END
END

START PIPE /PIPE2 PSPE /A1D BORE 200 ISPEC /DDD INSU 50
START BRANCH /branch-1 HREF /NOZZ3 TREF PUMP1/NOZZ3 BORE 150
TEE /Tee3 TEE-TYPE PBORE3 50
END
START BRANCH /branch-2 HREF VESSEL1/NOZZ4 TREF PUMP1/NOZZ4
VALV /Valve-safety1 GLOBE
REDU /R-1-1 BORE 100
END
END

In This Topic
TitleResults for “How to create a CRG?”Also Available in