Sie sind auf Seite 1von 110

Plant Design System (PDS)

Piping Eden Interface

Version 2011 (V12) December 2009 DPDS3-PB-200013G


Copyright
Copyright © 1984-2011 Intergraph Corporation. All Rights Reserved.
Including software, file formats, and audiovisual displays; may be used pursuant to applicable software license agreement; contains
confidential and proprietary information of Intergraph and/or third parties which is protected by copyright law, trade secret law, and
international treaty, and may not be provided or otherwise made available without proper authorization from Intergraph Corporation.
U.S. Government Restricted Rights Legend
Use, duplication, or disclosure by the government is subject to restrictions as set forth below. For civilian agencies: This was developed at
private expense and is "restricted computer software" submitted with restricted rights in accordance with subparagraphs (a) through (d) of the
Commercial Computer Software - Restricted Rights clause at 52.227-19 of the Federal Acquisition Regulations ("FAR") and its successors,
and is unpublished and all rights are reserved under the copyright laws of the United States. For units of the Department of Defense ("DoD"):
This is "commercial computer software" as defined at DFARS 252.227-7014 and the rights of the Government are as specified at DFARS
227.7202-3.
Unpublished - rights reserved under the copyright laws of the United States.
Intergraph Corporation
P.O. Box 240000
Huntsville, AL 35813
Street address: 170 Graphics Drive, Madison, AL 35758
Terms of Use
Use of this software product is subject to the End User License Agreement and Limited Product Warranty ("EULA") delivered with this
software product unless the licensee has a valid signed license for this software product with Intergraph Corporation. If the licensee has a valid
signed license for this software product with Intergraph Corporation, the valid signed license shall take precedence and govern the use of this
software product. Subject to the terms contained within the applicable license agreement, Intergraph Corporation gives licensee permission to
print a reasonable number of copies of the documentation as defined in the applicable license agreement and delivered with the software
product for licensee's internal, non-commercial use. The documentation may not be printed for resale or redistribution.
Warranties and Liabilities
All warranties given by Intergraph Corporation about equipment or software are set forth in the EULA provided with the software or
applicable license for the software product signed by Intergraph Corporation, and nothing stated in, or implied by, this document or its
contents shall be considered or deemed a modification or amendment of such warranties. Intergraph believes the information in this
publication is accurate as of its publication date.
The information and the software discussed in this document are subject to change without notice and are subject to applicable technical
product descriptions. Intergraph Corporation is not responsible for any error that may appear in this document.
The software discussed in this document is furnished under a license and may be used or copied only in accordance with the terms of this
license. No responsibility is assumed by Intergraph for the use or reliability of software on equipment that is not supplied by Intergraph or its
affiliated companies. THE USER OF THE SOFTWARE IS EXPECTED TO MAKE THE FINAL EVALUATION AS TO THE
USEFULNESS OF THE SOFTWARE IN HIS OWN ENVIRONMENT.
Intergraph is not responsible for the accuracy of delivered data including, but not limited to, catalog, reference and symbol data. Users should
verify for themselves that the data is accurate and suitable for their project work.
Trademarks
Intergraph, the Intergraph logo, PDS, SmartPlant, FrameWorks, I-Convert, I-Export, I-Sketch, SmartMarine, IntelliShip, INtools, ISOGEN,
MARIAN, SmartSketch, SPOOLGEN, SupportManager, and SupportModeler are trademarks or registered trademarks of Intergraph
Corporation or its subsidiaries in the United States and other countries. Microsoft and Windows are registered trademarks of Microsoft
Corporation. Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of Oracle Corporation and/or its affiliates. MicroStation is
a registered trademark of Bentley Systems Inc, all rights reserved. Other brands and product names are trademarks of their respective owners.
Contents
Preface PDS ................................................................................................................................................. v

The Eden Basics .......................................................................................................................................... 1


Graphic Commodity Data ...................................................................................................................... 2
Graphic Commodity Library .................................................................................................................. 2
Physical Data Tables .............................................................................................................................. 5
Data Retrieval from the Physical Data Library ............................................................................... 6
Example of Physical Data Look-Up ................................................................................................ 6

Component Placement Example ............................................................................................................... 9


Eden Modules ........................................................................................................................................ 9
Symbol Processors ......................................................................................................................... 11
Sub-Symbol Processor ................................................................................................................... 12
Physical Data Definitions .............................................................................................................. 13
Parametric Shape Definitions ........................................................................................................ 19
Forms Interface .................................................................................................................................... 22
Notes for Graphic Commodity Data .................................................................................................... 22
Connect Point Data ........................................................................................................................ 22
Bends and Branches....................................................................................................................... 24
Bolts, Gaskets, and Flanges ........................................................................................................... 24
Pipe, Tubing, and Hose.................................................................................................................. 25

Eden Language Structure ........................................................................................................................ 27


Beginning Statements........................................................................................................................... 27
Ending Statements ................................................................................................................................ 28
Variables .............................................................................................................................................. 28
Local Variables .............................................................................................................................. 29
Global Variables Common to Piping, Equipment, and Pipe Support Modeling ........................... 30
Piping Eden Global Variables ....................................................................................................... 31
Common Keywords ............................................................................................................................. 34
Keywords (Piping Specific)........................................................................................................... 34
Comments ............................................................................................................................................ 37
Operators .............................................................................................................................................. 37
Arithmetic Operators ..................................................................................................................... 37
Relational Operators ...................................................................................................................... 38
Logical Operators .......................................................................................................................... 39
Expressions .......................................................................................................................................... 39
Replacement Statements ................................................................................................................ 39
Call Statement................................................................................................................................ 40
Do While Statement....................................................................................................................... 40
Indexed Do Statement ................................................................................................................... 40
If - then - else Statement ................................................................................................................ 41

Plant Design System (PDS) Piping Eden Interface i


Contents

Functions .............................................................................................................................................. 41
Primitives ............................................................................................................................................. 42
Convert NPD to Subunits .............................................................................................................. 43
Define Active Orientation ............................................................................................................. 44
Draw Cone ..................................................................................................................................... 45
Draw Cylinder ............................................................................................................................... 45
Draw Eccentric Cone ..................................................................................................................... 46
Draw Projected Rectangle ............................................................................................................. 47
Draw Projected Triangle ................................................................................................................ 47
Draw Semi-Ellipsoid ..................................................................................................................... 48
Draw Sphere .................................................................................................................................. 49
Draw Torus .................................................................................................................................... 50
Assign Connect Point .................................................................................................................... 50
Assign Generic Tap ....................................................................................................................... 51
Assign Tap ..................................................................................................................................... 52
Compute Perpendicular Vector...................................................................................................... 52
Define Connect Point Geometry .................................................................................................... 53
Display Tutorial ............................................................................................................................. 54
Draw Cone With Capped Ends ...................................................................................................... 54
Draw Cylinder With Capped Ends ................................................................................................ 55
Draw Eccentric Cone With Capped Ends ...................................................................................... 55
Draw Hexagon ............................................................................................................................... 56
Draw Mitered Torus ...................................................................................................................... 57
Draw Octagon ................................................................................................................................ 58
Draw Parametric Shape ................................................................................................................. 58
Draw Torus with Capped Ends ...................................................................................................... 59
Get Physical Data .......................................................................................................................... 60
Move Along Axis .......................................................................................................................... 60
Move By Distance ......................................................................................................................... 61
Move To Connect Point ................................................................................................................. 61
Place COG Location ...................................................................................................................... 62
Place Connect Point ....................................................................................................................... 62
Prompt to Orient Operator ............................................................................................................. 63
Read Table ..................................................................................................................................... 63
Rotate Orientation.......................................................................................................................... 64
Connect Point Geometry ...................................................................................................................... 64

Creating a New Piping Component......................................................................................................... 71


Reference Database Management Data................................................................................................ 73
Default Project Control Data ................................................................................................................ 77
Extracting Sample Modules ................................................................................................................. 78
Editing Modules ................................................................................................................................... 80
Compiling New Modules ..................................................................................................................... 80
Revising Modules................................................................................................................................. 81
Basic Use of Forms .............................................................................................................................. 81
Piping Specialty Components .............................................................................................................. 82

ii Plant Design System (PDS) Piping Eden Interface


Contents

Appendix: EDEN Error Messages .......................................................................................................... 97

Index ........................................................................................................................................................ 101

Plant Design System (PDS) Piping Eden Interface iii


Contents

iv Plant Design System (PDS) Piping Eden Interface


Preface PDS
This document provides command reference information and procedural instructions for the
Plant Design System (PDS) Piping Eden Interface task.

List of PDS Documentation


§ DPDS3-PB-200003 - DesignReview Integrator (PD_Review) Reference Guide
§ DPDS3-PB-200004 - Drawing Manager (PD_Draw) User's Guide
§ DPDS3-PB-200005 - EE Raceway Modeling Reference Guide
§ DPDS3-PB-200006 - Interference Checker/Manager (PD_Clash) User's Guide
§ DPDS3-PB-200010 - PDS 3D Theory User's Guide
§ DPDS3-PB-200013 - PDS EDEN Interface Reference Guide Volume I : Piping
§ DPDS3-PB-200015 - PDS Equipment Modeling (PD_EQP) User's Guide
§ DPDS3-PB-200017 - PDS ISOGEN Reference Guide, Vol. 1
§ DPDS3-PB-200022 - PDS Piping Component Data Reference Guide
§ DPDS3-PB-200023 - PDS Project Setup Technical Reference
§ DPDS3-PB-200025 - PDS Stress Analysis Interface (PD_Stress) User's Guide
§ DPDS3-PB-200026 - Pipe Supports Modeler Reference Guide
§ DPDS3-PB-200028 - Piping Design Graphics (PD_Design) Reference Guide
§ DPDS3-PB-200030 - Project Administrator (PD_Project) Reference Guide
§ DPDS3-PB-200033 - Project Engineer HVAC (PE-HVAC) Reference Guide
§ DPDS3-PB-200034 - Reference Data Manager (PD_Data) Reference Guide
§ DPDS3-PB-200035 - Report Manager (PD_Report) User's Guide
§ DPDS3-PB-200041 - PDS EDEN Interface Reference Guide Volume 2 : Equipment
§ DPDS3-PB-200042 - PDS EDEN Interface Reference Guide Volume 3 : Pipe Supports
§ DPDS3-PE-200016 - PDS Express Project Creation Quick Start Guide
§ DPDS3-PE-200052 - PDS Ortho Draw User's Guide
§ DPDS3-PE-200029 - Piping Model Builder (PD_Model) Reference Guide
§ DPDS3-PE-200031 - Project Engineer HVAC Getting Started Guide
§ DPDS3-PE-200032 - Project Engineer HVAC Overview
§ DPDS3-PE-200045 - PDS Label Library Merger Utility
§ DPDS3-PE-200047 - PDS Reference Data Auditing Tool
§ DPDS3-PE-200048 - Pipe Supports Explorer Utility
§ DPDS3-PE-200050 - Batch Services Quick Start Guide
§ DPDS3-PE-200051 - Batch Services User's Guide

Plant Design System (PDS) Piping Eden Interface v


Preface PDS

vi Plant Design System (PDS) Piping Eden Interface


SECTION 1

The Eden Basics


Eden is a high-level symbol definition language modeled on the FORTRAN programming
language. The Eden language syntax is not case sensitive, except for module names, which are
upper case. You can write code with whatever case conventions make it easiest for you to read.
Eden allows you to design your own symbols for piping, instrumentation, specialty items, and
equipment. While you do not need a programming background to write Eden programs, any
programming experience is highly recommended. You also need to be familiar with an ASCII
text editor, such as vi, emacs, or Notepad.
Most of the symbol definition functions are built into Eden's command structure. This
high-level command structure makes it easier to share code among several symbol definitions.
For example, when designing a gate valve, the symbol definitions are used:
GATSP short pattern gate valve
GAT long pattern, bolted or male ends gate valve
GATF regular pattern, female ends, full port gate valve
GATR regular pattern, female ends, reduced port gate valve
These symbol definitions identify four specifically unique gate valves; however, each of these
valves refers to the same:
§ Primary physical data module (V1_AMS), which defines the specific dimensions and
physical properties of a gate valve.
§ Generic physical data module (VALVE_2_AMS), which defines flange thickness, gasket
separation, and outside separation.
§ Model graphic (V1).
By sharing these modules, you will not fill up valuable disk space with redundant data, which
can also increase valuable processing time.
Eden is flexible enough to allow you to design codes specific to your company's needs, yet
offers predefined subroutines, called primitives, which carry out functions often repeated within
symbol definitions.
For example, the following primitive draws a cone with a length of X units, a diameter at the
active point (first end) of Y units and a diameter at the opposite end of Z units:
Call Draw_Cone (X, Y, Z)
The output produced will look similar to the following graphic:

You can call up to five nested subroutines within a program.

Plant Design System (PDS) Piping Eden Interface 1


The Eden Basics

Graphic Commodity Data


The graphic commodity data is contained in the following object libraries:
§ Graphic Commodity Library (on page 2) --- The delivered file ~\pdshell\lib\pip_gcom.l
contains parametric definitions for the components.
§ Physical Data (Dimensions) Library (see "Physical Data Tables" on page 5) --- The
delivered file ~\rdusrdb\us_pcdim.l contains American dimension data for components.
§ Piping Job Specification Table Library --- The delivered file ~\rdusrdb\us_pjstb.l contains
specification tables referenced in the Piping Job Specification. See the Piping Job
Specification section in the Reference Data Manager Reference Guide for more information.
Refer to Reference Data Overview section in the Reference Data Manager Reference Guide for
more information.
When you select a component for placement in the model, the system:
§ Uses the active parameters (such as piping materials class and nominal diameter) to search
the Piping Job Specification (PJS) for the selected item name. If the selected item is found
in the PJS database, the system reads the PJS for the parameters required to place the
component. Included in this information is the model code (or specialty item number) for
the selected component and the names of the spec tables defined for the Piping Materials
Class.
§ Uses the model code (or specialty item number), derived from the PJS, to access the graphic
commodity library. The definitions in the graphic commodity library determine the
physical tables required to place the component and call the tables in the physical
commodity library.
§ Places the symbol graphics in the model design file and writes the nongraphic information
for the component in the database.
This section describes the graphic commodity data used in placing components in the piping
model. Refer to the Piping Design Graphics Reference Guide for a detailed description of the
actual placement process.
See Also
Notes for Graphic Commodity Data (on page 22)

Graphic Commodity Library


The Graphic Commodity Library (GCL) provides data for commodity items, engineered items,
and instruments. It is basically a catalog of component data which is accessed to:
§ Determine physical data based on user specifications (such as NPD and end preparation)
§ Assign connect point data from the Piping Job Specification
§ Define the parametric shape for the model graphics. The Graphic Commodity Library
includes data required for model creation, resymbolization for model presentation,
interference detection, and any special functions of the Piping Job Specification, piping
industry standards, or company design practices.
PDS Piping uses the Eden Parametric Language to define and place components, specialty items,
operators, and envelopes. Eden is a high level language (similar to FORTRAN) which uses

2 Plant Design System (PDS) Piping Eden Interface


The Eden Basics

information from the Piping Job Specification and model to access parametric and dimensional
data.
Eden is composed of three major modules.
1. Symbol Processors and Sub-Symbol Processors
2. Physical Data Subroutines
3. Parametric Shape Definitions
These modules are designed to carry out two functions: data definition and graphic presentation.
The data associated with these modules is delivered in the following files:
~\pdshell\lib\pip_gcom.l --- object library
~\pdshell\lib\pip_gcom.l.t --- text library
The modular approach provides for more efficient storage of information in these libraries by
enabling common information to be shared by different symbols.
The first line of each Eden module defines the type of module (such as symbol processor) and
the module name. This statement determines a two-character category code to be prefixed to the
module name in the object library. This prefix is only used by the system; it should not be
keyed in as part of the module name.

Plant Design System (PDS) Piping Eden Interface 3


The Eden Basics

The following image illustrates the Eden Module Relationships.

The entries in the library use the following prefixes to identify the type of data:
SP Symbol Processor
PD Physical Data Definition Module
UF User Function Module
MG Model Parametric Shape Definition Module
IG Interference Envelope Parametric Shape Definition Module
SS Sub-Symbol Processor Module
Each module must be given a unique name within the graphic commodity library.

4 Plant Design System (PDS) Piping Eden Interface


The Eden Basics

Physical Data Tables


The physical data tables contain the physical data (dimensions, weights, and surface area)
required for symbol creation, interference detection, stress analysis, and MTO reporting. These
tables are segregated for commodity item data, engineered item data, and instrument data.
Refer to the Reference Data Manager Reference Guide for a detailed description of the physical
data tables and the table naming conventions used in PDS.
The physical data tables for US Practice are delivered in the following files:
~\rdusrdb\us_pcdim.l --- object library
~\rdusrdb\us_pcdim.l.t --- text library
~\rdusrdb\us_pcdim.l.r --- revision library
These libraries contain physical data for American standards. The physical data can be stored in
one of ten physical data libraries. The system uses the geometric industry standard for a
particular commodity item (or specialty item) to determine which library to reference for the
physical data tables.
Geometric industry standard is expressed as a code list value from Standard Note Type 575.
Code list numbers 2-6999 are reserved for standards that apply to American piping practices.
Code list numbers 7000-27999 are reserved for standards that apply to European piping
practices. Numbers 28000-31999 are reserved for specific company practices.
By segregating data into separate physical data libraries, you can access a subset of the total
physical data available for a project. You can also build a specific set of physical data for a
particular project. The following table types are required for piping and instrument components:
§ Generic dimensional data
Generic tables contain data that is not specific to a particular symbol (such as flange outside
diameter or flange thickness). These tables are identified by the prefix BLT, FEM, or MAL
(for the termination type) and end with the extension .TBL (the table name is independent of
the name of the physical data module).
§ Specific commodity data
Specific tables contain commodity data that is specific to a particular component (such as
dimensions, water weight, and surface area). These specific tables use the model code or
commodity code as part of the table name to classify data by symbol type.
§ The system uses the water weight data to compute the wet weight using the specific
gravity of the operating fluid.
fluid weight = water weight * specific gravity for fluid
operating weight = dry weight + fluid weight
§ The surface area data enables the system to perform paint requirement calculations and
insulation weight calculations.
§ Specific commodity dry weight data
§ Piping Specialty physical data
The dimensions, dry weight, water weight, and surface area for specialty items can be stored
in a set of tables or defined at placement.
§ Instrument physical data

