Pod Graphics Processor Users Guide
Pod Graphics Processor Users Guide
User's Guide
Version 2016
May 2016/November 2017
Copyright
Copyright © 1991-2017 Hexagon AB and/or its subsidiaries and affiliates. All rights reserved.
This computer program, including software, icons, graphic symbols, documentation, file formats, and audio-visual displays; may be
used only as pursuant to applicable software license agreement; contains confidential and proprietary information of Hexagon AB
and/or third parties which is protected by patent, trademark, copyright law, trade secret law, and international treaty, and may not be
provided or otherwise made available without proper authorization from Hexagon AB and/or its subsidiaries and affiliates.
Documentation
Documentation shall mean, whether in electronic or printed form, User's Guides, Installation Guides, Reference Guides,
Administrator's Guides, Customization Guides, Programmer's Guides, Configuration Guides and Help Guides delivered with a
particular software product.
Other Documentation
Other Documentation shall mean, whether in electronic or printed form and delivered with software or on Intergraph Smart Support,
SharePoint, or box.net, any documentation related to work processes, workflows, and best practices that is provided by Intergraph
as guidance for using a software product.
Terms of Use
a. Use of a software product and Documentation is subject to the Software License Agreement ("SLA") delivered with the 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 and Documentation. 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.
b. For use of Documentation or Other Documentation where end user does not receive a SLA or does not have a valid license
agreement with Intergraph, Intergraph grants the Licensee a non-exclusive license to use the Documentation or Other
Documentation for Licensee’s internal non-commercial use. Intergraph Corporation gives Licensee permission to print a
reasonable number of copies of Other Documentation for Licensee’s internal, non-commercial use. The Other Documentation
may not be printed for resale or redistribution. This license contained in this subsection b) may be terminated at any time and
for any reason by Intergraph Corporation by giving written notice to Licensee.
Disclaimer of Warranties
Except for any express warranties as may be stated in the SLA or separate license or separate terms and conditions, Intergraph
Corporation disclaims any and all express or implied warranties including, but not limited to the implied warranties of merchantability
and fitness for a particular purpose and nothing stated in, or implied by, this document or its contents shall be considered or deemed
a modification or amendment of such disclaimer. 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, Documentation and Other Documentation discussed in this document are furnished under a license and may be used
or copied only in accordance with the terms of this license. THE USER OF THE SOFTWARE IS EXPECTED TO MAKE THE FINAL
EVALUATION AS TO THE USEFULNESS OF THE SOFTWARE IN HIS OWN ENVIRONMENT.
Limitation of Damages
IN NO EVENT WILL INTERGRAPH CORPORATION BE LIABLE FOR ANY DIRECT, INDIRECT, CONSEQUENTIAL INCIDENTAL,
SPECIAL, OR PUNITIVE DAMAGES, INCLUDING BUT NOT LIMITED TO, LOSS OF USE OR PRODUCTION, LOSS OF
REVENUE OR PROFIT, LOSS OF DATA, OR CLAIMS OF THIRD PARTIES, EVEN IF INTERGRAPH CORPORATION HAS BEEN
ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
UNDER NO CIRCUMSTANCES SHALL INTERGRAPH CORPORATION’S LIABILITY EXCEED THE AMOUNT THAT
INTERGRAPH CORPORATION HAS BEEN PAID BY LICENSEE UNDER THIS AGREEMENT AT THE TIME THE CLAIM IS
MADE. EXCEPT WHERE PROHIBITED BY APPLICABLE LAW, NO CLAIM, REGARDLESS OF FORM, ARISING OUT OF OR IN
CONNECTION WITH THE SUBJECT MATTER OF THIS DOCUMENT MAY BE BROUGHT BY LICENSEE MORE THAN TWO (2)
YEARS AFTER THE EVENT GIVING RISE TO THE CAUSE OF ACTION HAS OCCURRED.
IF UNDER THE LAW RULED APPLICABLE ANY PART OF THIS SECTION IS INVALID, THEN INTERGRAPH LIMITS ITS
LIABILITY TO THE MAXIMUM EXTENT ALLOWED BY SAID LAW.
Export Controls
Intergraph Corporation’s commercial-off-the-shelf software products, customized software and/or third-party software, including any
technical data related thereto (“Technical Data”), obtained from Intergraph Corporation, its subsidiaries or distributors, is subject to
the export control laws and regulations of the United States of America. Diversion contrary to U.S. law is prohibited. To the extent
prohibited by United States or other applicable laws, Intergraph Corporation software products, customized software, Technical Data,
and/or third-party software, or any derivatives thereof, obtained from Intergraph Corporation, its subsidiaries or distributors must not
be exported or re-exported, directly or indirectly (including via remote access) under the following circumstances:
a. To Cuba, Iran, North Korea, the Crimean region of Ukraine, or Syria, or any national of these countries or territories.
b. To any person or entity listed on any United States government denial list, including, but not limited to, the United States
Department of Commerce Denied Persons, Entities, and Unverified Lists, the United States Department of Treasury Specially
Designated Nationals List, and the United States Department of State Debarred List
(https://build.export.gov/main/ecr/eg_main_023148).
c. To any entity when Customer knows, or has reason to know, the end use of the software product, customized software,
Technical Data and/or third-party software obtained from Intergraph Corporation, its subsidiaries or distributors is related to the
design, development, production, or use of missiles, chemical, biological, or nuclear weapons, or other un-safeguarded or
sensitive nuclear uses.
d. To any entity when Customer knows, or has reason to know, that an illegal reshipment will take place.
Any questions regarding export/re-export of relevant Intergraph Corporation software product, customized software, Technical Data
and/or third-party software obtained from Intergraph Corporation, its subsidiaries or distributors, should be addressed to PPM’s
Export Compliance Department, 305 Intergraph Way, Madison, Alabama 35758 USA or at exportcompliance@intergraph.com.
Customer shall hold harmless and indemnify PPM and Hexagon Group Company for any causes of action, claims, costs, expenses
and/or damages resulting to PPM or Hexagon Group Company from a breach by Customer.
Trademarks
Intergraph®, the Intergraph logo®, Intergraph Smart®, SmartPlant®, SmartMarine®, SmartSketch®, SmartPlant Cloud®, PDS®,
Frameworks®, I-Route, I-Export, Isogen®, SPOOLGEN, SupportManager®, SupportModeler®, SAPPHIRE®, TANK, PV Elite®,
CADWorx®, CADWorx DraftPro®, GTSTRUDL®, and CAESAR II® are trademarks or registered trademarks of Intergraph Corporation
or its affiliates, parents, subsidiaries. Hexagon and the Hexagon logo are registered trademarks of Hexagon AB or its subsidiaries.
Microsoft and Windows are registered trademarks of Microsoft Corporation. DotNetMagic is a trademark of Crownwood Software. All
rights reserved. PDMS is a trademark of AVEVA. AutoDesk is a registered trademark of Bentley Corporation. Other brands and
product names are trademarks of their respective owners.
Best Practices.......................................................................................................................................... 54
Replace text strings with values from the POD file ............................................................................. 55
Plot a table on the generated drawing ................................................................................................ 57
Create an Excel report from selected attributes .................................................................................. 60
Index ......................................................................................................................................................... 71
Documentation Comments
For the latest support information for this product, comments, or suggestions about this
documentation, and documentation updates for supported software versions, please visit
customer support (https://smartsupport.intergraph.com).
The POD Graphics Processor works only with smart output, such as Smart
DWG, DGN, SHA, and IGR.
The POD Graphics Processor enables you to modify the intermediate POD file and change the
final drawing or create additional data tables to output on the drawing or in the reports. Writing
code to access the POD and change its contents requires an advanced level of knowledge and
expertise. However, the POD Graphics Processor enables you to perform a range of powerful
actions without any programming knowledge, including:
▪ Running the Get External Data (GED) function.
▪ Replacing text strings with specific values from the POD file.
▪ Creating tables on the drawing or reports in spreadsheets using selected properties in the
POD file.
Tables can contain calculated values, such as one column being the sum of two
or more columns, and aggregated values, such as the sum of a column.
▪ Creating and inserting Quick Response (QR) codes and images into the drawing.
Using the POD Graphics Processor, requires you to complete the following tasks:
▪ Configure Isogen to output strings to the POD file that are replaced with data during the
POD processing step. This usually involves creating pipeline attributes and giving them fixed
or default values.
▪ Reference the POD Graphics Processor executable (.exe) file in the isometric drawing style.
For more information, see Configure the Isogen POD processor (on page 10).
▪ Create an .xml configuration file that defines the behavior and content of the table. For more
information, see POD Graphics Processor Configuration File (on page 12).
HGG
HGG cutting machines are controlled using their ProCAM® software package, which accepts a
.pcd XML file. The .pcd file contains a list of pipe parts that the machine needs to cut.
The pipe parts are in plant coordinates. The .pcd file contains extra unselected plates, which are
not real, to form the ends of the pipes. The POD processor also unfolds bends to produce
straight pipe, and adds holes in the pipe for olets and branches.
There is a limitation for calculating the position of holes in bent pipe, as the exact
position depends on the bending machine and is not definable.
Isogen FIX
The Isogen FIX format file is an Intergraph generic .xml file that provides a consistent and
seamless method of data exchange. The output FIX file contains all of the information needed to
support the main operations required for pipe fabrication, namely cutting, drilling, welding, and
bending. For more information about the FIX file, see Isogen Fabrication Interface XML (FIX)
File (on page 35).
See Also
Getting Started (on page 10)
POD Graphics Processor Configuration File (on page 12)
Isogen Fabrication Interface XML (FIX) File (on page 35)
Getting Started
Before you can use the POD Graphics Processor, you must configure the POD processor by
referencing it in the active style and specifying the location of the POD Graphics Processor .xml
configuration file. Optionally, you can configure the POD Graphics Processor to generate one of
the supported output format files.
For information about customizing the .xml configuration file, see POD Graphics
Processor Configuration File (on page 12).
10. Click to update the style file with the new settings.
The default folder location of the POD Graphics Processor .exe file for each of the
supported applications is listed below:
▪ For SmartPlant Spoolgen, the default folder location is [Product Folder].
▪ For SmartPlant Isometrics, the default folder location is [Product Folder].
▪ For CADWorx Plant, the default folder location is [Product
Folder]\Plant\Isogen\I-Configure\I-Configure\Tutorial Data.
In This Section
GET-EXTERNAL-DATA element .................................................. 13
FABRICATION-INTERFACE element ........................................... 14
PDS_UCI element ......................................................................... 17
REPLACE element ........................................................................ 20
TABLE element ............................................................................. 23
IMAGE element ............................................................................. 32
QRCODE element ......................................................................... 33
GET-EXTERNAL-DATA element
Basic syntax:
<GET-EXTERNAL-DATA File=’c:\sample\ged.xml’ LogFile=’c:\temp\ged.log’
/>
The GET-EXTERNAL-DATA element contains two attributes:
▪ File specifies the path to the GED configuration file, which is automatically applied to the
temporary file created during drawing output. For information about the syntax of this
configuration file, see Appendix: Get External Data Configuration File in the online Help
delivered with the software.
▪ LogFile specifies the path to the GED log file.
A sample GED script (PGP_GED.xml) is delivered with CADWorx Plant in the
[Product Folder]\Isogen\I-Configure\I-Configure\Tutorial Data folder.
FABRICATION-INTERFACE element
Generates the specified output format file. The POD Graphics Processor supports two type of
output files: the HGG format file and the Isogen Fabrication Interface XML (FIX) file. Within the
FABRICATION-INTERFACE element, you use the <HGG> and <ISOGEN> tags to specify which
output format file to produce. For more information, see Output format files in POD Graphics
Processor (on page 7).
Basic syntax:
<FABRICATION-INTERFACE>
<HGG ... HGG-specific settings/>
<ISOGEN ... Generic Isogen (FIX) settings/>
</FABRICATION-INTERFACE>
<FABRICATION-INTERFACE>
<HGG Path="D:\TestID\HGGTest\Data\Processing|All_hgg.pcd"
ReportMode="Overwrite" GroupBy="Spool"
Template="D:\TestID\HGGTest\Data\Processing\HGG.xml"?
<MAPPING>
<WALL-THICKNESS> WALL-THICKNESS </WALL-THICKNESS>
<OUTSIDE-DIAMTER> OUTSIDE-DIAMETER </OUTSIDE-DIAMETER>
</MAPPING>
<HGG>
<FABRICATION-INTERFACE>
</POD-GRAPHICS-PROCESSOR>
XSL transformations
Because FIX file output is relatively dense and contains a myriad of information about the pipe,
POD Graphics Processor supports transforming this output into a more readable format using
XSL (Extensible Styles Language). To create an XSL transformation, requires you to insert a
TRANSFORM statement within the ISOGEN tag. Multiple TRANSFORM statements are allowed in
the .xml configuration file with each statement generating a different output based on the
contents of the XSL file.
<FABRICATION-INTERFACE>
<ISOGEN>
<!-- Transform statement allows transformation of default -->
<!-- FIX file using an XSL -->
<!-- Multiple TRANSFORM elements can be included -->
<TRANSFORM Path="Path to output file 1"
XSL="Path to XSL file 1" />
<TRANSFORM Path="Path to output file 2"
XSL="Path to XSL file 2" />
</ISOGEN>
</FABRICATION-INTERFACE>
PDS_UCI element
Supports publishing of isometric data to SmartPlant Foundation (SPF) for correlation with Plant
Design System (PDS) model data in SmartPlant Construction (SPC). When PDS publishes data
to SPF/SPC, the format of the identifier placed on each component is
<signature>_<component>_<partition>_<unique_no>:
AAAB_PIPPIPE_2233_1234566
Basic syntax:
<PDS_UCI Signature=’ATTRIBUTE100’ />
The PDS_UCI element contains a single attribute:
▪ Signature specifies the pipeline attribute that contains the PDS signature to be used in
constructing the modified unique component identifier (UCI).
When PDS sends piping data to SmartPlant Spoolgen using the Isogen Data File (IDF), the UCI
on each component takes the following form:
5 82 -22568 62 -2256 8
When the four-character tool signature is recognized, the POD Graphics Processor can reformat
the IDF UCI into the modified UCI format that PDS uses for publishing. This four-character
signature, such as AAAB, is associated with the PDS project in the SPF instance being
populated.
The signature is typically contained in a look-up table that is accessed by Get
External Data and stored in a pipeline attribute.
During processing, the PDS_UCI command checks the format of the UCI on each element and
performs one of the following actions:
▪ Reformats any IDF-type UCI to match the modified form.
▪ Updates the signature of any previously modified UCI (if required), and recalculates the
partition number to update pre-existing invalid rules.
▪ All other UCI types remain unchanged.
Log file
Output from the PDS_UCI command is written to the standard POD Graphics Processor log file,
which is stored in the TEMP folder:
Processing PDS_UCI command (modify PDS UCI for SPF)
PDS Signature read from JACKET-SPEC
PDS Signature = AAAY
Pipe[60" PIPE PRKG0Z0J] ExternalUCI =
F8E44A60-5807-4C76-A307-169C0492DE02 [Not changed]
Workshop-Weld[60" WW ] ExternalUCI =
6BA3BDC1-6F2A-4551-A945-F6E21B61487A [Not changed]
Pipe[60" PIPE PRKG0Z0J] ExternalUCI Original = @@@@@@@5 82 -22568
62 -22568 Updated = AAAY_PIPPIPE_5371_-1479016366
Workshop-Weld[60" WW ] ExternalUCI =
7D1C5428-C744-4CD3-B314-145CAB602599 [Not changed]
Tee[60x30" TEBW WVGA0ZXJ] ExternalUCI Original = @@@@@@@3 31
-22568 62 -22568 Updated = AAAY_PIPCOMP_5371_-1479016417
Workshop-Weld[30" WW ] ExternalUCI =
1A84D208-51C4-41D1-917E-7A869193207D [Not changed]
Pipe[30" PIPE PRKG0Z0G] ExternalUCI Original = @@@@@@@5 60 -22568
61 -22568 Updated = AAAY_PIPPIPE_5371_-1479016388
REPLACE element
Replaces a fixed string in the POD file with a value that is returned by one of a number of
different supported functions, including Sum, Count, Min, and Max. The Function attribute uses
all of the occurrences of a specified attribute or property in the pipeline or sheet as input. For
more information about using the REPLACE element, see Replace text strings with values from
the POD file (on page 54).
Basic syntax:
<REPLACE String=’~X01~’ Sum=’C.WELD-ATTRIBUTE1’ Format=’F2’/>
<REPLACE String=’~X02~’ SumBySheet=’C.WELD-ATTRIBUTE2’ Format=’F1’/>
The REPLACE element contains the attributes listed below.
▪ String specifies a string in the POD file graphics to find and replace. Because all
occurrences of this string are replaced during processing, it is important that the string is
unique.
▪ Function indicates the type of calculation to perform using the specified argument. The
Function attribute contains an argument expressed as object.attribute, where object is
defined using one of the following alpha characters: P (Pipeline), C (Component), M
(Material), I (Information Element), or PGS (Pipeline Graphic Sheet).
Supported functions are listed below. An example of the basic syntax follows each function
description.
▪ Sum computes the sum of all: Sum=‟C.WELD-ATTRIBUTE4‟.
▪ SumBySheet computes the sum of all occurrences of the specified:
SumBySheet=‟C.WELD-ATTRIBUTE5‟.
▪ Count computes the number of occurrences: Count=‟C.WELD-ATTRIBUTE3‟.
▪ CountBySheet computes the number of occurrences.
▪ Max computes the maximum (largest) of all occurrences of the specified attribute in the
POD file: Max=‟C.REPEAT-WELD-IDENTIFIER‟.
▪ MaxBySheet computes the maximum (largest) of all occurrences of the specified
attribute in each graphics sheet in the POD file:
MaxBySheet=‟C.REPEAT-WELD-IDENTIFIER‟.
▪ Min computes the minimum (smallest) of all occurrences of the specified attribute in the
POD file: Min=‟C.REPEAT-WELD-IDENTIFIER‟.
▪ MinBySheet computes the minimum (smallest) of all occurrences of the specified
attributed in each graphics sheet in the POD file:
Min=‟C.REPEAT-WELD-IDENTIFIER‟.
▪ Substitute replaces all occurrences of "String" with the specified value:
Substitute="PGS.Count".
▪ SubstituteBySheet replaces all occurrences on each sheet with the specified value.
The argument to the function should be something that varies on each sheet, such as
the sheet number: SubstitueBySheet="PGS.NUMBER".
▪ Format specifies the output format for any computed numbers. In the table below, n is the
precision specifier. Typically, this value indicates the number of digits or decimal places to
use in the output. If Format is not defined, the default value is N. You can use upper or
lower case for the attribute string.
TABLE element
Replaces a string in the POD file with a column of values. The spacing and direction of the
output is controlled by the configuration file. The column is taken from a data table constructed
from the POD file. As such, any property or attribute in the POD file can be tabulated. In
addition, you can create derived tables that contain aggregated values, such as Sum, Count,
Min and Max.
Basic syntax:
<TABLE Name='PODCPTS' Source='Components'>
<COLUMNS …>
<COLUMN …. />
<COLUMN … />
</COLUMNS>
<VIEW …. />
<GROUPBYTABLE … >
<VIEW … />
</GROUPBYTABLE>
</TABLE>
The TABLE element contains the following mandatory attributes:
▪ Name indicates the name of the table.
Name="Table01"
▪ Source specifies the source of the data in the table. You can set Source to one of the
following object types in the POD file: Components, Materials, or InformationElements.
Source="Components"
▪ Type specifies the datatype of the column. Supported datatypes are listed below. Preface
each datatype with System. An example of the basic syntax follows the format
Type='System.Double' or Type='System.Int32'.
▪ Int
▪ Double
▪ Real
▪ String
▪ Text
VIEW element
Defines which subset of the table is displayed on the drawing (that is, the rows and the format).
You must include the VIEW element name in the POD file text string with the format
"View_Name[Column_Name]".
Basic syntax:
<VIEW Name='T3'
Filter="SKEY='TML0'"
Sort="TAG ASC"
Display='BySheet'
VerticalSpacing='5'
MaxRows='5'
Direction='Down' />
The VIEW element contains the following attributes:
▪ Name specifies the name of the view. The name must match the text in the drawing
generated by Isogen, which is used to define where the contents of the view are displayed.
The basic syntax is Name="T3". This attribute is mandatory.
▪ Filter defines which rows from the table are displayed. A filter expression refers to one or
more column names, as defined in the COLUMN elements. Rows where Filter is TRUE are
included in the data output to the drawing. The Filter attribute is a string that can contain any
of the following:
▪ Column names
▪ Boolean operators AND, OR, or NOT
▪ Brackets to group clauses
▪ Comparison operators <>< > <= >= <> = LIKE
▪ Mathematical operators +, -, ?, *.
▪ Wildcards * or %
▪ Functions CONVERT, LEN, ISNULL, IF, TRIM, SUBSTRING
▪ For a full description of syntax, see Appendix: Syntax of EXPRESSION statements and
FILTER expressions (on page 62).
▪ If the Filter attribute is undefined, all rows from the table display.
▪ If the Filter attribute contains strings, use the single quote character ( ' ) for the string
constant and the double quote character ( " )for the Filter expression. Examples are
shown below.
Filter="SKEY=‟TML0‟"
Filter="C105 LIKE „product*‟ AND C106 < C107"
▪ Sort defines the order of the rows in the view. A Sort expression refers to one or more
column names and uses the keywords ASC and DESC to indicate that data is sorted in
ascending (ASC) or descending (DESC) order. Examples are shown below.
▪ Sort=‟C105 ASC‟
▪ Sort=‟C105 ASC C102 DESC‟
If the Sort attribute is omitted, the rows are in the same order as the table
defined in the POD file.
▪ Display controls the behavior when the isometric drawing splits into multiple sheets. You
can use this attribute only if Source=,,Components''. The two possible values are:
▪ Display=,,ByPipeline'' - Each sheet of the drawing contains the same drawing.
This is the default setting.
▪ Display=,,BySheet'' - Each sheet of the drawing contains a different table, which
only displays items that appear on the sheet.
▪ VerticalSpacing defines the vertical separation between rows of the view. This value is
expressed in millimeters. The default setting is 5mm.
▪ MaxRows defines the number of rows that can be displayed. The default setting is 20.
▪ Direction controls whether the table is plotted up or down from the position specified in the
POD file. The default setting is Down.
▪ Direction="Down"
▪ Direction="Up"
REPORT element
Defines the content and format of the report output.
Basic syntax:
<REPORT Name='S1'
Filter="Type='Spool-Summary'"
OutputType="Excel"
UniqueColumn="Spool-ID"
OnDuplicate="DeleteExisting"
Path="<folder>\SpoolgenPlusSpools.xlsx"
Table="Spools">
</REPORT>
The REPORT element contains three mandatory attributes:
▪ Name specifies the name of the report. Isogen uses this attribute only for internal indexing.
Name="R01"
▪ Path specifies the output file to populate. If the path does not exist, it is created it during
processing.
To create a file with the name of the POD file being processed, name the file $POD$ (one
Excel file for each POD file. If you specify a fixed file name, all data from each POD file is
appended to the same file.
Path = 'c:\temp\$POD$.xlsx
▪ Table specifies the name of the worksheet to be populated in an Excel file. If the worksheet
does not exist, it is created during processing.
If the table exists and is populated, data is written only to columns that already
exist in the table. The column header in the table must match the column name in the
Table element.
Optionally, you can also specify the following attributes:
▪ Filter defines which rows from the table are displayed. A filter expression refers to one or
more column names, as defined in the COLUMN elements. Rows where Filter is TRUE are
included in the data output to the drawing. If this attribute is not defined, all rows from the
table display.
▪ The Filter attribute is a string that can contain any of the following items.
▪ Column names
▪ Boolean operators AND, OR, or NOT
▪ Brackets to group clauses ()
▪ Comparison Operators < > <= >= <> = LIKE
▪ Mathematical Operators + - / *
▪ Wildcards * or %
▪ If the filter contains strings, use the single quote character for the string constant and
the double quote character for the Filter expression.
Filter="SKEY=’TML0’"
Filter="C105 LIKE ‘product*’ AND C106 < C107"
▪ If column names contain spaces, enclose the column name in brackets [ ].
Filter="[Iso Number] = ‘AAAA’"
▪ Sort defines the order of rows in the view. A Sort expression refers to one or more column
names. The keywords ascending (ASC) and descending (DESC) indicate whether data is
sorted into ASCending or DESCending order. This attribute is optional. When the Sort
expression is not used, the rows are in the same order as the table defined in the POD file.
Sort=’C105 ASC’
Sort=’C105 ASC C102 DESC’
If the column names contain spaces, enclose the column name in brackets [ ].
Sort="[Iso Number] ASC"
▪ OutputType specifies the report format.
▪ Excel saves the report to an Excel spreadsheet. This is the default setting.
▪ CSV saves the report to a comma-delimited file.
▪ ReportMode controls how the processor handles pre-existing output reports.
▪ Overwrite deletes the specified output file if it already exists. In Overwrite mode, the
processor ignores the UniqueColumn and OnDuplicate settings.
▪ Update updates the specified output file if it already exists. This setting works in
conjunction with the UniqueColumn and OnDuplicate settings.
▪ UniqueColumn indicates the name of the column that contains a unique value in each row,
such as a spool ID in a table of spools or a weld number in a table of welds. This setting
controls how the processor behaves when it encounters data that already exists in the report
and works in conjunction with the OnDuplicate attribute.
▪ OnDuplicate controls how the processor handles duplicate values.
▪ DeleteExisting deletes the existing row that meets the criteria specified by
UniqueColumn. New values are appended to the end of the table.
▪ LeaveExisting appends new values to the end of the table.
GROUPBYTABLE element
Defines a new table that is derived from the main TABLE element (on page 23). Multiple
GROUPBYTABLE elements are allowed under a TABLE element. Typically, the GROUPBYTABLE
element defines a table where items are grouped by a set of columns that share the same
values and contains aggregated values such as SUM, MIN, MAX and COUNT. For example, to
create a table that contains a list of component types, such as valve, flange, and so forth,
together with a count of the number of occurrences, you use the GROUPBYTABLE element. An
example is shown below:
Valve 1
Flange-Weld-Neck 2
Pipe 4
Tee 1
▪ Filter is an optional attribute. However, if you do not define a Filter attribute, all rows
from the table are included in the derived table.
▪ For a full description of syntax, see Appendix: Syntax of FILTER Expressions (see
"Appendix: Syntax of EXPRESSION statements and FILTER expressions" on page 62).
▪ If the Filter attribute contains strings, use the single quote character ( ' ) for the string
constant and the double quote character ( " ) for the Filter expression. Examples are
shown below.
Filter="SKEY="TML0"
Filter="C105 LIKE „product*" AND C106 < C107"
▪ Fields defines which columns and aggregated columns are included in the derived table.
The Fields attribute contains a string with a field list that references one or more columns
from the master table. The basic syntax is [aggregate function] Column_name
[alias], where aggregate function can be COUNT, SUM, MAX, or MIN. The optional alias
is used to specify a new name for the column. This attribute is mandatory.
Fields='C101, SKEY, SUM(C105) TOT"
▪ GroupBy defines which column or columns are used to group rows in the derived table.
Where the columns have the same values, the rows are aggregated. For example,
GroupBy="C101" groups all rows with the same value in column C101:
TABLE
C101
1
2
2
3
1
▪ A GROUPBYTABLE element must contain at least one VIEW element (on page 26). These
are identical to the VIEW elements within the master TABLE element and work the same
way.
▪ You can have multiple GROUPBYTABLE elements under a TABLE element.
IMAGE element
Adds a bitmap image to the drawing from a user-specified folder location.
Basic syntax:
<IMAGE X='23.8' Y='430.2645' Width='800' Sheet='NEW' Height='600'
FileName='C:\Images\MyImage.bmp' Embed='True'/>
The IMAGE element contains five mandatory attributes:
▪ X specifies the location of the image in the X plane.
▪ Y specifies the location of the image in the Y plane.
▪ Width specifies the pixel width of the image on the drawing.
▪ Height specifies the pixel height of the image on the drawing.
▪ Filename specifies the full path location and filename of the image to add. You must use an
absolute path.
Optionally, you can also specify the following attributes:
▪ Embed indicates whether the image is stored with the POD and the drawing or stored on
disk. To embed the image with the POD/drawing, set this attribute to True. The default value
is False.
▪ Sheet identifies on which sheet the image is added. Specify a numerical value (1, 2, 3, and
so on). Alternatively, set Sheet to New to create a new sheet for the image. The default
value is -1, which places the image on all drawing sheets.
QRCODE element
Places a Quick Response (QR) code on the drawing.
The QRCode element is a specialized version of the IMAGE element that is used to
generate a QR code.
Basic syntax:
<QRCODE X='538' Y='57' Width='200' Height='200'
Attribute='PAINTING-SPEC' Embed='false'/>
The QRCode element contains the following mandatory attributes:
▪ X specifies the location of the code in the X plane.
▪ Y specifies the location of the code in the Y plane.
▪ Width specifies the pixel width of the code on the drawing.
▪ Height specifies the pixel height of the code on the drawing.
▪ Attribute specifies a drawing attribute to encode into the QR code (for example,
Attribute='PIPING-SPEC'). This attribute is not mandatory if you add QRText.
▪ QRText specifies a string to encode into the QR code (for example, QRText="This text
is encoded'. This attribute is not mandatory if you add Attribute.
▪ QRText overrides Attribute. If you include both attributes in the QRCODE element, only the
QRText definition is encoded.
▪ SmartDGN output supports only embedded QR codes.
▪ For SmartDWG, SmartDGN, and SmartDGN8 output, the software places the QR code on
the main sheet when Sheet='New'.
▪ When Sheet='New', the software creates only one new sheet. Multiple instances of the
Sheet attribute do not result in additional new sheets.
Intergraph developed the FIX file to provide a flexible and consistent container for
fabrication-specific data. The XML format of the FIX file promotes easy data exchange between
the 3D design system and the pipe fabricators without the need to parse Isogen-specific data.
Data in the FIX file, which includes the pipe, parts, welds, coordinates, and keypoints, is sorted
and presented in a logical order. Isogen uses this data to calculate information, such as local
coordinates, that is required for fabrication. Also, because the FIX file uses the same weld, part,
and pipe cut piece numbering as in the drawing, the potential for data inconsistencies is greatly
reduced.
To produce an Isogen FIX output file, you must include a
FABRICATION-INTERFACE element within the POD Graphics Processor configuration file. For
more information, see FABRICATION-INTERFACE element (on page 14).
Work pieces
When you run the POD Graphics Processor, one FIX file is produced per PCF (pipeline or
system). The FIX file contains one or more pipelines, each of which contains one or more
spools. Each spool is composed of work pieces. A work piece is a container for the pipe, part,
and weld objects contained within the spool. The spool shown in the following example includes:
▪ three pipes (cut pieces)
▪ four parts (weld neck flange, reducer, slip-on flange, and elbow)
▪ seven welds to be done in the workshop (welds #3 and #6 represent connections between
the work pieces)
In turn, this spool can be split into three work pieces, including the welds that connect them.
Each work piece contains one of the pipe cut pieces and any parts that are welded to it.
In the FIX file output, each work piece typically contains the following objects, along with the
object attributes from the original PCF or IDF.
▪ A section of pipe, that is, a single cut piece. Each cut piece contains any needed holes with
a description of the required bending.
▪ Welds
▪ Parts or fittings that are welded to the pipe
Where possible, the FIX file also contains standard attributes for key properties such as wall
thickness, material, and piping specification.
Below is an example of the type of output that can be included in the FIX file:
<?xml version="1.0" encoding="UTF-8"?>
<POD ID="" FIXVersion="0.5">
<UOM Length="mm" />
<Pipeline ID="FIX05B">
<Attributes>
<Attribute Name="ATTRIBUTE1" DisplayName="ATTRIBUTE1"
DataType="String" Value=";1" />
<Attribute Name="ATTRIBUTE100" DisplayName="ATTRIBUTE100"
DataType="String" Value="AAAD" />
<Attribute Name="ATTRIBUTE156" DisplayName="ATTRIBUTE156"
DataType="String" Value="YES" />
<Attribute Name="ATTRIBUTE157" DisplayName="ATTRIBUTE157"
DataType="String" Value="10" />
<Attribute Name="ATTRIBUTE158" DisplayName="ATTRIBUTE158"
▪ The work piece ID is derived from the spool ID and the cut piece ID. For example, a work
piece that is based on cut piece A in spool 1 is given the work piece ID 1_A.
▪ Each work piece is ordered, or sorted, into the sequence of the Isogen-generated drawing.
▪ Where the spool contains more than one work piece, the connection between the work
pieces is also described.
Attributes
All spool attributes, user-specified and calculated, are output to the Spool object in the FIX file.
<Spool ID="2">
<Attributes>
<Attribute Name="CENTRE-OF-GRAVITY-X" DisplayName="Centre Of
Gravity X" DataType="Double" Value="0" />
<Attribute Name="CENTRE-OF-GRAVITY-Y" DisplayName="Centre Of
Gravity Y" DataType="Double" Value="0" />
<Attribute Name="CENTRE-OF-GRAVITY-Z" DisplayName="Centre Of
Gravity Z" DataType="Double" Value="0" />
<Attribute Name="CENTRELINE-LENGTH" DisplayName="Centreline
Length" DataType="Long" UnitsType="mm"
Value="3833" />
<Attribute Name="FACTOR-DIAMETER" DisplayName="Factor Diameter"
DataType="Long" UnitsType="mm"
Value="389433" />
<Attribute Name="IDENTIFIER" DisplayName="Identifier"
DataType="String" Value="2" />
<Attribute Name="SURFACE-AREA" DisplayName="Surface Area"
DataType="Long" Value="1376368" />
<Attribute Name="WEIGHT" DisplayName="Weight" DataType="Long"
UnitsType="g" Value="0" />
<Attribute Name="WELD-DIAMETER" DisplayName="Weld Diameter"
DataType="Long" UnitsType="mm" Value="0" />
</Attributes>
Cut piece end preparation attributes and the additional pipe length added for fabrication or
erection purposes are reported with the coordinates of the Pipe object. The text that describes
the pipe end preparation is not fixed but is configured in Isogen.
<Start X="0" Y="0" Z="0" E="4000" N="-800" U="3583.1" Preparation="BEVEL"
Allowance="0" />
<End X="1000" Y="0" Z="0" E="4000" N="-1800" U="3583.1"
Preparation="SQ.CUT" Allowance="0" />
Attribute metadata
Objects in the FIX file (Pipelines, Spools, Pipe, Parts and Welds) have a set of attributes. The
FIX file contains all attributes that contain a value. Each of the following is listed for each
attribute:
▪ the underlying name of the attribute, which is fixed
▪ the user-specified display name
▪ the data type (string, number)
▪ the units type (mm or inch)
<Pipeline ID="CutPiecesWithFFW">
<Attributes>
<Attribute Name="PIPELINE-REFERENCE" DisplayName="Pipeline
Reference" DataType="String"
Value="CutPiecesWithFFW" />
<Attribute Name="PIPING-SPEC" DisplayName="Pipe Spec"
DataType="String" Value="CS150" />
</Attributes>
This list of attributes is not fixed. You can configure Isogen to handle different sets of
attributes for each object.
In This Section
Example Configurations ................................................................ 43
Work Piece Components: Pipe ..................................................... 46
Work Piece Components: Weld .................................................... 50
Work Piece Components: Part...................................................... 51
Work Piece Connections............................................................... 52
Example Configurations
Example 1: Simple Configuration
Configuration 1 has slip-on flanges with two welds at each flange. Configuration 2 has weld neck
flanges with a single weld at each flange. In both cases, the work piece is transformed and
rotated into a simple configuration.
Secondary vectors are defined by calculating the projection of points to the X-axis of
the work piece.
Example 2:
Best Practices
The following best practices are intended to assist you in creating a customized .xml
configuration file that best meets the requirements of your specific project.
In This Section
Replace text strings with values from the POD file ....................... 54
Plot a table on the generated drawing .......................................... 56
Create an Excel report from selected attributes ............................ 59
1. Use the Project Defaults > Attributes > New command in I-Configure to define a
TotalWeldDiameter attribute, and assign it a default value of <TWD>.
The POD Graphics Processor populates pre-defined drawing frame attribute tags
placed on the isometric drawing.
2. Use the Drawing Setup Tool in Isogen Configuration to text position the
TOTAL-WELD-DIAMETER attribute.
3. Set up the POD Graphics Processor .xml configuration file as needed. In this instance, you
will use a REPLACE element similar to the example.
<!-- Using PGP to output calculated values to the drawing frame -->
REPLACE String='<TWD>' SumBySheet='C.WELD-ATRIBUTE4'
Format='F1" />
The < and > characters are necessary in XML to pass the < and >
characters.
4. Reference the Isogen POD processor and map the .xml configuration file in Isogen
Configuration. For more information, see Configure the Isogen POD processor (on page
10).
5. Generate the drawing.
The POD Graphics Processor outputs the total weld diameter.
CS150 6" 14
CS300 4" 13
1. Use the Project Defaults > Attributes > New command in I-Configure to create three
pipeline attributes, ATTRIBUTE90, ATTRIBUTE91 and ATTRIBUTE92 and give them the
following defaults:
ATTRIBUTE90 = V1[SPEC]
ATTRIBUTE91 = V1[SIZE]
ATTRIBUTE92 = V1[ITEMCOUNT]
2. Use the Drawing Setup Tool in Isogen Configuration to specify the location of the table
on the drawing. You specify the location of the columns on the drawing by plotting pipeline
attributes with fixed values on the drawing. The format of the text string to be plotted is
shown below:
View_Name[Column_Name]
ATTRIBUTE90=V1[SPEC]
ATTRIBUTE91=V1[SIZE]
ATTRIBUTE92=V![ITEMCOUNT]
3. Configure the POD Graphics Processor .xml configuration file as shown in the following
example.
▪ The <TABLE> element (1) defines a table with three columns (2): GROUP, SPEC, and
SIZE. For each component in the POD file, the table displays the GROUP property
(which filters the derived table), the PIPING-SPEC attribute, and the SIZE1 property (the
first nominal size).
▪ The GroupBy attribute (3) specifies that the derived table is grouped by SPEC and
SIZE so that each unique pair of SPEC and SIZE become one row in the derived table.
▪ The Fields attribute (4) specifies that the derived table contains three columns, SPEC
and SIZE and ITEMCOUNT, a new column that contains the total count of the grouped
items.
▪ The View attribute specifies the name of the table view (5) and the design of the output
table (6), including the number and format of rows and columns.
4. Reference the Isogen POD processor and map the .xml configuration file in Isogen
Configuration. For more information, see Configure the Isogen POD processor (on page
10).
2. Set up the POD Graphics Processor .xml configuration file as needed. To execute the GED
.xml, you must reference it using the GET-EXTERNAL-DATA element.
3. Include the TABLE element to control the accumulation of data and the output of the report.
4. Open Isogen Configuration, and reference the Isogen POD processor and map the POD
Graphics Processor .xml configuration file. For more information, see Configure the Isogen
POD processor (on page 10).
5. Generate the drawing.
6. After drawing generation completes, navigate to the path specified by the REPORT element
to locate the generated report.
Expression syntax
When you create an expression, use the COLUMN Name attribute to refer to columns. For
example, if the COLUMN Name for one column is UnitPrice, and another Quantity, an example of
a FILTER expression would be as follows:
"UnitPrice > 10 AND Quantity < 100"
When you create an expression for a filter, enclose strings with single quotation marks:
"LastName = 'Jones'"
User-Defined Values
You may use user-defined values within expressions to be compared with column values.
Enclose string values within single quotation marks (each single quotation character in a string
value has to be escaped by pre-pending it with another single quotation character). Enclose
date values within pound signs (#) or single quotes (') based on the data provider. Decimals and
scientific notation are permissible for numeric values. For example:
"FirstName = 'John'"
"Price <= 50.00"
"Birthdate < #1/31/82#"
For columns that contain enumeration values, cast the value to an integer data type. For
example:
"EnumColumn = 5"
Operators
Concatenation is allowed using Boolean AND, OR, and NOT operators. You can use
parentheses to group clauses and force precedence. The AND operator has precedence over
other operators. For example:
(LastName = 'Smith' OR LastName = 'Jones') AND FirstName = 'John'
When you create comparison expressions, the following operators are allowed:
<
>
<=
>=
<>
=
IN
LIKE
The following arithmetic operators are also supported in expressions:
+ (addition)
- (subtraction)
* (multiplication)
/ (division)
% (modulus)
String Operators
To concatenate a string, use the + character.
Wildcard Characters
You can use the * and % characters interchangeably for wildcard characters in a LIKE
comparison. If the string in a LIKE clause contains a * or % character, you should enclose those
characters in brackets ([]). If a bracket is in the clause, enclose each bracket character in
brackets (for example [[] or []]). A wildcard is allowed at the start and end of a pattern, or at the
end of a pattern or at the start of a pattern. For example:
"ItemName LIKE '*product*'"
"ItemName LIKE '*product'"
"ItemName LIKE 'product*'"
Wildcard characters are not allowed in the middle of a string. For example, 'te*xt' is
not allowed.
Functions
The following functions are also supported:
▪ CONVERT converts a particular expression to a specified .NET Framework type.
Convert(expression, type)
where expression is the expression to convert and type is the .NET Framework type to
which the value will be converted.
myDataColumn.Expression="Convert(total, 'System.Int32')"
All conversions are valid with the following exceptions:
▪ Boolean can be coerced to and from Byte, SByte, Int16, Int32, Int64, UInt16, UInt32,
UInt64, String and itself only.
▪ Char can be coerced to and from Int32, UInt32, String, and itself only.
▪ DateTime can be coerced to and from String and itself only.
▪ TimeSpan can be coerced to and from String and itself only.
▪ LEN returns the length of a string.
LEN(expression)
where expression is the string to be evaluated.
myDataColumn.Expression="Len(ItemName)"
▪ ISNULL checks an expression and either returns the checked expression or a replacement
value.
ISNULL(expression, replacementvalue)
where expression is the expression to check and replacementvalue is the value returned if
the expression is a null reference.
myDataColumn.Expression="IsNull(price, -1)"
▪ IIF gets one of two values depending on the result of a logical expression.
IIF(expr, truepart, falsepart)
where expr is the expression to evaluate, truepart is the value to return if the expression is
true, and falsepart is the value to return if the expression is false.
myDataColumn.Expression = "IIF(total>1000, 'expensive', 'dear')
▪ TRIM removes all leading and trailing blank characters like \r, \n, \t, ' ' .
TRIM(expression)
where expression is the expression to trim.
▪ SUBSTRING gets a sub-string of a specified length, starting at a specified point in the
string.
SUBSTRING(expression, start, length)
where expression is the source string for the substring, start is the integer that specifies
where the substring starts, and length is the integer that specifies the length of the substring.
myDataColumn.Expression = "SUBSTRING(phone, 7, 8)"
APPENDIX B
The class library must contain two objects: one that implements the ICustomOutputCommand
interface and one that implements the ICustomOutputElement interface. To enable the plug-in,
modify the PODGraphicsProcessor.exe.configuration file to include a reference to your class
library and the type that implements ICustomOutputCommand in the PGPExtensions
applicationSettings node.
When you run the POD Graphics Processor, you should see the plug-in .dll file being loaded
when you view the log file:
In This Appendix
Implementing ICustomOutputCommand ....................................... 66
Implementing ICustomOutputElement .......................................... 68
Sample project .............................................................................. 70
Implementing ICustomOutputCommand
Implement the ICustomOutputCommand interface by the object that represents the new
command. For an example, see CsvOutputCommand in the sample project (on page 70). The
public functions listed below must be implemented.
Function
public void Initialise(ApplicationSettingsBase applicationSettings,
StreamWriter logfile)
POD Graphics Processor calls this function when the custom output command is first created.
Place any initialization that is required to prepare the plug-in for use in this function. The
applicationSettings parameter allows easy access to any other settings that you add to the
PODGraphicsProcessor.exe.config file to support the plug-in.
The StreamWriter passed in using the logfile parameter should not be closed or
disposed.
Parameters:
applicationSettings
Type: System.Configuration.ApplicationSettingsBase
The application settings instance for the PODGraphicsProcessor.exe.config file.
Logfile
Type: System.IO.StreamWriter
A StreamWriter that allows additional messages to be written to the POD Graphics
Processor log file.
Function
public IEnumerable<ICustomOutputElement>
BuildOutputElements(XmlElement xmlTable, DataTable dataTable)
POD Graphics Processor calls this function once for each TABLE or GROUPBYTABLE element in
the .xml configuration file. Search the XmlElement passed in the xmlTable parameter for the
custom output command's XML element, and then create an instance of the appropriate
ICustomOutputElement derived class for any elements you find. This function returns an
enumerator for all ICustomOuputElement classes created.
Parameters:
xmLTable
Type: System.Xml.XmlElement
The parent TABLE or GROUPBYTABLE element being processed.
dataTable
Type: System.Data.DataTable
A DataTable that contains the results of processing the element in the xmlTable
parameter.
Return Value:
Type: IEnumerable<ICustomOutputElement>
Enumberable<ICustomOutputElement> of the ICustomOutputElements found
under the xmLTable element passed in.
Function
public bool ProcessCustomCommand()
This function is called after all elements in the PODGraphicsProcessor xml configuration file are
processed, which allows the command to perform any batch operations. This includes
operations that collect data from multiple TABLE elements and releasing resources that were
allocated when the plug-in was initialized.
Returning FALSE causes the entire POD Graphics Processor run to fail.
Return Value:
Type: bool
This Boolean data type indicates whether the custom output command succeeded or failed.
Implementing ICustomOutputElement
The ICustomOutputElement represents a single instance of the XML element supported by an
ICustomOutputCommand. Implement the public function listed below.
Function
public bool OutputElement(AliasPOD.POD oPOD, string tableName)
The POD Graphics Processor calls this function to process the output element. The return value
(bool) indicates the success or failure of the custom output element.
Parameters:
oPOD
Type: AliasPOD.POD
The POD file on which this output element operates.
tableName
Type: System.String
The name of the previously supplied DataTable that this element represents.
Sample project
You can view ICustomOutputCommand in the sample project. Follow the steps outlined below:
1. Copy the CsvOutputCommandSample.dll file to the folder that contains
PODGraphicsProcessor.exe.
2. Modify the PGPExtensions application setting in the PODGraphicsProcessor.exe.config so
that it contains the entry shown in the example below.
3. Add a CSVDUMP element to an existing .xml configuration file. An example is shown below.
<TABLE Name='PODCPTS' Source='Components'>
<COLUMNS …>
<COLUMN …. />
<COLUMN … />
</COLUMNS>
<CSVDUMP …. />
</TABLE>
The <CSVDUMP> element supports the following optional attributes:
▪ Name specifies the name of the table.
▪ Filter specifies a filter to apply the data.
▪ Sort specifies how to sort the data. You must define a Filter attribute to use the Sort
attribute.
A Q
Appendix QRCODE element • 33
Extending the POD Graphics Processor •
65 R
Syntax of EXPRESSION statements and
FILTER expressions • 62 REPLACE element • 20
Replace text strings with values from the
POD file • 55
B REPORT element • 28
Best Practices • 54
S
C Sample project • 70
COLUMN and COLUMNS element • 25
Configure the Isogen POD processor • 10 T
Create an Excel report from selected
attributes • 60 TABLE element • 24
E V
Example Configurations • 43 VIEW element • 26
F W
FABRICATION-INTERFACE element • 15 What's New in the POD Graphics Processor
•5
Work Piece Components
G Part • 52
GET-EXTERNAL-DATA element • 14 Pipe • 47
Getting Started • 10 Weld • 51
GROUPBYTABLE element • 30 Work Piece Connections • 53
I
IMAGE element • 32
Implementing ICustomOutputCommand •
67
Implementing ICustomOutputElement • 69
Isogen Fabrication Interface XML (FIX) File
• 35
P
PDS_UCI element • 18
Plot a table on the generated drawing • 57
POD Graphics Processor • 7
POD Graphics Processor Configuration File
• 12
Preface • 5