Piping Assembly Language - PDS - Reference Data

Plant Design System (PDS) Reference Data Manager (PD_Data)

PPMProductFamily
3D Design and Visualization
PPMProduct
PDS
PPMCategory
Reference Data

The Piping Assembly Language provides a set of functions to define the placement operation. You can create a PAL definition outside the PDS environment using a text editor.

PAL Keywords

The following list outlines all the keywords that can be used to create a PAL definition. Keywords followed by a number in (parentheses) such as

NPD_A (3221), NPD_B (3222), NPD_C (3223)

are used to create form gadgets for defining and placing piping assemblies. The number represents the application command number for the keyword. The key entry field number is this number minus 3000. (Therefore, the key entry field number for NPD_A is 221.)

Formbuilder Guidelines

You can customize forms for the purpose of inputting data in the creation of a piping assembly, such as a control station. You can use the gadget numbers for the corresponding input fields.

You must adhere to the following conventions when customizing form input fields for the applicable piping assembly. If not documented, any other gadgets on the form should remain consistent with those delivered by Intergraph.

All input fields should be sequenced and must have the following characteristics. The Edit Field Options setting in the Form Builder should be Change Mode.

The characteristics form in the Form Builder should have the following settings.

Notify Upon Completion - off (NOT the default)
Notify at Initial Selection - off

The forms delivered by Intergraph can be used as examples for customization. The following list the form builder data for the standard form gadgets.

Help

key:

456

gadget number:

995

button:

automatic

Form Size

key:

403

gadget number:

997

button:

automatic

Exit

key:

4001

gadget number:

998

button:

manual

Accept

key:

4002

gadget number:

999

button:

manual

Message Area A - for messages

gadget number:

251

characters:

40

lines deep:

3

edit mode:

review only

font size:

12

Message Area B - for active segment data display

gadget number:

254

characters:

40

lines deep:

3

edit mode:

review only

font size:

12

Material description display

gadget number:

150

characters:

80

lines deep:

3

edit mode:

review only

font size:

12

Description

#

This keyword is used to specify a description for the piping assembly from within the assembly language file. Place a # in the first column of any line followed by a description of as many as 100 characters.

Examples:

# Control Station

Commands

COMMAND

This keyword is used with other keywords to initiate a defined action.

Examples:

COMMAND = GET_TUTORIAL_DATA
COMMAND = UPDATE_APP
COMMAND = POINT_IN_SPACE

CONNECT

This keyword defines the active point for the next component placed in the PAL definition. The specified reference point must be defined before using this option.

Example: CONNECT TO REF_PNT_A

PLACE

This keyword defines the type of item to be placed. Refer to the PLACE Command Component keywords for a list of component/instrument types.

Example: PLACE FITTING , 6Q2C01 ,

BY

This keyword is used with the PLACE keyword to set the placement mode to be used in placing the specified component. Refer to the Connect Point keywords for a list of viable placement modes.

Example: PLACE FITTING , 6Q2C01 , BY CP1

STEM

This keyword is used with an orientation keyword to define the direction of the secondary axis. It can be used at the end of a PLACE statement.

Example: PLACE FITTING , 6Q2C01 , BY CP1 , STEM = UP

PLACE Command Components

FITTING, VALVE, FLANGE, BRANCH, PIPE, SPECIALTY, INSTRUMENT, OPTIONAL, TAP

These keywords are used with the PLACE keyword to define the type of item to be placed.

Example:

PLACE FITTING , 6Q2C01 , BY CP1
PLACE BRANCH , 90_DEG , BY CP1
PLACE PIPE TO REF_PNT_A
PLACE OPTIONAL , 6Q2C01, BY CP2

RDB_INSTRUMENT, RDB_SPECIALTY

These keywords are used to place instruments and specialty items that have been defined in the PJS using the tag number.

Example: PLACE RDB_INSTRUMENT, INSVLV1, BY CP1

Connect Point

CENTER, CP1, CP2, CP3, CP4, CP5
ACTIVE_PP
FACE_OF_FLANGE_CP1, FACE_OF_FLANGE_CP2,
FACE_OF_FLANGE_CP3

These keywords identify the connect point for an operation. They can be used with the BY keyword to indicate the means of placement.

Example: PLACE VALVE, 6Q1C38, BY CP1

INLET_ELEVATION

This keyword sets the starting elevation or point of connection.

Example:

REF_PNT_A = ACTIVE_PP
COORDINATE_1 = INLET_ELEVATION