Plant Design System (PDS) Piping Eden Interface 5


The Eden Basics

The dimensional data, dry weight, water weight, and surface area for instruments can be
stored in a set of tables or defined at placement.
You can form the name of a physical data table from attributes for the component (such as
geometry standard and end preparation). However, the table name cannot exceed 46 characters.
See Also
Data Retrieval from the Physical Data Library (on page 6)
Example of Physical Data Look-Up (on page 6)

Data Retrieval from the Physical Data Library


The data retrieval from tables in the Physical Data Library is restricted to two independent
variables and eight dependent variables. If only one independent variable is required, then nine
dependent variables are allowed. If more independent variables are required, the additional
independent variable(s) must be a part of the table name. If nominal diameter is one of the
independent variables, it must be listed first in the table.

Example of Physical Data Look-Up


In order to place the valve described earlier in this section, the system references the following
tables:

Generic Tables
The spec access for a six-inch gate valve defines the end preparation at both connect points as
Raised Face Flanged End (code list value 21), which is a bolted connection. As shown in the
listing for VALVE_2_AMS, the table name for a bolted connection on a two-connect point valve
is
table_name= 'BLT' // Term_Type_1 // Pr_Rating_1 // Gen_Flag_Green
Using the values from the Piping Job Specification (PMC=1C0031, Item Name=6Q1C01), the
actual table name will be:
BLT_20_150_5
This table returns the outside diameter, flange thickness, and the seating depth for each end of
the valve. Note that the termination type (20) is used rather than the actual end preparation
value (21).

Specific Tables
The specific tables are used to define the main body of the valve. Refer to the Table Requirement
section in the Reference Data Manager Reference Guide for an outline of the types of tables that
are required to place a valve. Since the termination type is the same at both ends of the valve
(bolted), no red connect point data is required. The required tables are found by referring to the
Bolted(G) termination type.
§ MC_GS_Term(G)_Rat(G)_A (P15A).
§ MC_GS_Term(G)_Rat(G)_B (P15B) --- This table is only required if more than eight
outputs are necessary to define a commodity item.
§ Commodity Code (P59).
Using this information, the dimension tables for a 6" gate valve are:
§ GAT_40_20_150_A

6 Plant Design System (PDS) Piping Eden Interface


The Eden Basics

This table returns the face-to-center dimension for the valve. Table P15B is not required for
a gate valve.
§ VAABAHCCAA
This table returns the empty weight of the valve, including the weight of the operator.
If the end preparations were different at each end of the valve (such as female threaded by socket
welded), then a different set of tables would be required.
An additional table look-up is required to access the dimensional data for the valve operator.
The following table is required to define the valve operator:
MC_Type(G)_Rat(G)_Op_A (P31A)
Using this table name format, the dimension table for a handwheel operator on a 6" gate valve is:
GAT_BLT_150_3_A
This table returns the stem length and the wheel diameter for the handwheel operator.

Plant Design System (PDS) Piping Eden Interface 7


The Eden Basics

8 Plant Design System (PDS) Piping Eden Interface


SECTION 2

Component Placement Example


This section provides a step-by-step example of how PDS uses Eden and the information in the
physical dimension tables to place components in a model.

Eden Modules
Eden is composed of three major modules:
1. Symbol Processors (on page 11) Sub-Symbol Processors (see "Sub-Symbol Processor" on
page 12)
2. Physical Data Subroutines (see "Physical Data Definitions" on page 13)
3. Parametric Shape Definitions (on page 19)
These modules are designed to carry out two functions: data definition and graphic presentation.
The data associated with these modules is delivered in the following files:
~\pdshell\lib\pip_gcom.l --- object library
~\pdshell\lib\pip_gcom.l.t --- text library
The modular approach provides for more efficient storage of information in these libraries by
enabling common information to be shared by different symbols.

Plant Design System (PDS) Piping Eden Interface 9


Component Placement Example

The following graphic, Eden Module Relationships, illustrates the relationship among these
modules:

The first line of each Eden module defines the type of module (such as symbol processor) and
the module name. This statement determines a two-character category code to be prefixed to
the module name in the object library. This prefix is only used by the system; it should not be
keyed in as part of the module name.
The entries in the library use the following prefixes to identify the type of data:
SP Symbol Processor
PD Physical Data Definition Module
UF User Function Module
MG Model Parametric Shape Definition Module

10 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

IG Interference Envelope Parametric Shape Definition Module


SS Sub-Symbol Processor Module
Each module must be given a unique name within the graphic commodity library.

Symbol Processors
A symbol processor is the controlling function or logic used to produce the graphics for a
commodity item, piping specialty, instrument, pipe support, or interference envelope. During
component placement, the symbol processor:
§ Accesses the active component design parameters
§ Assigns connect points
§ Calls the required physical data modules
§ Determines and calls the required parametric shape modules.
The system retrieves the active component parameters which are dependent upon a connect point
from the PJS in terms of green, red, or tap connect point properties. The symbol definition
assigns the data corresponding to these connect point types (green, red, or tap) to the physical
connect point numbers (CP1, CP2, CP3, CP4, or CP5).
The first line of the Eden module defines the type of module and the module name. The
following statement is used in the Eden modules to indicate a symbol processor module.
Symbol_Processor 'MODULE NAME'
This statement tells the system to use the category code SP for the prefix. You should use the
following conventions in assigning the module name (the module name must be in UPPER
CASE). The module name is determined by the type of component being placed (commodity
item or specialty item).
§ For a commodity item, the system searches for the New Item Name (model code) of the
commodity item as the module name. If the New Item Name is blank in the Commodity
Item entity, the system searches for the Item Name as the module name.
§ For a specialty item, the system searches for the specialty item name (derived from the PJS)
as the module name.
§ For an instrument, the system searches for the instrument name (derived from the PJS) as the
module name.
The delivered symbol processors are identified in the library with the prefix SP.
The following lists the symbol processor SPGAT, which is used to control the placement of a
gate valve.

Plant Design System (PDS) Piping Eden Interface 11


Component Placement Example

Listing for Symbol Processor SPGAT


! REGULAR PATTERN, BOLTED OR MALE ENDS GATE VALVE
Symbol_Processor 'GAT'
Call Assign_Connect_Point ( GREEN, CP1 )
Call Assign_Connect_Point ( RED, CP2 )
physical_data_source = 'V1' // Standard_Type
Call Get_Physical_Data ( physical_data_source )
parametric_shape = 'V1'
Call Draw_Parametric_Shape ( parametric_shape )
Valve_Operator = DABS ( Valve_Operator )
If ( Valve_Operator .NE. 0 ) Then
If ( Valve_Operator .LT. 1000 ) Then
Subcomponent = 'OP' // Valve_Operator
Else
Subcomponent = 'A' // Valve_Operator
EndIf
Operator_Orient = FALSE
EndIf
Stop
End

Sub-Symbol Processor
A subcomponent call in a symbol processor module indicates a sub-symbol processor.
Subcomponents are additions to symbols such as an operator on a valve.
The first line of a sub-symbol processor module indicates the module type and the module name.
Sub_Symbol_Processor 'module name'
This statement tells the system to use the category code SS for the prefix.
The sub-symbol processor name for operators is a concatenation of the characters OP_ and the
modifier value from the Commodity Item entity in the PJS database. The value is expressed as
a code list number from CL550 (operator/actuator type). If the value is a positive number (such
as 3) the operator is placed with the valve. If the value is a negative number (such as -3) the
operator is not placed with the valve. (This is useful in segregating large diameter valves which
almost always display a valve operator from small diameter valves, which frequently do not
display an operator in the model.)
The symbol processor for the gate valve calls a sub-symbol processor (Subcomponent = 'OP' //
Valve_Operator), which places an operator on the valve. The following depicts the sub-symbol
processor SSOP_3, which is used to control the placement of a handwheel operator on the valve.

12 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

Listing for Sub-Symbol Processor SSOP_3


! HANDWHEEL OPERATOR
Sub_Symbol_Processor 'OP_3'
If ( Operator_Orient .EQ. TRUE ) Then
prompt = 1.0
Call Prompt_to_Orient_Operator ( prompt )
EndIf
physical_data_source = 'OPERATOR_3'
Call Get_Physical_Data ( physical_data_source )
parametric_shape = 'OP3'
Call Draw_Parametric_Shape ( parametric_shape )
Stop
End

Physical Data Definitions


The system uses the physical data definitions to determine the dimension data, weight data, and
surface area data using the active design parameters. Physical data modules are identified by
the statement:
Physical_Data_Definition 'MODULE NAME'
as the first line in the Eden module. This statement tells the system to use the category code PD
for the prefix. This prefix is only used by the system; it should not be keyed in as part of the
module name.
The module name for a physical data module consists of a symbol type (such as V1, V2,... for
valves) and a generic type of geometric industry standard (such as AMS or DIN). You can
define multiple physical data modules for the same symbol depending on the type of standard
being referenced (for example, V1_AMS for American standards and V1_DIN for European
standards).
You can manage ten different sets of logic for table naming conventions for the following
industry practices. The corresponding table suffix ranges and the suffix for the Piping Eden
physical data modules are indicated below.

Practice Range Suffix


U.S. Practice 1-99 AMS
European - DIN 100-199 DIN
European - British Standard 200-299 BRITISH_STD
European - Practice A 300-399 EURO_A
International - JIS 400-499 JIS
International - Australian 500-599 AUS
European - Practice B 600-699 EURO_B
International - Practice A 700-799 INT_A
International - Practice B 800-899 INT_B
Company Practice 900-999 COMPANY

Plant Design System (PDS) Piping Eden Interface 13


Component Placement Example

The table suffix standard for a component is defined in the Piping Commodity Data table of the
Material Reference Database. Each component must be assigned a geometric industry standard
if it is to use physical data tables.
For most of the delivered symbols, the physical data modules are classified into two categories:
specific and generic. The specific physical data module is called by the symbol processor.
This module then calls a generic physical data module.

Specific Physical Data Modules


The physical data module PDV1_AMS determines the specific dimensions (face-to-center and
face-to-face) and other physical properties for a gate valve. This is the module called by the
symbol processor SP_GAT.

Listing for Physical Data Module PDV1_AMS


Physical_Data_Definition 'V1_AMS'
physical_data_source = 'VALVE_2_AMS'
Call Get_Physical_Data ( physical_data_source )
Call Read_Table ( Table_Name_A, input, output )
Surface_Area = Output_1
Wet_Weight = Output_2
F_to_C_Dim_1 = Output_3
If ( Term_Type_1 .EQ. Term_Type_2 ) Then
F_to_C_Dim_2 = F_to_C_Dim_1
Else
F_to_C_Dim_2 = Output_4
EndIf
F_to_F_Dim = F_to_C_Dim_1 + F_to_C_Dim_2
If ( Valve_Operator .LE. 24.0 ) Then
Call Read_Table ( Table_Name_W, input, output )
Dry_Weight = Output_1
EndIf
Return
End

Generic Physical Data Modules


The generic modules contain information that is common to more than one symbol, such as
flange thickness, gasket separation, and outside diameter. The physical data module V1_AMS
calls another physical data module VALVE_2_AMS, which contains the generic dimension data
for all valves with two connect points.

14 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

Listing for Physical Data Module PDVALVE_2_AMS


Physical_Data_Definition 'VALVE_2_AMS'
Input_1 = Nom_Pipe_D_1
If ( Gen_Type_1 .EQ. BOLTED ) Then
table_name = 'BLT' // Term_Type_1 // Pr_Rating_1 // Gen_Flag_Green
Call Read_Table ( table_name, input, output )
Facing_OD_1 = Output_1
Thickness_1 = Output_2
Seat_Depth_1 = Output_3
Thickness_1 = Thickness_1 - Seat_Depth_1
CP_Offset_1 = Gasket_Sep_1
If ( Symbology .EQ. MODEL ) Then
Thickness_1 = 0.0
Depth_1 = 0.0
Pipe_OD_1 = 0.0
Body_OD_1 = Facing_OD_1
Else
table_name = 'MAL_300_5'
Depth_1 = Thickness_1
Input_1 = Nom_Pipe_D_1
Call Read_Table ( table_name, input, output )
Pipe_OD_1 = Output_2
Body_OD_1 = Pipe_OD_1
EndIf
Else
If ( Gen_Type_1 .EQ. MALE ) Then
table_name = 'MAL' // Term_Type_1 // Gen_Flag_Green
Call Read_Table ( table_name, input, output )
Facing_OD_1 = Output_2
Thickness_1 = 0.0
Depth_1 = 0.0
Seat_Depth_1 = 0.0
CP_Offset_1 = 0.0
Pipe_OD_1 = Facing_OD_1
Body_OD_1 = Facing_OD_1
Else
table_name = 'FEM' // Term_Type_1 // Pr_Rating_1 //
Gen_Flag_Green
Call Read_Table ( table_name, input, output )
Facing_OD_1 = Output_1
Depth_1 = Output_2
Seat_Depth_1 = 0.0
Thickness_1 = 0.0

Plant Design System (PDS) Piping Eden Interface 15


Component Placement Example

If ( symbology .EQ. MODEL ) Then


Depth_1 = 0.0
CP_Offset_1 = 0.0
Pipe_OD_1 = 0.0
Body_OD_1 = Facing_OD_1
Else
CP_Offset_1 = -Depth_1
table_name = 'MAL_300_5'
Call Read_Table ( table_name, input, output )
Pipe_OD_1 = Output_2
Body_OD_1 = Pipe_OD_1
EndIf
EndIf
EndIf
If ( Term_Type_2 .EQ. Term_Type_1 .AND. Nom_Pipe_D_1 .EQ. Nom_Pipe_D_2
)
Then
Facing_OD_2 = Facing_OD_1
Pipe_OD_2 = Pipe_OD_1
Body_OD_2 = Body_OD_1
Thickness_2 = Thickness_1
Depth_2 = Depth_1
Seat_depth_2 = Seat_Depth_1
CP_Offset_2 = CP_Offset_1
Else
Input_1 = Nom_Pipe_D_2
If ( Gen_Type_2 .EQ. BOLTED ) Then
table_name = 'BLT' // Term_Type_2 // Pr_Rating_2 // Gen_Flag_Red
Call Read_Table ( table_name, input, output )
Facing_OD_2 = Output_1
Thickness_2 = Output_2
Seat_Depth_2 = Output_3
Thickness_2 = Thickness_2 - Seat_Depth_2
CP_Offset_2 = Gasket_Sep_2
If ( Symbology .EQ. MODEL ) Then
Thickness_2 = 0.0
Depth_2 = 0.0
Pipe_OD_2 = 0.0
Body_OD_2 = Facing_OD_2
Else
Depth_2 = Thickness_2
table_name = 'MAL_300_5'
Input_1 = Nom_Pipe_D_2
Call Read_Table ( table_name, input, output )
Pipe_OD_2 = Output_2
Body_OD_2 = Pipe_OD_2
EndIf

16 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

Else
If ( Gen_Type_2 .EQ. MALE ) Then
table_name = 'MAL' // Term_Type_2 // Gen_Flag_Red
Call Read_Table ( table_name, input, output )
Facing_OD_2 = Output_2
Thickness_2 = 0.0
Depth_2 = 0.0
Seat_Depth_2 = 0.0
CP_Offset_2 = 0.0
Pipe_OD_2 = Facing_OD_2
Body_OD_2 = Facing_OD_2
Else
table_name = 'FEM' // Term_Type_2 // Pr_Rating_2 //
Gen_Flag_Red
Call Read_Table ( table_name, input, output )
Facing_OD_2 = Output_1
Depth_2 = Output_2
Seat_Depth_2 = 0.0
Thickness_2 = 0.0
If ( Symbology .EQ. MODEL ) Then
Depth_2 = 0.0
CP_Offset_2 = 0.0
Pipe_OD_2 = 0.0
Body_OD_2 = Facing_OD_2
Else
CP_Offset_2 = -Depth_2
table_name = 'MAL_300_5'
Input_1 = Nom_Pipe_D_2
Call Read_Table ( table_name, input, output )
Pipe_OD_2 = Output_2
Body_OD_2 = Pipe_OD_2
EndIf
EndIf
EndIf
EndIf
Table_Name_A = Item_Name // Geo_Ind_Std // Term_Type_1
Table_Name_W = Commodity_Code
Input_1 = Nom_Pipe_D_1
Input_2 = Nom_Pipe_D_2
If ( Term_Type_1 .EQ. Term_Type_2 .AND. Nom_Pipe_D_1 .EQ. Nom_Pipe_D_2
)
Then
Table_Name_A = Table_Name_A // Pr_Rating_1 // 'A'
Else
If ( Gen_Type_1 .EQ. Gen_Type_2 ) Then
! Male X Male or Bolted X
Bolted
! or Female X Female
Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2 //
Pr_Rating_2 // 'A'
Else

Plant Design System (PDS) Piping Eden Interface 17


Component Placement Example

If ( Gen_Type_1 .EQ. MALE ) Then


! Male X Bolted and Male X
Female
Table_Name_A = Table_Name_A // Term_Type_2 // Pr_Rating_2 //
'A'
Else
If ( Gen_Type_2 .EQ. MALE ) Then
! Bolted X Male and Female X
Male
Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2
//
Else
! Bolted X Female and Female
X
Bolted
Table_Name_A = Table_Name_A // Pr_Rating_1 // Term_Type_2
//
Pr_Rating_2 // 'A'
EndIf
EndIf
EndIf
EndIf
Return
End

Listing for Physical Data Module OPERATOR_3


Physical_Data_Definition 'OPERATOR_3'
Input_1 = Nom_Pipe_D_1
If ( Gen_Type_1 .EQ. BOLTED ) Then
Table_Name_A = Item_Name // 'BLT' // Pr_Rating_1 //
Valve_Operator // 'A'
Else
If ( Gen_Type_1 .EQ. MALE ) Then
Table_Name_A = Item_Name // 'MAL' // Pr_Rating_1 //
Valve_Operator // 'A'
Else
If ( Gen_Type_1 .EQ. FEMALE ) Then
Table_Name_A = Item_Name // 'FEM' // Pr_Rating_1 //
Valve_Operator // 'A'
EndIf
EndIf
EndIf
Call Read_Table ( Table_Name_A, input, output )
Dimension_1 = Output_1
Dimension_2 = Output_2
OP_Weight = 0.0
Return
End

18 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

Parametric Shape Definitions


The parametric shape definition describes the graphics symbol (such as bend, flange, or valve
body) that is placed for the component in the model.
Parametric shape definitions are used to place symbol graphics in the model or define
interference envelopes. This involves the following major functions:
§ Defining connect point geometry
§ Placing connect points
§ Moving the active location a specified distance
§ Drawing a specific graphic shape
§ Placing a center of gravity location.
Parametric shape definitions are divided into two basic types: model parametric shapes and
interference envelopes. The first line of the Eden module indicates the module type and the
module name.

Model Parametric Shape Definitions


Model parametric shapes are used to define the symbol graphics to be placed in the model. For
example, the parametric shape module for a valve consists of a cylinder, two cones, and a
cylinder (flange, valve body, flange).
The first line for these modules is of the form
Model_Parametric_Shape_Definition 'MODULE NAME'
This statement tells the system to use the category code MG for the prefix. This prefix is only
used by the system; it should not be keyed in as part of the module name.
The module name for a parametric shape module consists of a symbol type (such as V1, V2,...
for valves).
The parametric shape module MGV1 determines the model graphics for a valve. This is the
module called by the symbol processor SPGAT. The parametric shape module MGOP3
determines the model graphics for a handwheel operator. This is the module called by the
sub-symbol processor SSOP_3.

Plant Design System (PDS) Piping Eden Interface 19


Component Placement Example

Listing for Parametric Shape Module MGV1


Model_Parametric_Shape_Definition 'V1'
Call Define_Connect_Point_Geometry ( LINEAR )
Call Place_Connect_Point ( CP1 )
Call Move_By_Distance ( CP_Offset_1 )
Call Draw_Cylinder_With_Capped_Ends ( Depth_1, Facing_OD_1 )
length = F_to_C_Dim_1 - Thickness_1
diameter = 0.0
Call Draw_Cone ( length, Body_OD_1, diameter )
Call Place_Connect_Point ( CP0 )
Call Place_COG_Location ( DRY_COG )
Call Place_COG_Location ( WET_COG )
length = F_to_C_Dim_2 - Thickness_2
Call Draw_Cone ( length, diameter, Body_OD_2 )
Call Draw_Cylinder_With_Capped_Ends ( Depth_2, Facing_OD_2 )
Call Move_By_Distance ( CP_offset_2 )
Call Place_Connect_Point ( CP2 )
Return
End

Listing for Parametric Shape Module MGOP3


Model_Parametric_Shape_Definition 'OP3'
Call Define_Connect_Point_Geometry ( OPERATOR )
Call Convert_NPD_to_Subunits ( Nom_Pipe_D_1, dia )
dist = dia + Min_Cyl_Dia * 0.5
angle = 90.0
radius = ( Dimension_2 - Min_Cyl_Dia ) * 0.5
Call Draw_Cylinder_With_Capped_Ends ( Dimension_1, Min_Cyl_Dia )
Call Move_by_Distance ( -dist )
Call Rotate_Orientation ( angle, Secondary )
Call Rotate_Orientation ( angle, Normal )
Call Move_Along_Axis ( -radius, Secondary )
Call Draw_Torus ( radius, angle, Min_Cyl_Dia )
Call Draw_Torus ( radius, angle, Min_Cyl_Dia )
Call Draw_Torus ( radius, angle, Min_Cyl_Dia )
Call Draw_Torus ( radius, angle, Min_Cyl_Dia )
Return
End

Interference Parametric Shape Definition


Interference parametric shapes are not used during component placement. They are referenced
during interference detection to determine the volume (interference envelope) to be compared
for clashes with other elements. If a clash is detected during the interference detection process,
the interference parametric shape is used to place an interference marker. Refer to the PDS
Interference Checker/Manager (PD_Clash) User's Guide for more information on interference
envelopes.
Interference_Parametric_Shape_Definition 'MODULE NAME'
This statement tells the system to use the category code IG for the prefix.
The module name for the interference parametric shape definition should be the same as the
module name for the model parametric shape definition.

20 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

If no interference module is found for a component, the system uses the model graphics
module to determine the interference parametric shape.

Listing for VI IFC


Interference_Parametric_Shape_Definition 'V1'
Call Define_Connect_Point_Geometry ( LINEAR )
dist = 0.0
If ( Gen_Type_1 .EQ. BOLTED ) Then
extra1 = CP_Offset_1
Else
extra1 = 0.0
dist = CP_Offset_1
EndIf
If ( Gen_Type_2 .EQ. BOLTED ) Then
extra2 = CP_Offset_2
Else
extra2 = 0.0
EndIf
sec1 = Depth_1 + extra1
sec2 = Depth_2 + extra2
diameter1 = Facing_OD_1 + Insulation * 2.0
diameter2 = Facing_OD_2 + Insulation * 2.0
diameter3 = Body_OD_1 + Insulation * 2.0
length = F_to_C_Dim_1 - Thickness_1 + F_to_C_Dim_2 - Thickness_2
Call Move_By_Distance ( dist )
If ( diameter1 .GE. diameter2 ) Then
Call Draw_Cylinder_With_Capped_Ends ( sec1+sec2+length,
diameter1 )
Else
Call Draw_Cylinder_With_Capped_Ends ( sec1+sec2+length,
diameter2 )
EndIf
Return
End

Listing for OP3 IFC


Interference_Parametric_Shape_Definition 'OP3'
Call Define_Connect_Point_Geometry ( OPERATOR )
Call Convert_NPD_to_Subunits ( Nom_Pipe_D_1, dia )
dist = dia + Min_Dimension * 0.5
Call Draw_Cone_With_Capped_Ends ( Dimension_1 - dia, 0.0, Dimension_2
)
Call Draw_Cylinder_With_Capped_Ends ( dia, Dimension_2 )
Return
End

Plant Design System (PDS) Piping Eden Interface 21


Component Placement Example

Forms Interface
Forms in piping design serve to collect input via key-in fields or command buttons. They also
provide feedback information to the user through message fields.
The data gathered through the forms serves as the input that defines the values of the global
variables used by the Eden modules. When a new specialty item is defined through Eden a form
specific to that item can be created using the Form Builder and Symbol Editor products, or the
DBAccess product.

Notes for Graphic Commodity Data


The following sections provide additional information about graphic commodity data.
§ Connect Point Data (on page 22)
§ Bends and Branches (on page 24)
§ Bolts, Gaskets, and Flanges (on page 24)
§ Pipe, Tubing, and Hose (on page 24)

Connect Point Data


As described in the Piping Job Specification description, connect point information for
commodity items, piping specialties, and instruments is classified in terms of green and red
connect points. The following conventions are used to coordinate the two sets of data:
§ For full-size components, data is only defined for the green connect point and applies to all
ends of the component.
§ For size change components, data for commodity items, speciality items, or instruments
should be created with the green connect point representing the larger diameter (first size) of
the component and the red connect point diameter representing the smaller diameter (second
size).
If the end preparation is different at each end of the component, the end preparation should
be defined to match the required green and red connect points.
§ If a component has ends with the same nominal diameter but other end properties that differ,
the following rules apply:
§ If the ends have different end preparations (regardless of the values for
schedule/thickness) the end(s) whose end preparations have the lowest code list number
are designated as the green connect point.
§ If the end preparations are the same but the values for rating, schedule, or thickness
differ, the "stronger" end(s) are designated as the green connect point.
§ Schedule or thickness values should be defined for all applicable components. Refer to the
PJS Tables and Functions section in the Reference Data Manager (PD_DATA) Reference
Guide for a detailed description of the methods for defining the schedule or thickness value.
§ A flow direction component (such as a check valve) must be defined so that the flow is
directed from connect point 1 to connect point 2.

22 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

§ A tee type branch must be defined with connect point three on the branch leg of the tee.

§ The origin of a component must lie between connect point 1 and connect point 2.
§ Flanges should be defined with the green connect point representing the flanged connect
point and the red connect point representing the non-flanged connect point.

§ A valve operator is always placed at the component origin of the corresponding valve body.

§ To ensure consistency in pipe cut length calculations, the connect points of a component
should be located using face-to-face or face-to-center dimension rather than end-to-end or
end-to-center dimension.
§ A change of direction component placed by component center must be defined such that
connect point 1 is on the primary axis.

Plant Design System (PDS) Piping Eden Interface 23


Component Placement Example

Bends and Branches


§ For bend components (specific and generic), the item name must be unique with respect to
the angle of the bend. In other words, you specify the angle of the bend by selecting the
item name for the corresponding angle of the bend.
§ The number of joints in a miter is required to compute the stress intensification factor (SIF).
The graphics symbol description in the Graphic Commodity Library sets an attribute in the
piping design database that defines the number of joints.
For miter bend components, the system requires that the item name and the new item name
be unique with respect to the number of miter joints of the bend. In other words, the item
name specifies the number of miter joints of the bend.
§ For branches (tees and laterals), the system uses the first and second size to access the
branch table and to determine the item name of the component to be placed at the branch
point (intersection). Depending on the active values, the branch table may define a single
component or a set of two or three components.

Bolts, Gaskets, and Flanges


§ The data for the number of bolts and the bolt diameter is available with the flange data in the
Physical Dimension Table Library as a function of nominal piping diameter, pressure rating,
termination type, and geometric industry standard. However, the bolt data and the flange
data are stored in separate tables. Refer to the Report Manager (PD_Report) User's Guide
for a description of the table access.
§ A lap joint flange is defined with the end preparation at one end as flanged and the other end
as lap.
§ The system determines the gasket separation at each connect point of a piping component,
speciality item, and an instrument component by the following rules:
§ If the end preparation for the connect point is flanged, the gasket separation for the
connect point is set to one-half the Active Gasket Separation. However, some flanged
connections (lug, ring type joint, or wafer) have integral gaskets and do not have a
gasket separation. In this situation, the gasket separation at each connect point is set to
zero.
§ If the end preparation for the connect point is not flanged, the gasket separation for the
connect point will be set to zero.
§ Flange data exists in two tables.
§ The first table (BLT_Term_Rat_TS) contains the flange data required for modeling
activities (such as flange outside diameter and flange thickness).
§ The second table (STUD_Rat_TS) contains flange data required for reporting or analysis
activities (such as bolt diameter, number of bolt holes, and nut extension).

24 Plant Design System (PDS) Piping Eden Interface


Component Placement Example

Pipe, Tubing, and Hose


§ All tubing (such as fiberglass and copper) is specified in terms of piping outside diameter
rather than nominal piping diameter. All commodity item data in the Physical Dimension
Table Library exists in terms of nominal piping diameter.
§ Mechanical joint and cast iron pipe can have various fixed lengths. Polypropylene-lined tube
is purchased with flanged ends in various fixed lengths.
§ Piping wall thickness is defined in terms of NPD units rather than model units.
§ A piping converter component (which converts nominal piping diameter from one system of
units to another system of units) must be defined in the PJS database for each specific pair of
nominal piping diameters. You cannot specify a converter component for a range of
nominal piping diameters.
§ Flexible hose has flanged, screwed, or quick disconnect end preparations.

Plant Design System (PDS) Piping Eden Interface 25


Component Placement Example

26 Plant Design System (PDS) Piping Eden Interface


SECTION 3

Eden Language Structure


Eden is similar to the FORTRAN programming language. Therefore, the general rules for
evaluating expressions in Eden are identical to those in FORTRAN.
You do not need to know FORTRAN to use the Eden language.
Eden definitions are usually simpler than FORTRAN programs. To use Eden, you must be able
to visualize the symbol (in 3D) that you want to develop.
The Eden language structure incorporates:
§ Statements
§ Beginning
§ Ending
§ Variables
§ Local
§ Global
§ Keywords
§ Connect Point Geometry (piping only)
§ Operators
§ Arithmetic
§ Relational
§ Logical
§ Expressions
§ Functions
§ Primitives (or Subroutines)

Beginning Statements
Beginning statements define the types of modules being entered. Names within the single
quotes must be all upper case.
SP - Symbol_Processor '6CHAR'
SS - Sub_Symbol_Processor '6CHAR'
PD - Physical_Data_Definition '28CHAR'
UF - User_Function_Definition '28CHAR'
MG - Model_Parametric_Shape_Definition '28CHAR'
IG - Interference_Parametric_Shape_Definition '28CHAR'

Examples
Symbol_Processor 'GAT'

Plant Design System (PDS) Piping Eden Interface 27


Eden Language Structure

Physical_Data_Definition 'V1_AMS'

Ending Statements
Ending statements mark the end of the module in which the system has been processing.
Ending statements in the symbol and subsymbol processor (beginning statements SP and SS)
include:
Stop
End
Ending statements in the children processor (beginning statements PD, UF, MG, and IG)
include:
Return
End

Variables
Variables in Eden can be either local or global. They can contain either numeric or
alphanumeric data. Internally, numeric data is stored as REAL*8 (double precision). If a
different data type is required in the context of an expression, then the conversion is performed
at the time the expression is evaluated.
Variable names can be either upper or lower case. Symbols tend to be easier to read when
you use all lower case for local symbols and all upper case for global symbols or vice versa.

Examples
§ When converting a floating point number to an integer, the fractional part of the floating
point number is truncated.
§ A variable used in a logical expression evaluates to TRUE when the value of the variable is
1 and 0 when the logical value is FALSE.
§ Variables that hold values representing distances are assumed to be in subunits. A variable
containing the value 25 represents 25 inches in an English unit design file and 25 millimeters
in a metric unit design file.
Be careful when using hard coded numbers or when using the system_of_units variable.

28 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Local Variables
Local variables are user defined and declared in the symbol definition. You can refer to a local
variable only when you are in the same module as the local variable.
Local variable names are formed using alphanumeric (a-z), numeric (1-9), and special (_ and $)
characters. They must begin with an alphanumeric character and must be less than or equal to
31 characters in length.
The Eden compiler does not verify the spelling of local variables within call
statements. It assumes a null value for the misspelled variable at component placement time.
The Eden language refers to constants as local variables. Both character strings and numeric
constants are valid; however, character string constants must be surrounded by single quotes.
In most cases, character strings and constants are case sensitive. Thus, a and A are interpreted
differently.

Examples
diameter 13.25
shell_thickness 'A TEXT STRING'
projection_1 radius [2]
25
Only in Pipe Support and Equipment Modeling can you declare local variable types. The
variable types default to either CHARACTER or REAL depending on the context. To override
this default, you can use a local variable type declaration statement anywhere before the
variable(s) is (are) actually referenced. Variable types INT2, R8, and LOCATION are
recognized by the compiler.

Example
In the following example, variables a, B, and C are declared as type short integers. They hold
values ranging from -32767 to 32767.
Int2 a
Int2 B, C

Example
In the example below, variable d is declared as a type REAL, capable of holding decimal
fractional values. This is the usual default type for numeric variables. However, explicit
typing to this category may be necessary to declare local arrays.
R8 d
As a recommendation, all declaration statements should be placed at the very beginning of the
symbol code and not interspersed among statements to be executed during symbol placement.
This improves program readability.
Also in Pipe Support and Equipment Modeling, referencing a variable using subscripts is
extremely useful when coding repetitive statements such as the body of a loop. Prior to use,
variables must appear in a type declaration in which its subscript or index range is also specified.

Plant Design System (PDS) Piping Eden Interface 29


Eden Language Structure

Example
Below, LENGTHS is an array of 10 REAL variables. They are referenced as LENGTHS [1] ...
LENGTHS [10].
R8 LENGTHS [10]

Global Variables Common to Piping, Equipment, and Pipe