Orientation

ACTIVE
EAST, NORTH, UP
WEST, SOUTH, DOWN

These keywords identify the orientation direction.

Example: PLACE FITTING, 6Q2C01, BY CP1, STEM = UP

No Material TakeOff

NO_MTO=1

This keyword can be used immediately before a PLACE statement to specify that the component is not reportable. The system automatically resets MTO processing after placement.

Assembly End Keywords

ASSEMBLY_END_A, ASSEMBLY_END_B

These keywords define an assembly end point as a specified coordinate value. An assembly end definition is used to define the endpoints of an assembly. This is required when the assembly is being placed into a pipe so that the pipe is broken properly and the assembly inserted (as in the case of a valve assembly: flange - valve - flange).

Example: ASSEMBLY_END_A = CP2

Reference Point Keywords

REF_PNT_A, REF_PNT_B, ... REF_PNT_T
ACTIVE_PP, NOZZLE

These keywords set reference points at specified coordinate values. You can define up to 20 points on the assembly for future reference in the PAL definition.

Example: REF_PNT_A = CP_1

Once a reference point is defined, it can be used by a following statement in the PAL definition to indicate a coordinate location (for example, CONNECT TO REF_PNT_A).

Generic End Types

NULL_GEN_TYPE, BOLTED, FEMALE, MALE

These keywords specify the generic termination type for use in conditional testing.

Number of Connect Points

NUMBER_CPS

This keyword contains the number of connect points of the component just placed. It can be used in branch placement to determine whether to use CP2 or CP3 as a reference point.

Example:

IF (NUMBER_CPS .EQ. 2.0) THEN
REF_PNT_A = CP2
ELSE
REF_PNT_A = CP3
ENDIF

Commodity Item Name

ITEM_NAME

This keyword defines an item name to be used for placement.

Example: ITEM_NAME = xxxxxxx

COMPONENT_TAG (3246)

This keyword defines the tag for the component to be placed. You can prompt for the tag or use the tutorial interface using the designated field and command numbers.

Example: COMPONENT_TAG = USER_INPUT

UORs per Model Subunit

UORS_PER_SUBUNIT

This keyword defines the number of UORs per Subunit defined in the model. It can be used to calculate tap location.

Local Coordinates and Orientation

APP_X, APP_Y, APP_Z

These keywords define the active placement point which can be used in the connect to segment and point in space routines. These keywords are initially set to the active placement point of the assembly at the start of the assembly placement.

COORDINATE_1 (3191) ... COORDINATE_12 (3203)
DIMENSION_1 - DIMENSION_20

These keywords are used to receive user input from the tutorial to define the active placement point. The Coordinate keywords identify actual points and the Dimension keywords identify distances and offsets. The Coordinate keywords are only used for elevation values, not Easting or Northing values.

Example: APP_Z = COORDINATE_1
COORDINATE_2 = INLET_ELEVATION

LOCAL_X, LOCAL_Y, LOCAL_Z

These keywords are defined as the active primary, secondary, and normal axis at the time the assembly is placed. They are automatically set internally at the start of placement and cannot be modified.

Dimension Definition

DIMENSION_1 (3141), DIMENSION_2 (3142), ... DIMENSION_20 (3160)

The Dimension keywords identify distances and offsets.

Move Specified Distance

MOVE_DISTANCE

This keyword moves a specified distance in the direction of the active primary. It is useful in placing a variable length pipe by moving out a specified distanced and calling place pipe.

Example: MOVE_DISTANCE = DIMENSION_1 PLACE PIPE TO REF_PNT_A

Load Spec Data

LOAD_SPEC_DATA

This keyword reads the spec record for the commodity item and assigns values for the following keywords:

TERM_TYPE_1, TERM_TYPE_2, ... TERM_TYPE_5
PR_RATING_1, PR_RATING_2, ... PR_RATING_5
GEN_TYPE_1, GEN_TYPE_2, ... GEN_TYPE_5

Example:

LOAD_SPEC_DATA = '6Q1C80'
IF ( GEN_TYPE_1 .EQ. BOLTED ) THEN
OPTION_RATING = PR_RATING_1
OPTION_END_PREP = TERM_TYPE_1
PLACE OPTIONAL , 6Q2C01 , BY CP2
ENDIF

Setting First and Second Size

FIRST_SIZE, SECOND_SIZE, NPD_STEP_UP, NPD_STEP_DOWN

These keywords set the active first size or second size placement parameter a step down/up in the NPD piping material class table. (The system uses the next entry in the NPD table from the active size as the first/second size for a step up or next higher size and uses the previous entry in the NPD table from the active size as the first/second size for a step down or lower size). This particular statement in PAL is used as the active size (first or second) in the placement of all the following components, until the active size is redefined. If you do not include a line size in the PAL definition, the active size at the time of placement of the piping assembly will be used.

Example: FIRST_SIZE = NPD_STEP_DOWN

Coordinates of Component Just Placed

COMPONENT_CENTER, CP_1_LOCATION, CP_2_LOCATION
COMPONENT_CENTER_X, _Y, _Z
CP_1_LOCATION_X, _Y, _Z
CP_2_LOCATION_X, _Y, _Z

These keywords define coordinate values for the component just placed.

Example: TAP_LOCATION_Y = COMPONENT_CENTER_Y + DELTA_DISTANCE * UORS_PER_SUBUNIT

Outside Diameter

PIPE_OD_CP1, PIPE_OD_CP2

These keywords contain the pipe outside diameter at each connect point for the component just placed. These values can be used to calculate a tap location.

Example: DELTA_DISTANCE = ( PIPE_OD_CP1 - PIPE_OD_CP2 ) / 4.0

FLANGE_OD_CP1, FLANGE_OD_CP2

These keywords contain the flange outside diameter at each connect point for the component just placed. These values can be used to calculate a tap location.

Tutorial Display and Acquisition

DISPLAY_TUTORIAL, DISPLAY, DISPLAY_NUMERIC

DISPLAY_TUTORIAL = 'PALCST'

PROMPT_MESSAGE = 'Keyin coordinates and valve data'

DISPLAY = prompt_message
used to display any ascii keyword.

DISPLAY_NUMERIC = npd_a
used to display any numeric keyword.

COMMAND = GET_TUTORIAL_DATA
used to get data from the user at placement via a tutorial.

GET_ASCII, GET_DECIMAL, GET_INTEGER
These keywords get data of a specified type from a user keyin.

Prompt for ASCII Input

USER_INPUT

Updating Active Place Point

Example: COMMAND = UPDATE_APP

The variables APP_X, APP_Y, and APP_Z are assigned the X, Y, and Z values of the current active placement point. This command is useful for variable distance changes in assemblies, and you need to know the new coordinates.

Point in Space

Example: COMMAND = POINT_IN_SPACE

The values of the keywords APP_X, APP_Y, and APP_Z are used to define the active placement point that is not connected to piping or a piping segment. These keywords need to be set before POINT_IN_SPACE is called.

Connect to Piping Segment

Example: CONNECT TO APP

The command syntax is the same as for connecting to a reference point except that the keywords APP_X, APP_Y, and APP_Z are used as the coordinates. These points are assumed to lie on a piping segment whereas a reference point identifies a connect point. The keywords should be set before this command is called.

Orientation of Primary and Secondary

ORIENTATION, PROMPT, ORIENT_SECONDARY, ORIENT_PRIMARY, INVERT

ORIENT_PRIMARY = LOCAL_X

This statement orients the primary axis to be the same as the primary at the beginning of the assembly placement.

ORIENT_SECONDARY = LOCAL_Y

This statement orients the secondary to be the same as the secondary at placement.

ORIENT_SECONDARY = INVERT

This statement allows the secondary to be inverted from its current position. You can also use INVERT for the primary axis.

Placement of BRANCH using Table Lookup

90_DEG, 45_DEG, VARIABLE

Example: PLACE BRANCH, 90_DEG , BY CENTER

This statement performs a table lookup on the 90 degree branch table to determine the branch component type given the current first and second size. If the branch is on a piping segment or in free space, then Placement BY CENTER should be used. If you are placing fitting to fitting, you should specify connect point placement (BY CP1).

Placement of OPTION flange

OPTION_RATING, OPTION_END_PREP

Example:
IF ( END_PREP_A .GE. 2.0 .and. END_PREP_A .LE. 199) THEN
OPTION_RATING = RATING_A
OPTION_END_PREP = END_PREP_A
PLACE OPTIONAL, 6Q2C01 , BY CP2
ENDIF

The keywords OPTION_RATING and OPTION_END_PREP values are used to determine which option to use for the specified flange.

OPTION_TBL_SUFFIX
TBL_SUFFIX_GREEN, TBL_SUFFIX_RED
END_PREP_1, END_PREP_2, ... END_PREP_5
TBL_SUFFIX_A (301), TBL_SUFFIX_B (302), ... TBL_SUFFIX_E (305)