Support Modeling
Global variables are system-defined names allowing you to refer to them at any subroutine level.
More specifically, you can use them for passing values between subroutine levels or for
communicating input values to the symbol. The following list shows the global variables
common to all Eden applications. Refer to the application-specific section for detailed
information concerning specific global variables.
Global variables are system-defined. You cannot declare global or subscripted global
variables.
Input_n (Input_1 through Input_20) An array with up to 20 variables
used to define the input parameters for table lookups.
(Input_11 through Input_20 are specifically designed for user
function arguments in equipment and pipe support modeling.)
Output_n (Output_1 through Output_20) An array with up to 20 variables
where the results of the table lookup are stored. (Output_11
through Output_20 are specifically designed for user function
return arguments in equipment and pipe support modeling.)
Dimension_n (Dimension_1 through Dimension_20) General purpose
variables used for communicating input to the symbol logic.
You can also use these variables for passing values between
subroutines or simply for local storage. (Dimension_20 is for
angle; Dimension_1 through Dimension_19 is for linear
piping.)
Pr_Rating_n Variable containing the current item pressure rating value.
Nom_Pipe_D_n Variable containing the current item nominal pipe diameter.
This variable contains the nominal diameter in coded units. A
special primitive is provided to help you convert from coded
units to subunits.
Gen_Type_n Variable containing the current item end preparation generic
type (BLT, MAL, FEM). This is a read-only variable.
Term_Type_n Variable containing the current item end preparation
termination type (21, 22, and 23 will fall into
Term_Type_1=20). This is a read-only variable.
Standard_Type Variable containing the current item standard type value. This
is a read-only variable and is a function of TABLE_SUFFIX.
System_Of_Units Variable defining the current system of measurement. Valid
values are ENGLISH and METRIC.

30 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Piping Eden Global Variables


Bend_Angle The bend angle is defined at placement for a component that
has a variable sweep angle.
Bend_Radius The bend radius is defined through the component itself by
means of a table lookup.
Bend_Radius_NPD The bend radius in terms of NPD from the PCD file for the
bend component.
Body_OD_n (n = 1-5) The body outside diameter is the outer diameter of
either a bolted, male, or female end of the indicated termination
type.
BOLT_DIAMETER Diameter information not used when placing a flanged
BOLT_EXTENSIO component. Table lookups are performed during the execution
N of the MTO process when two mating flanges are found.
These keywords are used to hold the data retrieved for the table
and then pass on to the MTO process.
Br_Ref_Thick The branch reinforcement thickness.
Br_Ref_Width The branch reinforcement width.
Branch_Angle Used for a table name lookup.
Branch_Table Identifies the branch insertion table used to determine the name
of the branch commodity item to be used for tee and lateral
branches.
Commodity_Code A user-assigned code that together with the NPD and
schedule/thickness uniquely defines the component.
CP_Offset_n (n = 1-5) The connect point offset adjusts the graphics relative
to the connect point (for flanges, it adjusts for the gaskets) for
female, adjust for penetration. Male is set to zero.
CP_Normal_n (n = 1-5) The normal vector.
CP_Primary_n (n = 1-5) The flow centerline vector.
CP_Secondary_n (n = 1-5) The secondary vector.
CP_to_Origin_n (n = 1-5) The CP to origin dimension.
Depth_n (n = 1-4) The connect point depth is the depth of a socket as
defined in the table FEM_Term_Rat_TS. It determines a
component's dimensional parameters by calculating the depth
of the socket minus 1/16 inches.
DIM_TOLERANCE The minimum dimension standards are the minimal values
= 1/64 in. permitted in the Eden program. The minimum distance used
for checking connect point separation if 400 units of resolution
(USRs), which is approximately equal to 1/5 inch.

Plant Design System (PDS) Piping Eden Interface 31


Eden Language Structure

Dry_COG The center of gravity dry.


Dry_Weight The dry weight.
Facing_OD_n (n = 1-5) The facing outside diameter is the outer diameter of
either a bolted, male, or female end of the indicated termination
type.
F_to_C_Dim_n (n = 1-5) The face-to-center and face-to-face dimensions
F_to_F_Dim retrieve information from a dimension table and pass that
information to the database for the appropriate connect point or
face to face dimension.
Gasket_Sep_n (n = 1-5) The gasket separation.

Gen_Flag_Red The generic flag retrieves the table suffix for use with table
Gen_Flag_Green identification.

Geo_Ind_Std The geometric industry standard is used to define table lengths.


The data comes from the piping component data entry.

Insulation The insulation thickness is defined by the designer at time of


pipeline placement. It is used to increase the volume of the
interference detection and the display of the Insulation
Graphics.
Insulation_n (n=1 to 4) This variable is used to exclude insulation by
connect point.

Item_Name This variable equates to the model code used in defining a table
name.

MIN_CYL_DIA = The minimum cylinder diameter permitted in the Eden


1/32 in. program.

MIN_DIMENSION Hard-coded global variable. The minimum linear dimension


= 5/8 in. value permitted by the Eden program is approximately 1/16
inch.

Min_Weld_Size The minimum weld size retrieves output from the


Branch_Angle/Branch_Table.

32 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Nipple_Length The nipple length is retrieved from the modifier column in


piping component data from the reference database.

Nom_Bend_Rad The nominal bend radius. This variable will write to the
database and allow reconstruction of the component.

NUMBER_BOLTS Table lookups are performed during the execution of the MTO
process when two mating flanges are found. This keyword is
used to hold the data retrieved for the table and then pass on to
the MTO process.
Number_Miter The number of miter joints is the number of miters to be used
in a mitered joint. It is retrieved from the modifier column in
the piping component data from the reference database.

Number_of_Taps The number of taps is retrieved from the modifier column in


the piping component data from the reference database.

Operator_Orient Prompts for a secondary orientation of an operator. For


example, a handle for a lever or gear operator.
Op_COG The operator center of gravity.
Op_Weight The operator weight data referenced from a table and stored in
the database.
Or_Port_Size The orifice port size is defined in the Eden code.
Pipe_OD_n (n = 1-5) The piping outside diameter.
Seat_Depth_n (n = 1-5) The seating depth is the depth as defined in the table
BLT_Term_RAT_TS. The dimension represents the distance
from the outermost surface of the bolted end to the seating
surface of the gasket.
Sch_Thick_n (n = 1-5) The schedule/thickness is the wall thickness of the
applicable end of a component of the indicated nominal
diameter as defined in the table
MALWT_Term_Sc/Th_TS_WC.
Stem_Length The stem length table lookup/calculated --- stored in database.
Surface_Area The surface area data referenced from a table and stored in the
database.
Symbology Defines the use of simple or detailed graphics.
Table_Name_A Stores the dimension table name.
Table_Name_B
Table_Name_W Stores the weight table name.

Plant Design System (PDS) Piping Eden Interface 33


Eden Language Structure

Thick_Table_Name Identifies the thickness data table used in piping wall thickness
calculations for this piping material class.
Toggle_n (n = 1-5) Currently used only for valve operations.
Valve_Operator The valve operator is the value retrieved from the modifier data
and tells what valve operator to place.
Weight_Code Defines the weight code for the component and determines the
table to be used in finding the dry weight.
Wet_COG The wet center of gravity.
Wet_Weight The fluid volume weight data referenced from a table stored in
the database.

Common Keywords
Eden uses keywords for labeling specific values or groups of values. All keywords except
TRUE and FALSE can appear as arguments in system-defined primitives (or subroutines).
Keywords can be upper or lower case. For consistency, this reference guide displays keywords
in upper case.
TRUE Logical true. Used in logical expressions.
FALSE Logical false. Used in logical expressions.
MALE Keywords for generic end preparation.
FEMALE
BOLTED
PRIMARY Keywords used to identify or refer to individual refresh tee
SECONDARY axes.
NORMAL
ENGLISH Names used to define the units of a constant used in the symbol
METRIC definition.

Keywords (Piping Specific)


The following keywords are specific to the Piping Eden interface.
GREEN The spec connect point properties assign connect point
RED properties to a given connect point (that is, end prep,
schedule, pressure, table suffix) retrieved from the active
material class.
CPn The connect point numbers.

34 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

NULL_GEN_TYPE The generic term type is used in testing the current end
preparation retrieved from the commodity to determine the
necessary graphics and dimensions needed to construct the
components connection graphics.
THICKNESS_n (n = 1-5) The fitting CP thickness (flange_depth,
thread_depth, or socket_depth) represents the distance from
the outermost face of the flange to the back surface of the
flange on which the nut rests including any projections on the
flange.
NULL_PRESSURE 0 The schedule/thickness and pressure types.
WALL_THICKNESS
SCHEDULE
CALCULATE
STANDARD_TYPE The standard types are used in building the physical data
module name. The keyword STANDARD_TYPE is
replaced by one of the following keywords dependent upon
the table suffix value found for the commodity being placed.
Keyword Practice Range
AMS U.S. Practice 2-99
DIN European - DIN 100-199
BS European - British 200-299
Standard
EURO_A European - Practice A 300-399
JIS International - JIS 400-499
AUS International - Australian 500-599
EURO_B European - Practice B 600-699
INT_A International - Practice A 700-799
INT_B International - Practice B 800-899
COMPANY Company Practice 900-999
The geometric standard determines which dimension
library to use, such as U.S. Practice or Company Practice.
The table suffix determines which physical data definition
modules to use to read table data, such as V1_AMS or
V1_COMPANY.
NPD_SUB_UNITS The file NPD working units. Test against the keywords
ENGLISH or METRIC.
SUBCOMPONENT The subcomponent name is used to access subcomponents.
For example, Subcomponent = 'OP'//Valve_Operator.

Plant Design System (PDS) Piping Eden Interface 35


Eden Language Structure

FLOW_DIRECTION The flow direction indicators. FLOW_DIRECTION =


TRUE cp1 must be placed at the upstream portion of the
pipeline. Generally used on items including check valves.
If False or not defined, it is bidirectional.
MODEL The model symbology types.
ITEM_NAME The model code data retrieved from the piping commodity
data used in building table names.
PHYSICAL_DATA_IDENT The physical data identification is used to retrieve tag names
or numbers for an instrument. It is also used for table
lookup dimensions.
Oper_Dim_A The operator dimensions keywords allow you to load valve
Oper_Dim_B operator dimensions with read/write access into the relational
Oper_Dim_C database for piping and instrument components.
Oper_Dim_D
The dimensions of valve operators vary from supplier to
supplier. Typically, valve operators are defined as
over-sized in the piping model. Although this is safe with
respect to interference checking, it is not always safe with
respect to access --- a valve operator may appear to be
accessible when it is not. For this reason, these keywords
provide the mechanism for four valve operator dimensions to
be loaded into the model on the basis of definitions in the
Reference Database, such that the data in the model can be
reviewed and compared with data for the purchased valves.
NON_RADIAL_BRANCH The non-radial branch keyword must be used to define the
connect point geometry type for non-radial branch
components.
ORIFICE_TAP_ORIENTAT The orifice tap orientation keyword allows relative
ION 0 180 degree orientation orientation of two taps on an orifice flange. The use of this
ORIFICE_TAP_ORIENTAT keyword is required in conjunction with the Place
ION 1 90 degree orientation Component option in Piping Design. The Place
Component option places an orifice flange with two taps.
These taps are oriented 90 degrees apart versus 180 degrees
apart, as specified in the Reference Database.
You must define the number of taps for the orifice flange in
the Piping Commodity Specification Data Table,
PDtable_202, of the Material Reference Database. By
default, the orifice taps are oriented 180 degrees apart on the
outside diameter of the flange, when the modifier column is
+2. If you require an orifice flange to have the taps oriented
90 degrees apart, you must specify the modifier column as -2.

36 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

T80Cn The pipe support data keywords (where n is the applicable


column number in the Pipe Support Data Table of the
Piping Design Database) allows you to load pipe support data
with read/write access into the relational database. This
includes updating the pipe support's data when the source of
that data is either hard-coded in a Piping Eden module or
read from a table in the Physical Data Library.

Comments
To place a comment within Piping source code, the comment must be on a separate line from the
source line and the exclamation point (!) must be in the first column of the comment line.
You cannot place a comment immediately after a call statement (on the same line).

Example
Table_Data_Definition 'T_41_420_3000_NREQD_52'
! Description= CL3000 equal tee socketwelded ends weight
! Source= GRINNELL catalog PF-78

Operators
Operators are used in conjunction with variables to form expressions. As in FORTRAN,
operators can be any one of three types:
1. Arithmetic
2. Relational
3. Logical

Arithmetic Operators
Arithmetic operators are used to form arithmetic expressions. These operators follow the
mathematical conventions. Valid arithmetic operators include:
+ addition
- subtraction
* multiplication
/ division
** exponentiation
// concatenation using '_'
|| concatenation without using '_'