These keywords provide the ability to select the correct optional flange, when the flange is being placed by its welded end.

Placement of Optional Components

OPTION_CODE

Examples:

OPTION_CODE = PROMPT
OPTION_CODE = 790

This keyword sets the option code for the next component placed. If the PROMPT keyword is used, the system activates the Option Code Selection tutorial at placement to enable the user to select the option code. Otherwise, the option code is hard-coded.

Placement of Variable Length Pipe

Example: PLACE PIPE TO REF_PNT_E

Logical Marks

CHECK_MARK

CHECK_MARK_1 (3161), CHECK_MARK_2 (3163), ... CHECK_MARK_20 (3180)

The check marks are logical keywords that can be accessed through the tutorial. They can be used for testing for placement of components, etc. Initially, they are all set to true.

Changing Piping Materials Class within an Assembly

ACTIVE_MATERIALS_CLASS (3205)

MATERIALS_CLASS_A (3206), MATERIALS_CLASS_B (3207), MATERIALS_CLASS_C (3208)

MATERIALS_CLASS_D (3264), MATERIALS_CLASS_E (3265), ... MATERIALS_CLASS_J (3270)

Example:

MATERIALS_CLASS_B = USER_INPUT
ACTIVE_MATERIALS_CLASS = MATERIALS_CLASS_B

The values for materials class can be:

  • obtained from the tutorial using the predefined fields

  • defined by prompt (USER_INPUT)

  • hard-coded in the PAL definition.

The values for MATERIALS_CLASS_A through _J are stored locally until a statement with ACTIVE_MATERIALS_CLASS is executed. At that time, the Materials Class in the active data is updated to the assigned value. This enables you to obtain up to three different classes from the tutorial at the start which can be used as needed in the definition.

Component Attributes

NPD_A (3221), NPD_B (3222), NPD_C (3223)
NPD_D (3284), NPD_E (3285), ... NPD_J (3290)

These keywords store nominal piping diameter values.

END_PREP_A (3231), END_PREP_B (3232)

These keywords store end preparation values.

RATING_A (3236), RATING_B (3237)

These keywords store pressure rating values.

SCHEDULE_A (3241), SCHEDULE_B (3242)

These keywords store schedule/thickness values.

Setting Bend Angle

ACTIVE_BEND_ANGLE (3211)

BEND_ANGLE_A (3212), BEND_ANGLE_B (3213), ... BEND_ANGLE_E (3216)

Example:

BEND_ANGLE_A = PROMPT
ACTIVE_BEND_ANGLE = BEND_ANGLE_B

The values for bend angle can be:

  • obtained from the tutorial using the predefined fields

  • defined by prompt

  • hard-coded in the PAL definition

The active bend angle in the model is not set until a statement with ACTIVE_BEND_ANGLE is executed. At that time, the active bend angle is assigned the appropriate value and the next component placed uses that value. The active bend angle is set to 0 after placement.

Component Group

COMPONENT_GROUP, ON, OFF

Example: COMPONENT_GROUP = ON

This statement causes the system to search for the next available component group number. This number is assigned to the component group number attribute of each subsequent component placed until the statement COMPONENT_GROUP = OFF is executed or the assembly is completed.

Local Variables

You can use local variables to store values for use in defining a piping assembly. You can use any alphanumeric string as long as it is not reserved as a keyword.

Test Attribute Values

T12C# - Piping Segment Data
T34C# - Piping Component Data
T50C# - Pipe Data
T67C# - Instrument Component Data

You can use these keywords to test specific values of the active segment data or active component data, where # refers to the column (attribute) number for the applicable database table. The active component data is represented by the last component placed or the component to which the user is connected.

Pre-Define Attribute Values

T34C# - Piping Component Data
T50C# - Pipe Data
T67C# - Instrument Component Data

You can use these keywords to pre-define specific values for the component to be placed, where # refers to the column (attribute) number for the applicable database table. This functionality is similar to the Pre-Define Component Data option of the Place Component command.

If you pre-define a value for fabrication category, the component will be designated as having the fabrication category defined by user versus by system such that reconstructing the component will not override the user value with the value in the Reference Database.

Having the ability to pre-define the fabrication category within a control station piping assembly will enable you to automatically override the RDB specification of the fabrication category of a single field component, such as a small diameter control valve, in what would otherwise be a shop spool.

See Placing Taps in Assemblies for additional information on PAL keywords.