The first five operators (+, -, *, /, **) can only be used with numeric local and global variables.
The concatenation operators (// , || ) can be used with both numeric and string variables.

Plant Design System (PDS) Piping Eden Interface 37


Eden Language Structure

The concatenation operator // is used primarily to form table names. It joins two variables
together with an underbar (_) character. The result is a text string.

Example
'ABC' // 'DEF'
produces
'ABC_DEF'
When using the concatenation operation, real numbers are converted to integers (that is,
truncated), then converted to character strings and finally joined together with the underbar
character. The concatenation operation is generally used to form messages and character field
outputs.

Example
If GEN_TYPE = 20 and PR_RATING = 300, then 'BLT' // GEN_TYPE // PR_RATING
// '5'
produces
'BLT_20_300_5'

Relational Operators
Relational operators are used to form relational expressions that test the value of an Eden
expression or establish conditions under which a group of Eden statements can be executed.
Valid relational operators include:
.EQ. equal to
.NE. not equal to
.GE. greater than or equal to
.GT. greater than
.LE. less than or equal to
.LT. less than
Periods must appear before and after the expression.
Relational operators can be used on both numeric and character string variables. However,
mixing the two types of operands for a given operation produces computing errors.
In character relational expressions, less than means precedes in the ASCII collating sequence,
and greater than means follows in the ASCII collating sequence.
'ABCD' .LT. 'ACCD'
If two strings in a relational expression are not the same length, the shorter one is padded on the
right with spaces until the lengths are equal.
'PQRSTU' .EQ. 'PQR '
'PQRSTU' .EQ. 'PQR '

38 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Logical Operators
Logical operators are used to combine relational expressions into more complex logical
expressions. Valid logical operators include:
.OR. logical or
.AND. logical and
Periods must appear before and after the expression.

Expressions
Expressions are variables, constants, and operators combined to make statements. The format of
most Eden expressions is the same as in FORTRAN. Valid expressions include:
Replacement simple arithmetic replacement
Call executes primitives or subroutines
Do while execute loop
Indexed Do execute loop
If - then - else conditional execution

For every IF statement, there must be an ENDIF statement to end the expression. You
can nest up to five If-then-else expressions within an Eden module.
For the Replacement, Do while, and If-then-else expressions, you can use parentheses to alter the
precedence of calculation.

Replacement Statements
Replacement statements are used to set variables or perform calculations. The following list
illustrates the various Replacement statements:
thickness = 25.
vessel_od = DIMENSION_1
test = test + 1
tutor_name = 'EXCH1'
table_name = 'BLT' // GEN_TYPE // PR_RATING // '5'
dim_a = (dim_b + dim_c) * 2. + dim_d

Plant Design System (PDS) Piping Eden Interface 39


Eden Language Structure

Call Statement
Call statements are used to execute system primitives. The syntax for the Call statement is:
Call "primitive" or "subroutine" (argument 1, argument 2, ...)

Example
Call Place_Cylinder_With_Capped_Ends (diameter, length)

Do While Statement
The Do While statement is used to form indefinite loops. The condition of a Do While
statement must equal a logical value (either true or false). The body of the Do While statement
will be repeatedly executed as long as the logical expression remains true.

Example
The following Do While loop places four cylinders end to end. The pretested loop condition
fails on the fifth try (if i equals 4), and control transfers to the message display routine.
i = 0
do while (i .LT. 4)
i = i + 1
Call Draw_Cylinder_With_Capped_Ends (diam, leng)
enddo
Call Display_Message ('Out of loop now')

Indexed Do Statement
The Indexed Do statement allows you to form loops that execute a specified number of times.
This number is determined by an initial, a terminal, and an incremental parameter of a control
variable. The syntax for the Indexed Do statement is:
do V = v1, v2, v3
.
.
.
enddo
where
V is a control variable (non-string type)

v1 are constants or variables that evaluate to the initial, terminal, and


v2 incremental parameters respectively. v3 is optional. If v3 is omitted, the
v3 system assumes that the incremental parameter is one.
V3 cannot be negative.

Example
In this example, I is set to 1. The body of the loop is then executed. I increments by 2 each
time the cycle is complete, and the value 3 is checked against the terminator 20. The iteration

40 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

continues as long as I is less than or equal to 20. When the iteration is greater than 20, the loop
ends.
do I = 1, 20, 2
.
.
.
enddo

If - then - else Statement


If - then - else statements are used when a group of statements is to be conditionally executed.
The Eden syntax is the same as FORTRAN syntax.
if (condition) then
.
.
.
else
.
.
.
endif

Example
if (DIMENSION_1 .gt. 24.) then
thk = thk + .125
else
thk = thk + .250
endif
An If statement of the form if (condition) is not valid. In Eden, all If statements must be
of the form If (condition) then. The else statement is optional.

Functions
Eden provides several functions for performing common mathematical operations. These
functions can be used within replacement statements.
The following functions must contain the parentheses.
DSQRT () square root
DABS () absolute value
DSINR () sine of an angle in radians
DCOSR () cosine of an angle in radians
DTANR () tangent of angle in radians
DSIND () sine of an angle in degrees
DCOSD () cosine of an angle in degrees
DTAND () tangent of an angle in degrees
DASINR () arcsine returned in radians
DACOSR () arccosine returned in radians

Plant Design System (PDS) Piping Eden Interface 41


Eden Language Structure

DATANR () arctangent returned in radians


DASIND () arcsine returned in degrees
DACOSD () arccosine returned in degrees
DATAND () arctangent returned in degrees

Example
The following list illustrates a few possible Eden functions:
length = hypot * DSIND (30.)
side = DTANR (pi/2) + 32.
hypot = DSQRT (a**2 + b**2)
angle = DATAND (side1/side2)

Primitives
Primitives are system-defined routines that perform specific functions for symbol definition.
Convert NPD to Subunits (on page 43)
Define Active Orientation (on page 43)
Draw Cone (on page 45)
Draw Cylinder (on page 45)
Draw Eccentric Cone (on page 46)
Draw Projected Rectangle (on page 47)
Draw Projected Triangle (on page 47)
Draw Semi-Ellipsoid (on page 48)
Draw Sphere (on page 49)
Draw Torus (on page 50)
Assign Connect Point (on page 50)
Assign Generic Tap (on page 51)
Assign Tap (on page 51)
Compute Perpendicular Vector (on page 52)
Define Connect Point Geometry (on page 53)
Display Tutorial (on page 54)
Draw Cone With Capped Ends (on page 54)
Draw Cylinder With Capped Ends (on page 55)
Draw Eccentric Cone With Capped Ends (on page 55)
Draw Hexagon (on page 56)
Draw Mitered Torus (on page 57)
Draw Octagon (on page 58)
Draw Parametric Shape (on page 58)
Draw Torus With Capped Ends (on page 59)
Get Physical Data (on page 60)
Move Along Axis (on page 60)
Move By Distance (on page 61)
Move To Connect Point (on page 61)
Place COG Location (on page 62)
Place Connect Point (on page 62)
Prompt to Orient Operator (on page 62)

42 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Read Table (on page 63)


Rotate Orientation (on page 64)

Convert NPD to Subunits


The Convert NPD to Subunits primitive converts the coded input value and returns its Real*8
equivalent. This primitive is often used for converting the nominal piping diameter that is
stored in the database.
Metric files base the diameter in millimeters. Imperial files store the nominal piping
diameter as NPD 1/32 + 5000. Thus,
1 inch NPD is 5000 + 32 * 1 = 5032
20 inch NPD is 5000 + 32 * 20 = 5640
For Eden symbols in Piping that use imperial and metric files, hard-coding the dimensions is not
recommended. A dimension entered as 5 inches and placed in an Imperial file is interpreted as 5
inches. However, the same value placed in a Metric file is interpreted as 5 millimeters. Instead
of hard coding, load the dimensions in a table to allow the piping software to convert the
dimensions to the correct values.
This primitive does not perform unit conversions. If American standard pipe sizes are being
used in a Metric file, this primitive will return the NPD in inches.

Syntax
Call Convert_NPD_To_Subunits (coded_input, npd)

Options
coded_input The nominal pipe diameter in internal or coded units. This variable
must be the keyword Nom_Pipe_D_n.
npd The nominal piping diameter in subunits.

Examples
In this example, the Real*8 equivalence of the coded NPD in Nom_Pipe_D_1 is returned in
Pipe_Dia_1.
Call Convert_NPD_To_Subunits (Nom_Pipe_D_1, pipe_dia_1)
All NPDs used internally in the software are in encoded form. Most table lookups based
on NPDs require the input to be in encoded form. However, if a nozzle size is needed in a
calculation, it must be converted from internal units to subunits.

Plant Design System (PDS) Piping Eden Interface 43


Eden Language Structure

Define Active Orientation


The Define Active Orientation primitive allows you to define the active orientation by
specifying the directions of the primary and secondary axes. The orientation is defined in the
local coordinate system by the symbol. This definition has no bearing on the design file
coordinate system.
In Piping, this primitive defines the current flow centerline and a direction that is normal to the
flow centerline in terms of the connect point orientation (defined by the symbol's connect point
geometry) in order to place graphic shapes.

Specific keywords are available for specifying either the primary axis or the secondary axis of
the connect point's orientation.

Syntax
Call Define_Active_Orientation (primary, secondary)

Options
primary Variable that defines the flow centerline or primary direction.
secondary Variable that defines the line perpendicular to the flow centerline or
secondary direction.
Valid keywords for the primary and secondary variables include:
CP_PRIMARY_n
CP_SECONDARY_n
CP_NORMAL_n
For the Piping keywords, n is the connect point number.
If the initial active orientation for a symbol definition has the primary pointing east and
the secondary pointing north, the normal axis of the active orientation would be up. (Normal
axis can be found using the right-hand rule.)

Restrictions
§ In Piping, you must have already called Place Connect Point (CPn). For operator, initial
point of operator is assumed CP1.
§ In Piping, the two variables used must have the same connect point number.

Example
In the following example, the secondary orientation at connect point 2 becomes the new active
primary orientation at the active point, and the primary orientation at connect point 2 becomes
the active secondary.
Call Define_Active_Orientation (CP_Secondary_2, CP_Primary_2)

44 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Draw Cone
The Draw Cone primitive places a cone where the first end is at the current active point and the
second end is at a location computed by the system given the input length along the primary
axis. You must define the diameters of each end of the cone with separate variables.

Syntax
Call Draw_Cone (length, diameter_1, diameter_2)

Options
length The length of the cone (A), which can be positive or negative.
diameter_1 The diameter of the cone (B) at the active point.
diameter_2 The diameter of the cone (C) at the end opposite the active
point.

Draw Cylinder
The Draw Cylinder primitive places a cylinder where the first end is at the current active point
and the second end is at a location computed by the system along the primary axis. You must
specify the diameter and the length of the cylinder. The active point will be moved to the
opposite end.

Syntax
Call Draw_Cylinder (length, diameter)

Options
length The length (A) of the cylinder.
diameter The diameter (B) of the cylinder.

Plant Design System (PDS) Piping Eden Interface 45


Eden Language Structure

If cyl_len is positive, a cylinder of the specified length is drawn. If cyl_len is zero,


nothing happens. If cyl_len is negative, the active point is moved the specified negative
distance, but the cylinder is not drawn.

Draw Eccentric Cone


The Draw Eccentric Cone primitive allows you to place an eccentric truncated cone. The first
end is at the current active point. The second end is at a location the system computes by
moving from the current active point along the current flow centerline by the length of the cone
and along the secondary axis by the negative of the eccentric offset. You must specify the
eccentric offset and the diameters of both ends of the eccentric cone.

Syntax
Call Draw_Eccentric_Cone (length, eccentric_offset, diameter_1,
diameter_2)

Options
length Cone length (A).
eccentric_offset Eccentric cone offset. This is the center-to-center distance between
cone endpoints as measured positive going against the secondary.
diameter_1 Diameter (B) at active point.
diameter_2 Diameter (C) at the opposite end.

46 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Draw Projected Rectangle


The Draw Projected Rectangle primitive allows you to place a component with a rectangular
cross section. The current active point must be moved to the center of the rectangle, and the
primary axis must point in the direction of the projection. The secondary axis orients the side of
length1.

You must specify the projected height, projected width, and projected length dimensions.

Syntax
Call Draw_Proj_Rectangle (length1, length2, projection)

Options
length1 Length of the rectangle side (C) parallel to the secondary axis of the
active orientation.
length2 Length of the rectangle side (B) parallel to the normal axis of the active
orientation.
projection Length of the projection (A).

Restrictions
§ The active point must be located at the center of geometric shape of the rectangle.
§ The refresh tee must point inward (the direction of projection).

Draw Projected Triangle


The Draw Projected Triangle primitive allows you to place a component that has an isosceles
triangular cross-section. The current active point must be moved to the center of the
cross-section. The primary axis points in the direction of the projection, and the secondary axis
points to the base of the triangle. You must specify the side length, base length, and projected
length dimensions.

Plant Design System (PDS) Piping Eden Interface 47


Eden Language Structure

Syntax
Call Draw_Proj_Triangle (project_side_length, project_base_length,
project_length)

Options
project_side_length Length of the side (A) of the triangle.
project_base_length Length of the base (B) of the triangle.
project_length Length of the projection (C).

Restrictions
§ The active point must be located at the center of geometric shape of the triangle.
§ The refresh tee must point inward.
Make sure that dimension A is greater than 1/2 of dimension B, otherwise, errors will
result.

Draw Semi-Ellipsoid
The Draw Semi-Ellipsoid primitive allows you to place a semi-ellipsoid, where the center is at
the current active point. You must specify the diameter of the major axis and the radius of the
minor axis.
The system does not update to a new active orientation after placement of the
semi-ellipsoid.

48 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Syntax
Call Draw_Semi_Ellipsoid (major_axis_diameter, minor_axis_radius)

Options
major_axis_diameter Variable defining the major axis diameter (A).
minor_axis_radius Variable defining the minor axis radius (B).

Draw Sphere
The Draw Sphere primitive allows you to place a sphere where the center of the sphere is at the
current active point. You must specify the radius, and the radius must be greater than or equal
to (³) 1/64 inches.
The refresh tee and orientation will not change after placement.

Syntax
Call Draw_Sphere (radius)

Options
radius Variable (A) defining the sphere radius.

Plant Design System (PDS) Piping Eden Interface 49


Eden Language Structure

Draw Torus
The Draw Torus primitive allows you to place a torus from the current flow centerline to the
current direction of the secondary axis using the bend radius, bend angle, and diameter you
specify. This call changes the active orientation.

The torus diameter must be greater than or equal to (³) 1/32 inches, and the bend radius diameter
must be greater than or equal to (³) 1/32 inches and greater than (>) 1/2 the torus diameter.

Syntax
Call Draw_Torus (radius, angle, diameter)

Options
radius The bend radius of the torus (B) as measured from the origin of the
torus to its centerline.
angle The bend angle of the torus (C).
diameter The diameter of the torus (A).

Assign Connect Point


The Assign Connect Point primitive allows you to assign the connect point data for one color
(GREEN or RED) in the Piping Job Specification to a pressurized connect point. This primitive
assigns to connect points the properties in the specification associated with the color assigned
with the connect point.

Syntax
Call Assign_Connect_Point (color, CPn)

Options
color RED - small line size.
GREEN - large line size.
CPn Connect point number.

50 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Restrictions
§ One component can have up to five connect points including up to two tap points, for a total
of five connect points per component.
§ You must assign all the connect points for a component before you call the physical data
routine. Once you make another call, Eden assumes that there are no more connect points
associated with the symbol. Any connect points assigned after the subroutine call are
considered illegal.
To ensure that the connect points are assigned before another call is made, place the
call to assign connect points in the beginning of the Symbol Processor module.

Examples
§ The following example assigns GREEN properties to connect point 1.
Call Assign_Connect_Point (GREEN,CP1)
§ The following example assigns RED properties to connect point 2.
Call Assign_Connect_Point (RED, CP2)

Assign Generic Tap


The Assign Generic Tap primitive allows you to assign a connect point as a tap, but still to go
to the spec for connect point properties instead of the Tap Properties Table.
This routine is needed because of limited connect point geometry types in ISOGEN. Refer to
the ISOGEN Interface User's Guide for more information. This primitive should be used only
for speciality items.

Syntax
Call Assign_Generic_Tap (cp_type, CPn)

Options
cp_type GREEN or RED
CPn Connect point number.

Example
The following example assigns GREEN properties to connect point 4, but is by definition a tap.
Call Assign_Generic_Tap (GREEN, CP4)

Plant Design System (PDS) Piping Eden Interface 51


Eden Language Structure

Assign Tap
The Assign Tap primitive allows you to define a pressurized connect point as a tap. The
system uses the nominal piping diameter you specified for the tap and the connect point data
from the Tap Properties Table of the Piping Job Specification.

§ The Assign Tap command applies only to components that have the geometry type of
ORIFICE_FLANGE.
§ You must assign all connect points and the tap_diameter before assigning a tap.

Syntax
Call Assign_Tap (tap_diameter, CPn)

Options
tap_diameter Diameter of the tap.
CPn Connect point number.

Example
The following example assigns a tap at connect point three with a diameter of two inches.
tap_diameter = 2.0
Call Assign_Tap (tap_diameter, CP3)

Compute Perpendicular Vector


The Compute Perpendicular Vector primitive computes orientation vectors where the primary
axis is perpendicular to the primary vector of connect point 1 and in the plane of the secondary
axis, and the new secondary is in the same direction as the primary of connect point 1.
This is used mainly for RWELDS and RPADS so that the cylinder is flat on the pipe. You can
use any unused connect point for storage.
All connect points should be placed before this computed orientation is used because this
could cause a problem when connect point geometry is checked at placement time.

Syntax
Call Compute_Perpendicular_Vector (CPn, CP_Primary_n, CP_Secondary_n)

Options
CPn Connect point number (stored temporarily).
CP_Primary_n Variable used to store computed primary.
CP_Secondary_n Variable used to store computed secondary.

Example
Call Compute_Perpendicular_Vector (CP5, CP_Primary_5, CP_Secondary_5)
Call Move_By_Distance (f_to_c_dim_1)

52 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Call Define_Active_Orientation (CP_Primary_5, CP_Secondary_5)


Call Draw_Cylinder (length, diameter)

Define Connect Point Geometry


The Define Connect Point Geometry primitive allows you to define the connect point geometry
from the component being placed. Specific keywords are available for specifying the type of
connect point geometry. Connect point geometry is used at placement time to determine that all
connect points are correct.
Using Define Connect Geometry, you can define the orientation for each connect point and
check that the correct number of connect points have been defined.

Syntax
Call Define_Connect_Point_Geometry (geometry_type)

Options
geometry_type Name of specific geometry of symbol. Valid geometries
include:
LINEAR CROSS OPERATOR
ELBOLET LATROLET
BEND OLET
ANGLE_VALVE SINGLE
ECC_REDUCER SINGLE_CP
BRANCH_TEE RET_180
BRANCH_LAT ORIFICE_FLANGE
BRANCH_WYE GENERIC_COMPONENT
BRANCH_2WYE NON_RADIAL_BRANCH
OPERATOR

Restrictions
§ Each component can have only one geometry type.
§ The number of connect points for the geometry type defined here must match the number in
the Symbol Processor module.
§ The geometry type is limited to the possible geometries associated with the component being
placed.

Example
The following example calls the connect point geometry for a bend that tests to see that all
connect points are defined for a bend geometry type.
Call Define_Connect_Point_Geometry (BEND)

Plant Design System (PDS) Piping Eden Interface 53


Eden Language Structure

Display Tutorial
The Display Tutorial primitive allows you to display a tutorial from within an Eden module in
order to obtain dimensions from the user key-ins. This routine should not be called in
Interference Graphics modules.

Syntax
Call Display_Tutorial (Tut_Name)

Options
Tut_Name The form as it appears in the forms directory. You are limited to six
characters.

Example
In this example, the tutorial for operator 33C dimensions is displayed. You can now enter the
needed dimensions.
Call Display_Tutorial ('VOP33C')

Draw Cone With Capped Ends


The Draw Cone With Capped Ends primitive allows you to request the placement of a cone
with capped ends, where the first end is at the current active point and the second end is at a
location computed by the system.

Syntax
Call Draw_Cone_With_Capped_Ends (length, diameter_1, diameter_2)

Options
length Variable (A) that defines the length of the cone.
diameter_1 Variable (B) that defines the diameter at the active point.
diameter_2 Variable (C) that defines the diameter at the opposite end of the of
the cone.

Example
A = 5
B = 2
C = 1
Call Draw_Cone_With_Capped_Ends (A, B, C)

54 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Draw Cylinder With Capped Ends


The Draw Cylinder With Capped Ends primitive allows you to place a cylinder with capped
ends, where the first end is at the current active point and the second end is at a location
computed by the system. You must specify the diameter of the cylinder and the length.

Syntax
Call Draw_Cylinder_With_Capped_Ends (length, diameter)

Options
length Variable (A) defining the cylinder length.
diameter Variable (B) defining the cylinder diameter.

Example
The following example draws a cylinder with a length of 5.0 and a diameter of 1.0.
If cyl_len is positive, a cylinder of the specified length is drawn. If cyl_len is zero,
nothing happens. If cyl_len is negative, the active point is moved the specified negative
distance, but the cylinder is not drawn.
A = 5.0
B = 1.0
Call Draw_Cylinder_With_Capped_Ends (A, B)

Draw Eccentric Cone With Capped Ends


The Draw Eccentric Cone With Capped Ends primitive allows you to place an eccentric
truncated cone with capped ends. The first end is at the current active point. The second end is
at a location the system computes by moving from the current active point along the current flow
centerline by the length of the cone and along the secondary axis by the negative of the eccentric
offset. You must specify the eccentric offset and the diameters of both ends of the eccentric
cone.

Plant Design System (PDS) Piping Eden Interface 55


Eden Language Structure

Syntax
Call Draw_Eccentric_Cone_With_Capped_Ends (length, offset, diameter_1,
diameter_2)

Options
length Variable (A) defining the cone length.
offset Variable defining the eccentric cone offset.
diameter_1 Variable (B) defining the diameter at the active point.
diameter_2 Variable (C) defining the diameter at the opposite end.

Example
A = F_to_f_Dim - Thickness_1 - Thickness_2
offset = 0.5 * (C - B)
Call Draw_Eccentric_Cone_With_Capped_Ends (A, offset, B, C)

Draw Hexagon
The Draw Hexagon primitive draws a hexagon of the specified length and depth.

Syntax
Call Draw_Hexagon (length, depth)

Options
side_length Side B is the side length.
proj Side A is the length of the projection.

Example
The following example draws a hexagonal shape with the specified diameter and depth.
A = Dimension_2
B = Dimension_3
Call Draw_Hexagon (B, A)

56 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Draw Mitered Torus


The Draw Mitered Torus primitive allows you to place a mitered torus. The system emulates
the mitered torus by placing cylinders representing miters. You must must specify the number
of miters. The diameter must be greater than or equal to (³) 1/32 inches, and the bend radius
must be greater than or equal to (³) 1/2 the diameter.

Syntax
Call Draw_Mitered_Torus (radius, angle, diameter, number)

Options
radius Variable (A) defining the torus bend radius.
angle Variable (B) defining the torus bend angle.
diameter Variable (C) defining the torus diameter.
number Number of cuts to generate a miter.

Example
The following example draws a torus with the bend radius, bend angle, and diameter equal to the
outside diameter of the body at connect point 1.
A = bend_radius
B = bend_angle
C = body_OD_1
Call Draw_Mitered_Torus (A, B, C, 2)

Plant Design System (PDS) Piping Eden Interface 57


Eden Language Structure

Draw Octagon
The Draw Octagon primitive allows you to draw an octagon of the specified width and depth.

Syntax
Call Draw_Octagon (width, projection)

Options
width Distance (A) between the two opposite sides.
projection Depth (B) of shape.

Example
The following example draws an octagonal shape given the width and depth.
A = Dimension_2
B = Dimension_3
Call Draw_Octagon (A, B)

Draw Parametric Shape


The Draw Parametric Shape primitive allows you to reference a user-defined module that
draws the graphics for the parametric shape of the component being placed. The module name
is limited to a maximum of 28 characters.
You must assign the appropriate graphic name to the parametric shape that you want to
draw.

Syntax
Call Draw_Parametric_Shape (parametric_shape)

Options
parametric_shape Name of the module that you defined to draw the graphics. The
name must be set before calling the module.

58 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Example
The following example calls the module that places the graphics, connect points, and so forth for
parametric shape F47.
parametric_shape = 'F47'
Call Draw_Parametric_Shape (parametric_shape)
OR
Call Draw_Parametric_Shape ('F47')

Draw Torus with Capped Ends


The Draw Torus with Capped Ends primitive allows you to place a torus with capped ends
from the current flow centerline to the current direction of the secondary axis using the bend
radius, bend angle, and the diameter you specify.

The diameter must be greater than or equal to (³) 1/32 inches and the bend radius diameter must
be greater than or equal to 1/32 inches and > 1/2 torus diameter.

Syntax
Call Draw_Torus_with_Capped_Ends (radius, angle, diam)

Options
radius Variable (B) defining the bend radius.
angle Variable (C) defining the angle of the torus.
diam Diameter (A) of the torus.

Example
The following example draws a torus with capped ends with a radius equal to the bend radius, at
an angle equal to the active bend_angle, with a diameter equal to the outside diameter of the
body at connect point 1.
Call Draw_Torus_with_Capped_Ends (bend_radius, bend_angle, body_OD_1)

Plant Design System (PDS) Piping Eden Interface 59


Eden Language Structure

Get Physical Data


The Get Physical Data primitive allows you to reference a user-defined module or user-selected
standard (Metric or English) that defines the physical data for the component being placed. The
name of the module must be less than or equal to (£) 28 characters.
Set the physical data source variable equal to the name of the physical data module you
are calling.

Syntax
Call Get_Physical_Data (physical_data_source)

Options
physical_data_source Name of the physical data module set previous to this
primitive.

Examples
§ The following example sets the variable physical_data_source to F47_AMS and then calls
the routine which accesses the physical data:
physical_data_source = 'F47' // STANDARD_TYPE
Call Get_Physical_Data (physical_data_source)
§ The following example sets a variable named physical_data_source to F47_AMS and then
calls the routine which accesses the physical data:
physical_data_source = 'F47_AMS'
Call Get_Physical_Data (physical_data_source)
§ The following example calls the routine which accesses the physical data without defining a
variable for the physical data source:
Call Get_Physical_Data ('F47_AMS')

Move Along Axis


The Move Along Axis primitive allows you to move a specified distance along a specified axis.
It is useful for symbols such as olets that do not have graphics that start at the point of
connection.

Syntax
Call Move_Along_Axis (distance, axis)

Options
distance Negative or positive distance to move.
axis Axis to move along: PRIMARY, SECONDARY, or
NORMAL.

60 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Examples
In this example, after obtaining radius of pipe and diameter of cylinder, move along the active
secondary axis to the edge of the pipe and place cylinder graphics for an olet.
cyl_diam = Dimension_1
radius = (Dimension_2 - cwht) + 0.5
Call Move_Along_Axis (-radius, SECONDARY)
Call Draw_Cylinder (radius, cyl_diam)

Move By Distance
The Move By Distance primitive allows you to move from the current active point along the
current flow centerline by a distance (positive or negative). The distance you specify must be a
real number in floating point form.

Syntax
Call Move_By_Distance (distance)

Options
distance Variable name for the distance along the flow centerline.

Examples
§ The following example moves the active point by a distance equal to the offset of connect
point 2:
Call Move_By_Distance (CP_Offset_2)
§ The following example moves the active point by a distance equal to the face to center
dimension for connection point 2 and in the opposite direction:
Call Move_By_Distance (-F_to_C_Dim_2)

Move To Connect Point


The Move To Connect Point primitive allows you to move from the current active point to the
location of a connect point that has been previously placed in the symbol description. The
connect point assumes the orientation of the new connect point location.
You must call the Place Connect Point primitive before calling
Move_To_Connect_Point.

Syntax
Call Move_To_Connect_Point (CPn)

Options
CPn Variable defining the connect point number (n = 0,1,2,3,4,5).

Example
In the following example, the call moves the active point to connect point 1:
Call Move_To_Connect_Point (CP1)

Plant Design System (PDS) Piping Eden Interface 61


Eden Language Structure

Place COG Location


The Place COG Location primitive allows you to define the location of the center of gravity for
either dry or wet (operational) conditions. Specific keywords are available for specifying the
basis for the center of gravity location. When you call this subroutine, the system assigns the
COG_Type to the Active_Point location.

Syntax
Call Place_COG_Location (COG_type)

Options
COG_type Variable defining the center of gravity type.

Examples
The following examples display the three types of centers of gravity:
Call Place_COG_Location (DRY_COG)
Call Place_COG_Location (WET_COG)
Call Place_COG_Location (OP_COG)

Place Connect Point


The Place Connect Point primitive allows you to define the location and the orientation of the
component center, a pressurized connect point, or a tap and place that point.
Specific keywords are available for specifying the connect point identification of the component
center, the pressurized connect point or the tap. When you call Place Connect Point, the
location of the Active_Point is assigned to the connect point. You must place all of the connect
points that were assigned in the symbol processor module.

Syntax
Call Place_Connect_Point (CPn)

Options
CPn Variable defining the connect point (n = 0,1,2,3,4,5).

Example
The following example places a connect point at the current location with current orientation:
Call Place_Connect_Point (CP0)

62 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

Prompt to Orient Operator


The Prompt to Orient Operator primitive allows you to prompt the operator to orient a valve
operator. This request is only required for non-symmetrical valves, where the secondary axis
cannot be used to define the valve operator orientation. The message for the prompt is
determined by referencing a message in the PDS Piping Design Message Library. Do not call
this primitive from the interference checking modules.

Syntax
Call Prompt_to_Orient_Operator (prompt)

Example
Prompt = 1.0
Call Prompt_to_Orient_Operator (prompt)

Read Table
The Read Table primitive allows you to read data from a table in the Piping Job Spec Table
Library or Dimension Table Library. Call this primitive from the Physical Data Definition
module.
Refer to the Reference Data Manager (PD_DATA) Reference Guide for information on the valid
naming formats for tables and the valid units that can be used in tables.
Use the input and output arrays that are defined in the Data Dictionary.
Table names are limited to 46 characters. You must assign input values before using this
primitive; otherwise, the system sets the input values to zero. The syntax for the Read Table
primitive is:
Call Read_Table (table_name, input, output)

Options
table_name Variable defining the table name.
input Variable defining the input used to access data in the table. This variable ranges
from input_1 to input_10.
output Variable defining the output read from the table. The variable range is from
output_1 to output_8.

Example
The following example sets the global variable, Table_Name_A, equal to the name of the table
to be called, then sets input_1 equal to the nominal pipe diameter at connect point 1 and input_2
to the nominal pipe diameter at connect point 2, and then calls the routine that reads the output
from the table. The face to center dimension is output 3 from the table read.
You do not need to put the underbar in the table name. Concatenation inserts the
underbar when forming the table names.
Table_Name_A = Item_Name // Geo_Ind_Std // Term_Type_1
Input_1 = Nom_Pipe_D_1
Input_2 = Nom_Pipe_D_3

Plant Design System (PDS) Piping Eden Interface 63


Eden Language Structure

Call Read_Table (Table_Name_A, input, output)


F_to_C_Dim_1 = Output_3

Rotate Orientation
The Rotate Orientation primitive allows you to rotate the active orientation about any axis and
with any angle.

Syntax
Call Rotate_Orientation (angle, axis)

Options
angle Angle of rotation in degrees.
axis Axis of rotation: primary, secondary, or normal.

Example
In the following example, after the primitive is executed, the primary and normal are rotated 90
degrees about the secondary axis:
Call Rotate_Orientation (angle, SECONDARY)

Connect Point Geometry


The following is a list of connect point geometries for specific piping components:
§ A reducing component with two connect points, such as a reducer or a reducing bend, must
be defined by the convention that the nominal piping diameter at connect point one is the
larger of the two nominal piping diameters.
§ By PDS definition, flanges should be defined in the Piping Graphic Commodity Library
with the green connect point representing the flanged connect point and the red connect
point representing the non-flanged connect point.
§ By PDS definition, for a symmetrical valve, the primary axis of the Refresh Tee determines
the centerline of the valve body, and the secondary axis determines the centerline of the
valve's operator (if there is an operator in the symbol definition). If the valve body is
non-symmetrical and the secondary axis is needed to orient the valve body, the user must be
prompted in the symbol definition to orient the centerline of the valve operator.
The following list contains connect point geometry keywords, their definitions and example
diagrams.
You must define the connect point geometry type before placing any connect points.
LINEAR Any component that has all connect points along one vector, such
as a gate valve or a weld-neck flange.

64 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

ELBOLET Elbolets or any component that has a tap that lies along the same
vector as the one formed by CP1 and CP0 or CP2 and CP0.

BEND Direction-change components where the angle of change is not


necessarily 90 degrees.

ANGLE_VALVE Valves that have a 90 degree direction change.

Plant Design System (PDS) Piping Eden Interface 65


Eden Language Structure

ECC_REDUCER Eccentric Reducing components. The connect points are offset


along the secondary axis. The vectors coming into and leaving
the component remain parallel.

BRANCH_TEE Branch component where CP1 and CP2 are along the same
primary vector. CP3 is along the vector of the secondary.

BRANCH_LAT Branch component that has the branch leg coming off at a variable
angle from the primary. CP1 and CP2 are along the primary, and
CP3 is along the secondary.

66 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

BRANCH_WYE Branch component where CP1 is on the primary axis; CP2 and
CP3 are both on vectors that are offset from the primary vector by
45 degrees in either direction. The vectors created by CP2 and
CP0 or CP3 and CP0 are perpendicular.

BRANCH_2WYE A 4-connect-point branch that has the same general layout as the
BRANCH_WYE, but instead of the line splitting off in two
directions, a third line continues on the flow centerline.

CROSS A 4-connect-point branch that is formed on 2 perpendicular


vectors. CP0 is where the 2 vectors cross.

Plant Design System (PDS) Piping Eden Interface 67


Eden Language Structure

OPERATOR Any item that does not have connect points. Operators have no
connect points.

LATROLET Olets that can be placed at a variable angle to the primary or flow
LATROLETcenterline, such as reinforcing pads and reinforcing
welds.

OLET Olets that are perpendicular to the flow centerline.

68 Plant Design System (PDS) Piping Eden Interface


Eden Language Structure

SINGLE_CP Items with 1-connect-point, such as a cap.

RET_180 U-shaped components that must be 180 degrees.

ORIFICE_FLANGE Linear component that has 1 or 2 taps that are perpendicular to the
flow centerline.

Plant Design System (PDS) Piping Eden Interface 69


Eden Language Structure

GENERIC_COMPONENT Specialties, instruments, and pipe supports where the geometry is


not rigidly defined (Not to be used with piping components).

The refresh tee must point inwards (to CP0) before you define each connect point
(CP#). Not all geometric configurations associated with this type may be defined for ISOGEN.

70 Plant Design System (PDS) Piping Eden Interface


SECTION 4

Creating a New Piping Component

Eden Setup
Before a new piping component can be defined through Eden, follow these steps:
1. Create a directory path for symbol definition files
§ Log in to the server where the PDS project resides.
§ Create a piping symbols directory. If the new components will be shared by two or
more projects, the new directory could look like this:
c:\users\default\projects\custom\pipesym
where custom is an optional directory where customized libraries and symbol definition
directories for all projects can be kept.
§ If the customized libraries and components will be specific to one project, the following
alternative can be used:
c:\users\default\projects\proj1\pipesym
where proj1 is the directory of an existing project.
2. Create a directory path for dimension and spec tables.
§ Log in to the server where the PDS project resides.
§ Create the dimension and spec tables directory.
c:\users\default\projects\custom\tbls
OR
c:\users\default\projects\proj1\tbls
3. Create a directory path for graphic data and table libraries, and copy them into this directory.
§ Log in to the server where the PDS project resides.
§ Create a library directory.
c:\users\default\projects\custom\libs
OR
c:\users\default\projects\proj1\libs
§ Copy the standard delivered libraries into the library directory.
copy c:\win32app\ingr\rdusrdb\*.l*
c:\users\default\projects\custom\libs\
copy c:\win32app\ingr\pdshell\lib\*.l*
c:\users\default\projects\custom\libs\
OR
copy c:\win32app\ingr\rdusrdb\*.l*
c:\users\default\projects\proj1\libs\
copy c:\win32app\ingr\pdshell\lib\*.l*
c:\users\default\projects\proj1\libs\
If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used.

Plant Design System (PDS) Piping Eden Interface 71


Creating a New Piping Component

4. Access the Reference Database Defaults form and enter the node name and path to the
directories previously defined.
§ Access the pdshell form.
§ Select a project from the form.
§ Select the Reference Data Manager option.
§ Select the Default Project Control Data option.
§ Enter the path and node name to the directories previously created.
Piping Eden Path: c:\users\default\projects\custom\pipesym\
Piping Eden node: <server name>
Dim/Spec Table Path: c:\users\projects\custom\tbls\
Dim/Spec Table node: <server name>
§ Make sure that the Piping Spec definitions are specified. If a U.S. standards project is
being used, the following data should appear:
Piping Spec Path: c:\win32app\ingr\rdusrdb\spec_data\
Piping Spec node: <server name>
If working in a non-U.S. standards project, substitute rdusrdb with the rdb being used.
A detailed description of the Default Project Control Data option is provided on the
next few pages.
5. Access the Reference Database Management Data form, and define the node name and
directory path to the graphic data and table libraries. When testing new libraries in a live
project, it is recommended to enter them as "Not Approved."
§ Select Cancel on the Defaults form.
§ Select the Reference Database Management Data option.
§ Select the Default All Library Locations, and enter the library directory previously
created.
Network Address: <server name>
Directory: c:\users\default\projects\custom\libs
§ Make sure that the specifications are correct for each library (some of the default values
are incorrect). The following specifications are used for a U.S. standards project:
Piping Job Spec Table us_pjstb.l
Short Matl Description us_shbom.l
Long Matl Description us_lgbom.l
Specialty Matl Description us_spbom.l
Standard Note std_note.l
Label Description labels.l
Piping Assembly assembly.l
Graphic Commodity pip_gcom.l
Physical Data - U.S. Practice us_pcdim.l
If working in a non-U.S. standards project, see the rdb directory being used to find the
correct specifications.
To revise an entry, follow these steps:

72 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

§ Identify the library to be checked.


§ Place the cursor at the beginning of the "Specification" field.
§ Delete to the right of the cursor.
§ Enter the correct value and press the Enter key.
§ Accept the form.
A detailed description of the Reference Database Management option is provided on
the next few pages.

Reference Database Management Data


This option activates the Reference Database Management Data form used to define the file
names for Reference Database Files, graphic commodity data, dimension tables, and spec tables.
You can define both approved or unapproved RDB data for each item.

Operating Sequence
1. Select Reference Database Management Data from the Reference Data Manager form.

2. Select RDB File Type


Select the RDB file from the list of files. You can use the scroll arrows to scroll through the
listed files.
The system identifies the file for the selected field in the fields at the bottom of the form.
There are no default settings for these files; you must define the applicable file locations
before you can continue.
§ Material/Specification Reference Database — This field identifies the Material
Reference Database for the project. Refer to the Project Setup Manager in the Project
Administrator Reference Guide for more information on this database.

Plant Design System (PDS) Piping Eden Interface 73


Creating a New Piping Component

§ Piping Job Specification Tables Library — This field identifies the location of the Piping
Job Spec Table library.
§ Short Material Description Library — This field identifies the library which contains the
short bill-of-material description for all piping commodity items and the BOM
description addenda for taps.
§ Long Material Description Library — This field identifies the library which contains the
long BOM description for all piping commodity items. The long BOM description is
only used for requisitions.
§ Specialty Material Description Library — This field identifies the library which contains
the BOM description for engineered items, in-line instruments, and pipe supports. This
library tends to be customer-specific.
§ Standard Note Library — This field identifies the location of the standard note library.
§ Label Description Library — This field identifies the location for the label description
library.
§ Piping Assembly Library — This field identifies the location for the Piping Assembly
library. This library contains the symbol definitions for assemblies.
§ Graphic Commodity Library — This field identifies the library which contains the Eden
modules used to place components in the model.
§ Physical Data Tables Library — These fields identify the library files which contain the
physical data tables for a range of geometric industry standards.
§ Commodity Synonym Library — This field identifies the user-defined library which
contains the map for translating the default piping commodity names used in the P&ID
Task to names specified by the user in the Piping Job Specification.
§ Orthographic Drawing Borders — This field identifies the drawing border files to be
used when creating drawings. A set of border files are delivered to the directory
win32app\ingr\pddraw\border. You must specify which style of borders is to be used.
3. Key in any changes to the selected RDB files. Refer to Delivered Reference Data for a
listing of the delivered reference data files.
If you specify an unapproved file, the system will use the unapproved file for all Reference
Data Manager operations (such as revising entries in a library.)
Refer to the Project Data Manager in the Project Administrator Reference Guide for
information on setting the choice of data for a model file or drawing.
4. You can select Approved --> Not Approved to copy the approved definition of the selected
RDB file to the Not Approved fields. Select confirm to update the information.
Refer to the individual managers for information on posting the unapproved information to
the approved files.
5. You can select Default All Library Locations to define a default location for all approved
and all unapproved library files.
6. You can select Copy All Standard Libraries to copy the delivered library files to a
specified location.
7. Select Accept following each change to the reference data to accept the specified file
location.
— THEN —

74 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

Select Cancel to exit the form.

Default All Library Locations


This option assigns a default network address, pathname, and file specification to the various
Reference Database libraries for both the approved and unapproved libraries. You can override
any of these default specifications by selecting the appropriate library and keying in the file
information.
Specify Default Nodename
Key in a default network address and pathname to be used for all approved Reference Database
libraries and a network address and pathname to be used for all unapproved libraries.
The file specifications for all libraries are determined automatically on the basis of the industry
practice and the following naming convention.
When copying the Not Approved library to the Approved library, the copy will not
occur if the approved library is the most recent or has the same date as the unapproved library.

Library File name


Graphic Commodity Library pipe_gcom.l
Label Description Library labels.l
Standard Note Library std_note.l
Piping Assembly Library assembly.l
Piping Spec Table Library pjs_tbl.l
Short Material Description Library short_bom.l
Long Material Description Library long_bom.l
Specialty Description Library spclty_bom.l
Physical Data Library <standard>_pcdim.l

The text to be used for the <standard> is determined in the following manner.

Practice Prefix
U.S. Practice us
European - DIN din
European - British Standard bs
European - Practice A eua
European - Practice B eub
International - JIS jis
International - Australian aus
International - Practice A ina
International - Practice B inb

Plant Design System (PDS) Piping Eden Interface 75


Creating a New Piping Component

Company Practice cmp

Copy All Standard Libraries


This option copies the delivered Reference Database libraries from the applicable product
directories to the disk locations specified in the Reference Database Management data of the
Project Control database.
This option provides a new user with a simple method to create a Reference Database using
RDB products delivered by Intergraph. This is not intended for use in a production environment.
The following Reference Database libraries are copied from the PD Shell product.
Graphic Commodity Library Standard Note Library
Label Description Library Piping Assembly Library
The following Reference Database libraries are copied from the applicable Reference Database
product (such as rdusrdb or rddinrdb).
Physical Data Library Long Material Description
Library
Piping Spec Table Library Specialty Description Library
Short Material Description Library
The system also copies the applicable Table Revision Management Libraries for the Piping Spec
Table Library and Physical Data Libraries.
The text to be used for the standard is determined in the following manner.

Practice Prefix
U.S. Practice us
European - DIN din
European - British Standard bs
International - JIS jis
International - Australian aus
The list of available products is determined from the list of exported variables as specified in the
pds.cmd shell script. Therefore, this command presently searches for the following exported
variables:

Product Practice
RD_USRDB U.S. Practice
RD_DINRDB DIN
RD_BSRDB British Standards
RD_JISRDB JIS
RD_AUSRDB Australian

76 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

The file specification recorded in the Project Control Database, and not that of the library in the
delivered product, will be used for the destination library.
If the RDB product resides on a remote server (or workstation), you must manually
mount the directory that includes the RDB product and change the exported variable in the
pds.cmd shell script accordingly.
The system will display an error message for any of the following conditions.
§ Any of the active Reference Database libraries for the project are in use (locked). None of
the libraries are copied.
§ The network address for any of the active Reference Database libraries for the project is
undefined. None of the libraries are copied.
§ The network address and path name for any of the active Reference Database libraries for
the project cannot be mounted. None of the subsequent libraries are copied.

Default Project Control Data


This button allows you to define the default location for files commonly used by the project
(such as neutral files, report files, and library files). You can also set or change these file
locations during the operation of the applicable managers.

Operating Sequence
1. Select the field to be defined, and key in the location of the source files and the associated
node name.
Piping Eden Path / Node The default location for the Eden source files.

Plant Design System (PDS) Piping Eden Interface 77


Creating a New Piping Component

Eden Table Path / Node The default location of the Dimension Table and
Spec Table source files.
Piping Spec Path / Node The default location for the neutral files to be
used to load the Specification/Material
Reference Database.
Assembly Path / Node The default location for the Piping Assembly
Language source files.
Standard Note Library The default location for the Standard Note (code
list) source files.
Equipment Eden Path / The default location for the Equipment Eden
Node source files.
TDF Table Path / Node The default location for the Equipment tutorial
definition files.
Model Builder Path / Node The default location for the model builder
language source files.
2. Select the Confirm (Ö) button to accept any changes to the Project Control Data.

Extracting Sample Modules


When defining a new component, the first step is to have a sketch of the graphic symbol that will
be used to represent that component. Since the piping design software has various items, from
basic shapes to complex components, available for placement, the Eden modules for existing
components can be extracted and used as models to define new piping components. In order to
extract the Eden modules for an existing piping component, the item's model code must be
known. There are two ways of determining the model code for a component:

Method I
1. Find the component that would require the least number of modifications to make it appear
as the graphics that will represent the new item.
2. Retrieve the model code from the first line on the bottom of the title block. If more than
one "MC" are listed, the first one is all that is needed.

Method II
1. Enter the piping design environment.
2. Select the Place component command.
3. Place a component or instrument or specialty item that closely resembles the component to
be created.
4. Select the Diagnostics command.
5. Select the Review Component Placement option from the form.
The model code is the first item displayed in the message box.
The items that appear indented in the message box are the physical data definitions and
parametric shape definitions used for placing the component.

78 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

Once the model code is known, you can extract the symbol processor for the existing item. The
name of the symbol processor for a component is always the same as the model code. To obtain
all the data about a component, the physical data and parametric shape definitions called from
the symbol processor also need to be extracted. These modules may require slight to several
changes as well as the symbol processor to create a new component these changes depend on
how closely the existing item resembles the new one.
To extract the Eden modules for the symbol processor, physical data definition, and parametric
shape definition, follow these steps:
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Graphic Data Management option.
4. Toggle Full List to Sub-string.
5. Enter the name of the symbol processor, and press Enter.
6. Select the Extract option.
7. Identify the symbol processor from the form.
8. Accept the form.
9. Repeat Steps 5-8 for the physical data and parametric shape definitions.
10. Sub symbol processors (valve operators) can be extracted the same way as above.
11. Extracted modules are placed in the symbols directory defined by the user.
If the physical data definition for the new component requires dimensions or weight tables that
do not already exist, there are two ways of defining tables:

Method I
1. Find the table format that fits the input/output requirements for the new component.
2. Use a screen editor to create the new table(s) following the format requirements found.
3. Place the new table in the tbls (or equivalent) directory previously defined during setup.

Method II
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Physical Data Management option.
4. Identify the table library being used (U.S. practice, European - Din, and so forth) and accept
the form.
5. Toggle Full List to Sub-string.
6. Enter the name of a table used by the physical data definition of the existing component
referred to in the steps above, and press Enter.
7. Select the Extract option.
8. Identify the table from the form.
9. Accept the form.
The extracted table is placed in the tbls (or equivalent) directory previously defined during
setup.

Plant Design System (PDS) Piping Eden Interface 79


Creating a New Piping Component

10. Use a screen editor to modify the extracted table as necessary to contain the type of
input/output required by the new component.

Editing Modules
After the Eden modules for an existing component have been extracted, they can be used as
models or modified as needed to make them generate a new component. It is recommended that
the symbol processor be created first and the additional modules be created/edited as needed in
the same sequence, in which they are called from their parent modules.
If the new component will require the creation or editing of forms, turn to the end of this chapter
for information about using DBAccess.

Compiling New Modules


To compile newly created Eden modules, they should be loaded to the existing graphic
commodity library. New modules are compiled as they are loaded. If everything is correct in
the code and compilation is completed, the new modules are incorporated into the graphic
commodity library.

To load and compile new Eden modules, follow these steps:


1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Graphic Data Management option.
4. Select either of the Create options.
5. With the toggle set to Single, enter the name of the file containing the new Eden module. If
several modules have to be loaded at one time, write their file names to an ASCII file, and
enter the name of that file with the toggle set to List.
6. Accept the form.
7. If any errors are found during compilation, take note of what the errors are, edit the incorrect
module, and try reloading it.
8. Use the List option to verify that the new module(s) is/are part of the graphic commodity
library.

To load and compile new tables, follow these steps:


1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Physical Data Management option.
4. Select either of the Create options.
5. With the toggle set to Single, enter the name of the file containing the new table. If several
tables have to be loaded at one time, write their file names to an ASCII file, and enter the
name of that file with the toggle set to List.
6. Accept the form.
7. If any errors are found during compilation, take note of what the errors are, edit the incorrect
table, and try reloading it.

80 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

8. Use the List option to verify that the new table(s) was/were successfully loaded.

Revising Modules
After the Eden modules of a new component have been defined, the component should be placed
in the piping design environment to verify that it places correctly. Should the component not
place correctly, follow these steps to revise the incorrect Eden module:
1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Graphic Data Management option.
4. Toggle Full List to Sub-string.
5. Enter the name of the Eden module to be revised.
6. Select the Revise option.
7. Identify the Eden module to be revised from the form.
8. Accept the form.
9. Edit the file as needed and exit the editor. The system recompiles the file automatically.
10. Place the component in the design environment to verify fixes.

To revise an incorrect table, follow these steps:


1. Select the Reference Data Manager option.
2. Select the Graphic Data Library Manager option.
3. Select the Physical Data Management option.
4. Toggle Full List to Sub-string.
5. Enter the name of the table to be revised.
6. Select the Revise option.
7. Identify the table to be revised from the form.
8. Accept the form.
9. Edit the file as needed, and exit the editor.
10. Place the component using the revised table in the design environment to verify fixes.

Basic Use of Forms


DBACCESS is used to create the forms needed to interact with the operator. When a new
piping item is defined through Eden, some form customization may be required to make the new
item accessible to the users.
The fastest way to generate a new form or add a new option within an existing form is to copy
and edit a standard delivered form. The following general procedure can serve as a guideline
when creating a form that is to be linked to a new component:
1. Create a directory where forms can be worked on. This should be done on a workstation
that has PDS loaded or that at least has access to the server where PDS products are loaded.
2. Copy into the new forms directory a form used to place an existing component.
copy c:\win32app\ingr\pdshell\forms\PA001 forms\.

Plant Design System (PDS) Piping Eden Interface 81


Creating a New Piping Component

3. From the forms directory, access DBACCESS.


4. Select the Define Form option.
5. Identify the form to be modified from the list, and accept.
6. Use the Single Edit command to modify those gadgets on the form that only require minor
changes such as gadget numbers or text editing.
7. Use the Single Copy command followed by the Single Edit command to copy existing
options that should be left intact and edit the new options to perform the desired task. This
is useful when reproducing the font or line style of a gadget or when the new gadget will
perform a task similar to that of the parent gadget.
8. Use the Characteristics Form when gadget number and other gadget attributes need to be
updated.
9. Use Single Delete to remove gadgets from the original form that won't be needed on the new
one.
10. Use the Place Gadget option to place fields, buttons, toggles, text, lines, and so forth.
11. Use the Set Form Parameters option to select gadget colors, styles, fonts, and so forth.
12. Use the Associate Gadgets option to create and manipulate gadget sequences (where the
cursor should appear following an entry in a key-in gadget).
13. If you are familiar with the procedures used in piping and equipment modeling for
identifying, accepting, and rejecting a selection using the mouse, you will find it easy to
follow the prompts provided for each of the FORMS commands
14. When exiting and saving a form, make sure that the exit form has the following selections
turned on: No Program Skeleton, Erase Form Yes, Write Form Yes.
15. To place a new or customized form where the piping design software will be able to access
it, copy the new form to the pdshell\forms directory.
copy PA001 c:\win32app\ingr\pdshell\forms\PA001
16. Refer to the DBACCESS documentation for detailed information on using this product.
There is no symbol editor for the Windows environment. However, bitmaps (BMP files)
can be used to create symbols.

Piping Specialty Components


Specialty Items with Complete Data Input
You can customize the I/Forms for instrument and piping specialty components for 'complete
data input'. You must adhere to the following conventions. If not documented, any I/Form you
customize should remain consistent with those delivered by Intergraph.
Intergraph has chosen to name the I/Forms for instruments with 'complete data input' using the
convention INA<nnn>, where <nnn> are three unique alphanumeric characters. Use the
convention INU<nnn> to avoid confusion with any Intergraph I/Forms. Similarly, the I/Forms
for piping specialties with 'complete data input' have been named using the convention
PSA<nnn>. Use the convention PSU<nnn> to avoid confusion with any Intergraph I/Forms.
The I/Forms delivered by Intergraph may be used as examples for customization.
buttons (automatic):

82 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

'operator menu' selection key = 4090


'placement options' selection key = 3001
B=A key = 3012
C=A key = 3013
D=A key = 3014
E=A key = 3015
C=B key = 3016
B = 0.5 * A key = 3021
C = 0.5 * A key = 3022
D = 0.5 * A key = 3023
E = 0.5 * A key = 3024
'help' selection:
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
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

Plant Design System (PDS) Piping Eden Interface 83


Creating a New Piping Component

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
input fields:
Dimension_1 gadget = 101
Dimension_2 gadget = 102
Dimension_3 gadget = 103
Dimension_4 gadget = 104
Dimension_5 gadget = 105
Dimension_6 gadget = 106
Dimension_7 gadget = 107
Dimension_8 gadget = 108
Dimension_9 gadget = 109
Dimension_10 gadget = 110
Dimension_11 gadget = 111
Dimension_12 gadget = 112
Dimension_13 gadget = 113
Dimension_14 gadget = 114
Dimension_15 gadget = 115
Dimension_16 gadget = 116
Dimension_17 gadget = 117
Dimension_18 gadget = 118
Dimension_19 gadget = 119
Dimension_20 gadget = 120

84 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

tag number gadget = 130


dry weight gadget = 201
wet weight gadget = 202
surface area gadget = 203
All input fields should be sequenced and must have the following characteristics. The
settings for 'editing options' in the Form Builder should be as follows.
change mode
'not required'
'echo input'
'replace text mode'
'notify by line'
The characteristics form in the Form Builder should have the following settings:
'notify upon completion ---> off (NOT the default)
'notify upon initial' ---> off
toggles:

Toggle_1 Toggle_2 Toggle_3 Toggle_4 Toggle_5


I/Form key 4051 4052 4053 4054 4055
I/Form 981 982 983 984 985
gadget
'off' gadgets 701-710 721-730 741-750 761-770 781-790
'on' gadgets 711-720 731-740 751-760 771-780 791-800

Specialty Items With Partial Data Input


You can customize the I/Forms for instrument and piping specialty components for 'partial data
input'. You must adhere to the following conventions to customize these I/Forms. If not
documented, any I/Form you customize should remain consistent with those delivered by
Intergraph.
Intergraph has chosen to name the I/Forms for instruments with 'partial data input' using the
convention INB<nnn>, where <nnn> are three unique alphanumeric characters. Use the
convention INU<nnn> to avoid confusion with any Intergraph I/Form. Similarly, the I/Forms
for piping specialties with 'partial data input' have been named using the convention PSB<nnn>.
Use the convention PSU<nnn> to avoid confusion with any Intergraph I/Forms.
These I/Forms delivered by Intergraph can be used as examples for customization.
buttons (automatic):
'operator menu' selection key = 4090
'placement options' selection key = 3001
B=A key = 3012
C=A key = 3013

Plant Design System (PDS) Piping Eden Interface 85


Creating a New Piping Component

D=A key = 3014


E=A key = 3015
C=B key = 3016
B = 0.5 * A key = 3021
C = 0.5 * A key = 3022
D = 0.5 * A key = 3023
E = 0.5 * A key = 3024
'help' selection:
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
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

86 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

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
'review only' fields:
first size gadget = 171 key = 3171
second size gadget = 176 key = 3176
'select/review' fields:
end preparation (first gadget = 172 key = 3172
size)
end preparation (second gadget = 177 key = 3177
size)
input fields:
Dimension_1 gadget = 101
Dimension_2 gadget = 102
Dimension_3 gadget = 103
Dimension_4 gadget = 104
Dimension_5 gadget = 105
Dimension_6 gadget = 106
Dimension_7 gadget = 107
Dimension_8 gadget = 108
Dimension_9 gadget = 109
Dimension_10 gadget = 110
Dimension_11 gadget = 111
Dimension_12 gadget = 112
Dimension_13 gadget = 113
Dimension_14 gadget = 114
Dimension_15 gadget = 115
Dimension_16 gadget = 116

Plant Design System (PDS) Piping Eden Interface 87


Creating a New Piping Component

Dimension_17 gadget = 117


Dimension_18 gadget = 118
Dimension_19 gadget = 119
Dimension_20 gadget = 120

tag number gadget = 130


dry weight gadget = 201
wet weight gadget = 202
surface area gadget = 203

pressure rating (first gadget = 173 key = 3173


size)
pressure rating (second gadget = 178 key = 3178
size)
schedule/thickness gadget = 174 key = 3174
(first size)
schedule/thickness gadget = 179 key = 3179
(second size)
All input fields should be sequenced and must have the following characteristics. The settings
for 'editing options' in the Form Builder should be as follows.
change mode
'not required'
'echo input'
'replace text mode'
'notify by line'
The characteristics form in the Form Builder should have the following settings:
'notify upon completion ---> off (NOT the default)
'notify upon initial' ---> off
toggles:

Toggle_1 Toggle_2 Toggle_3 Toggle_4 Toggle_5


I/Form key 4051 4052 4053 4054 4055
I/Form gadget 981 982 983 984 985
'off' gadgets 701-710 721-730 741-750 761-770 781-790
'on' gadgets 711-720 731-740 751-760 771-780 791-800

88 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

Valve Operators
You can customize the I/Forms for valve operators. You must adhere to the following
conventions when customizing these I/Forms. If not documented, any I/Form you customize
should remain consistent with those delivered by Intergraph.
Intergraph has chosen to name the I/Forms for valve operators using the convention
VOP<nnn>, where <nnn> are three unique alphanumeric characters. Use the convention
VOU<nnn> to avoid confusion with any Intergraph I/Forms.
I/Forms delivered by Intergraph may be used as examples for customization.
buttons (automatic):
'operator menu' selection key = 4090
'placement options' selection key = 3001
'help' selection:
key: 456
gadget number: 995
button: automatic
'form size' selection:
key: 403
gadget number: 997
button: automatic
'exit' selection:
key: 4001
gadget number: 998
button: manual
'accept' selection:
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

Plant Design System (PDS) Piping Eden Interface 89


Creating a New Piping Component

characters: 40
lines deep: 3
edit mode: review only
font size: 12
input fields:
Dimension_1 gadget = 101
Dimension_2 gadget = 102
Dimension_3 gadget = 103
Dimension_4 gadget = 104
Dimension_5 gadget = 105
Dimension_6 gadget = 106
Dimension_7 gadget = 107
Dimension_8 gadget = 108
Dimension_9 gadget = 109
Dimension_10 gadget = 110
Dimension_11 gadget = 111
Dimension_12 gadget = 112
Dimension_13 gadget = 113
Dimension_14 gadget = 114
Dimension_15 gadget = 115
Dimension_16 gadget = 116
Dimension_17 gadget = 117
Dimension_18 gadget = 118
Dimension_19 gadget = 119
Dimension_20 gadget = 120

operator weight gadget = 201


All input fields should be sequenced and must have the following characteristics. The settings
for 'editing options' in the Form Builder should be as follows.
change mode
'not required'
'echo input'
'replace text mode'
'notify by line'

90 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

The characteristics form in the Form Builder should have the following settings:
'notify upon completion ---> off (NOT the default)
'notify upon initial' ---> off
toggles:

Toggle_1 Toggle_2 Toggle_3 Toggle_4 Toggle_5


I/Form key 4051 4052 4053 4054 4055
I/Form gadget 981 982 983 984 985
'off' groups 701-710 721-730 741-750 761-770 781-790
'on' groups 711-720 731-740 751-760 771-780 791-800

Pipe Supports
You can customize the I/Form, PSP000.fb, for use as the pipe support menu. You must adhere to
the following conventions in customizing this I/Form. If not documented, any other gadgets on
the I/Form should remain consistent with those delivered by Intergraph.
individual physical pipe support selection:
key: "$<i/form_name>,<model_code>"
where
<I/Form_name> - name of the I/Form to be displayed by Place Pipe Support.
<model_code> - model code of the physical pipe support to be placed by Eden.
Intergraph has chosen to name the I/Forms for physical pipe supports using the convention
PSP<nnn>, where <nnn> are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
individual functional pipe support selection:
key: "#<pipe_support_type>,<model_code>"
where
<pipe_support_type> - name of the I/Form to be displayed by Place Pipe Support.
<model_code> - model code of the physical pipe support to be placed by Eden.
Intergraph has chosen to name the I/Forms for physical pipe supports using the convention
PSP<nnn>, where <nnn> are three unique alphanumeric characters.
gadget number: defined by user
any gadget number not reserved by Intergraph
’help’ selection:
key: 456
gadget number: 995
button: automatic
’form size’ selection:
key: 403

Plant Design System (PDS) Piping Eden Interface 91


Creating a New Piping Component

gadget number: 997


button: automatic
’exit’ selection:
key: 4001
gadget number: 998
button: manual
’accept’ selection:
key: 4002
gadget number: 999
button: automatic
message area ’a’ for messages:
gadget number: 251
characters: 40
lines deep: 3
edit mode: review only
text font: 12
message area ’b’ for active segment data display:
gadget number: 254
characters: 40
lines deep: 3
edit mode: review only
text font: 12
You can customize the I/Forms for pipe supports. You must adhere to the following conventions
to customize
these I/Forms. If not documented, any I/Form you customize should remain consistent with
those delivered by Intergraph.
Intergraph has chosen to name the I/Forms for pipe supports using the convention PSP<nnn>,
where <nnn> is three unique alphanumeric characters. Use the convention SPU<nnn> to avoid
confusion with any Intergraph I/Forms.
I/Forms delivered by Intergraph may be used as examples for customization.
buttons (automatic):
’pipe support data’ selection key = 4092
’help’ selection:
key: 456

92 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

gadget number: 995


button: automatic
’form size’ selection:
key: 403
gadget number: 997
button: automatic
’exit’ selection:
key: 4001
gadget number: 998
button: manual
’accept’ selection:
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
input fields:

Plant Design System (PDS) Piping Eden Interface 93


Creating a New Piping Component

Dimension_1 gadget = 121


Dimension_2 gadget = 122
Dimension_3 gadget = 123
Dimension_4 gadget = 124
Dimension_5 gadget = 125
Dimension_6 gadget = 126
Dimension_7 gadget = 127
Dimension_8 gadget = 128
Dimension_9 gadget = 129
Dimension_10 gadget = 130
Dimension_11 gadget = 131
Dimension_12 gadget = 132
Dimension_13 gadget = 133
Dimension_14 gadget = 134
Dimension_15 gadget = 135
Dimension_16 gadget = 136
Dimension_17 gadget = 137
Dimension_18 gadget = 138
Dimension_19 gadget = 139
Dimension_20 gadget = 140
Dimension_1 & iso dwg dimension A gadget = 141
Dimension_2 & iso dwg dimension B gadget = 142
Dimension_3 & iso dwg dimension C gadget = 143
Dimension_4 & iso dwg dimension D gadget = 144
Dimension_5 & iso dwg dimension E gadget = 145

isometric drawing dimension A gadget = 161


isometric drawing dimension B gadget = 162
isometric drawing dimension C gadget = 163
isometric drawing dimension D gadget = 164
isometric drawing dimension E gadget = 165

pipe support number gadget = 51

94 Plant Design System (PDS) Piping Eden Interface


Creating a New Piping Component

commodity code gadget = 55


weight gadget = 68
fabrication orientation gadget = 84
details for shop gadget = 82
details for field gadget = 83

Gadgets 121 through 140 in the previous list are input fields that pass dimensions into
Eden only. Gadgets 141 through 145 pass the dimensions into Eden and pdtable_80. Gadgets
161 through 165 pass dimensions only into pdtable_80 in the database.
All input fields should be sequenced and must have the following characteristics. The settings
for ’editing options’ in the Form Builder should be as follows.
change mode
’not required’
’echo input’
’replace text mode’
’notify by line’
The characteristics form in the Form Builder should have the following settings:
'notify upon completion ---> off (NOT the default)
'notify upon initial' ---> off

Plant Design System (PDS) Piping Eden Interface 95


Creating a New Piping Component

96 Plant Design System (PDS) Piping Eden Interface


APPENDIX A

Appendix: EDEN Error Messages


This section lists the EDEN error messages and explanations of the messages.

<E>*** Connect Points Not Defined In Sequence - CPn is missing


This error occurs when a connect point is skipped in the definition. For example, connect point
3 is defined without first defining connect point 2.

<E>*** A total of x errors detected - object code NOT generated


This is a general purpose message that simply means one or more errors were encountered
during generation of the object code. The error will also be covered by one of the more specific
error messages.

<E>*** Assignment to read only variable not permitted


This error occurs when the EDEN module has an assignment statement trying to assign a value
to a read-only variable. Read-only variables include: nom_pipe_d, gen_type, term_type,
table_suffix, std_type, min_cyl_dia, dim_tolerance, and min_dimension.

<E>*** Incorrect subroutine name in call statement x


This error occurs when a subroutine name has been mistyped and does not match any of the
valid subroutine names. The x refers to the sequential number of the call statement within the
EDEN module.

<E>*** Fewer than required number of arguments specified in call statement x


This error occurs when an argument has been left out of a call statement. The x refers to the
sequential number of the call statement in error within the EDEN module.

<E>*** More than required number of arguments specified in call statement x


This error occurs when an extra argument has been found for a particular call statement. The x
refers to the sequential number of the call statement in error within the EDEN module.

<E>*** Argument x is incorrect in call statement y


This error occurs when a call statement is expecting a particular argument and receives and
incorrect argument. An example would be the DEFINE_ACTIVE_ORIENTATION call statement.
It expects one of the following variables to be used for the arguments: CP_primary_n,
CP_secondary_n, CP_normal_n. If any other variable is used (i.e. a user-defined keyword),
then this error will occur. The x refers to the incorrect argument in call statement y.

<E>*** Incorrect data type for argument x in call statement y


This error occurs when a call statement is expecting a particular data-type in the argument
variable. An example would be the CONVERT_NPD_TO_SUBUNITS call statement. It requires

Plant Design System (PDS) Piping Eden Interface 97


Appendix: EDEN Error Messages

the second argument to be a Real*8 data-type. If an ascii type variable was used in this
statement, an error would occur. The x refers to the incorrect argument in call statement y.

<E>*** Incorrect argument specified in call statement x


This error occurs when there is an incorrect argument in a call statement. It is similar to the two
previous errors.

<W>*** Symbol ID (name) exceeds 28 characters - truncated to (name2)


This error occurs when the symbol id specified in the EDEN module exceeds 28 characters - the
maximum allowed. The symbol name is automatically truncated to 28 characters.

<E>*** INTERNAL ERROR in symbol name provided by parser


This error occurs when a blank symbol name is specified in the EDEN module.

<E>*** INTERNAL ERROR during object code backpatching


Due to an internal software error, the data needed to complete the object code generation for a
conditional statement in the EDEN code cannot be accessed. You should contact Intergraph
and send the EDEN module if this error is encountered.

<E>*** INTERNAL ERROR - Object code being generated is too big to catalogue
This error occurs when the total number of bytes of object code has exceeded 9560.

<E>*** INTERNAL ERROR - Number of branch instructions generated exceeds limit


The number of nested if-then-else clauses is limited to 5. This error indicates that this nesting
limit has been exceeded.

<E>*** INTERNAL ERROR - Can not find information specified by parser


Due to an internal software error, the data-type for the variable cannot be determined.

Error opening specified symbol file


The symbol file that was specified is read-only or cannot be opened for some other reason. You
should check permissions for the file and re-try.

Error obtaining graphic commodity library


The graphic commodity library for the project cannot be opened or located. You should check
which library is specified using the Reference Database Management Data form to review the
current setting for the graphic commodity library.

Internal Error building Semantic Symbol Table


This error indicates an internal problem in PDS, and is not related to the EDEN module being
processed. If this error occurs, contact Intergraph.

98 Plant Design System (PDS) Piping Eden Interface


Appendix: EDEN Error Messages

Return Message: Error Writing Text to Text Library


An error occurred while trying to write the text of the EDEN module into the text library.
Either the library could not be opened for some reason, or there was an internal problem with the
library.

Return Message: Error Generating Object Code


One of the error messages listed previously should be added at the end of this message when an
error occurs during the object code generation part of compiling.

Illegal Number <%s>


This error occurs when a number in the EDEN module has character data in it.

String Must be 50 Characters or Less


This error occurs when a string variable in the EDEN module exceeds the 50 character
maximum length.

Invalid Operation - x
This error occurs when the EDEN module has an illegal use of a relational operator (.gt.,
.le., etc.).

<E> UN-CLASSIFIED symbol (symbol)


This error occurs when the compiler encounters a phrase in the EDEN module that cannot be
interpreted as a valid number, keyword, phrase, or variable.

SYNTAX ERROR : ( line )


This error occurs when incorrect syntax is used in the EDEN module. For example, this error
occurs when the end statement is left off an if-then-else clause.

<E> Build Semantic B-TREE Error


This error indicates an internal problem in PDS. If this error occurs, contact Intergraph.

<E> *** Target is not a Vector and/or Array


This error occurs when the EDEN module tries to subscript a variable that is not an array type
variable.

<E> *** Variable is not declared as ARRAY


This error occurs when the EDEN module tries to subscript a variable that is not an array type
variable.

<E> *** PRODUCTION <%d> Has Not Implemented Yet


This error occurs when the EDEN module contains code that is not valid.

Plant Design System (PDS) Piping Eden Interface 99


Appendix: EDEN Error Messages

100 Plant Design System (PDS) Piping Eden Interface


Index
Draw Octagon • 58
A Draw Parametric Shape • 58
Appendix Draw Projected Rectangle • 47
EDEN Error Messages • 97 Draw Projected Triangle • 47
Arithmetic Operators • 37 Draw Semi-Ellipsoid • 48
Assign Connect Point • 50 Draw Sphere • 49
Assign Generic Tap • 51 Draw Torus • 50
Assign Tap • 52 Draw Torus with Capped Ends • 59

B E
Basic Use of Forms • 81 Eden Language Structure • 27
Beginning Statements • 27 Eden Modules • 9
Bends and Branches • 24 Editing Modules • 80
Bolts, Gaskets, and Flanges • 24 Ending Statements • 28
Example of Physical Data Look-Up • 6
C Expressions • 39
Extracting Sample Modules • 78
Call Statement • 40
Comments • 37
Common Keywords • 34 F
Compiling New Modules • 80 Forms Interface • 22
Component Placement Example • 9 Functions • 41
Compute Perpendicular Vector • 52
Connect Point Data • 22 G
Connect Point Geometry • 64 Get Physical Data • 60
Convert NPD to Subunits • 43 Global Variables Common to Piping,
Creating a New Piping Component • 71 Equipment, and Pipe Support Modeling •
30
D Graphic Commodity Data • 2
Data Retrieval from the Physical Data Graphic Commodity Library • 2
Library • 6
Default Project Control Data • 77 I
Define Active Orientation • 44 If - then - else Statement • 41
Define Connect Point Geometry • 53 Indexed Do Statement • 40
Display Tutorial • 54
Do While Statement • 40 K
Draw Cone • 45
Draw Cone With Capped Ends • 54 Keywords (Piping Specific) • 34
Draw Cylinder • 45
Draw Cylinder With Capped Ends • 55 L
Draw Eccentric Cone • 46 Local Variables • 29
Draw Eccentric Cone With Capped Ends • 55 Logical Operators • 39
Draw Hexagon • 56
Draw Mitered Torus • 57

Plant Design System (PDS) Piping Eden Interface 101


Index

M
Move Along Axis • 60
Move By Distance • 61
Move To Connect Point • 61

N
Notes for Graphic Commodity Data • 22

O
Operators • 37

P
Parametric Shape Definitions • 19
Physical Data Definitions • 13
Physical Data Tables • 5
Pipe, Tubing, and Hose • 25
Piping Eden Global Variables • 31
Piping Specialty Components • 82
Place COG Location • 62
Place Connect Point • 62
Preface PDS • v
Primitives • 42
Prompt to Orient Operator • 63

R
Read Table • 63
Reference Database Management Data • 73
Relational Operators • 38
Replacement Statements • 39
Revising Modules • 81
Rotate Orientation • 64

S
Sub-Symbol Processor • 12
Symbol Processors • 11

T
The Eden Basics • 1

V
Variables • 28

102 Plant Design System (PDS) Piping Eden Interface

Das könnte Ihnen auch gefallen