You are on page 1of 92

Hangers and Supports

Reference Data Guide

Version 2011 (9.0) Service Pack 1


April 2011/August 2011
DSP3D-PE-200014J-UPDATED

Copyright
Copyright 2002-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.
Portions of this software are owned by Spatial Corp. 1986-2010. All Rights Reserved.

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

Terms of Use
Use of this software product is subject to the End User License Agreement ("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. ACIS is a registered trademark of SPATIAL TECHNOLOGY, INC. Infragistics, Presentation
Layer Framework, ActiveTreeView Ctrl, ProtoViewCtl, ActiveThreed Ctrl, ActiveListBar Ctrl, ActiveSplitter, ActiveToolbars
Ctrl, ActiveToolbars Plus Ctrl, and ProtoView are trademarks of Infragistics, Inc. Incorporates portions of 2D DCM, 3D DCM, and
HLM by Siemens Product Lifecycle Management Software III (GB) Ltd. All rights reserved. Gigasoft is a registered trademark, and
ProEssentials a trademark of Gigasoft, Inc. VideoSoft and VXFlexGrid are either registered trademarks or trademarks of
ComponentOne LLC 1991-2009, All rights reserved. Oracle, JD Edwards, PeopleSoft, and Retek are registered trademarks of
Oracle Corporation and/or its affiliates. Tribon is a trademark of AVEVA Group plc. Alma and act/cut are trademarks of the Alma
company. Other brands and product names are trademarks of their respective owners.

Contents
Preface .......................................................................................................................................................... 5
SmartPlant 3D Documentation Set ......................................................................................................... 7
Documentation Comments ................................................................................................................... 11
What's New in Hangers and Supports Reference Data ......................................................................... 13
Hangers and Supports Reference Data ................................................................................................... 15
Assemblies and Parts ........................................................................................................................... 19
Part Ports .............................................................................................................................................. 20
Reference Ports .................................................................................................................................... 23
Constraints ............................................................................................................................................ 24
Joints ..................................................................................................................................................... 25
Raising Warnings and Errors from Symbols and Assemblies .............................................................. 27
Define Assemblies ..................................................................................................................................... 31
Supports and Local Coordinate System (LCS) ..................................................................................... 33
Bounding Boxes .................................................................................................................................... 36
Standard Bounding Boxes .............................................................................................................. 37
Custom Bounding Boxes ................................................................................................................ 40
Assembly Information Rule Examples .................................................................................................. 48
Add a note to key points using AIR ................................................................................................ 50
Add a dimension port using CreateNoteAndAssociateToPort function in AIR ............................... 51
Add control point using CreateCPAtPoint Function in AIR ............................................................. 54
GetAssemblyCatalogParts Method ................................................................................................ 55
GetAssemblyJoints Method ............................................................................................................ 57
GetRouteConnections Method ....................................................................................................... 60
GetStructConnections Method ....................................................................................................... 63
Assembly Selection Rules .................................................................................................................... 64
Determining Which ASR is Used .................................................................................................... 65
Delivered Assembly Selection Rules .............................................................................................. 67
Assembly Selection Rules Example ............................................................................................... 69
Converting Supports for Place by Reference ....................................................................................... 70
AIR Changes to Support Place by Reference ................................................................................ 70
ASR Changes to Support Place by Reference .............................................................................. 72
GetFacePositionInfo Method ................................................................................................................ 73
Define Parts ................................................................................................................................................ 75
Lookup Tables ........................................................................................................................................... 77
Face Selection Sheet ............................................................................................................................ 77
Face Position Selection Sheet .............................................................................................................. 79
Hgr Rules Sheet .................................................................................................................................... 80
SupportJoints Sheet .............................................................................................................................. 80
Configuration Index Calculator ....................................................................................................... 82
HgrRefSupportingFilter Sheet ............................................................................................................... 83
HgrDisciplineFilter Sheet ...................................................................................................................... 83

Hangers and Supports Reference Data Guide

Contents
Hanger Steel and Hanger Cutback Steel Parts .................................................................................... 85
Index ........................................................................................................................................................... 91

Hangers and Supports Reference Data Guide

Preface
This document is a reference data guide for the SmartPlant 3D Hangers and Supports task. The
purpose of this document is to describe the reference data delivered with the software for this task.
Reference data includes both catalog data and specification data. Catalog data includes the parts
that you place in the model, such as piping components and equipment. Specification data
includes the rules that govern how those parts are placed and connected.

Hangers and Supports Reference Data Guide

SmartPlant 3D Documentation Set


SmartPlant 3D documentation is available as Adobe PDF files. The content is the same as online
Help. To access these PDF documents, click Help > Printable Guides in the software.
The documentation set is divided into four categories:
Administrative guides contain information about installing, configuring, customizing, and
troubleshooting SmartPlant 3D.
User's guides provide command reference and how-to information for working in each
SmartPlant 3D task.
Reference data guides define the reference data workbooks. Not all tasks have reference
data.
ISOGEN guides

Administrative Guides
SmartPlant 3D Installation Guide - Provides instructions on installing and configuring the software.
Project Management User's Guide - Provides instructions for setting up the databases, creating
permission groups, backing up and restoring project data, assigning access permissions to the
model, defining and managing locations for Global Workshare, and version migration.
SmartPlant 3D Global Workshare Guide - Provides instructions for setting up the software and the
databases to work in a workshare environment.
SmartPlant 3D Interference Checking Guide - Provides information on installing, configuring, and
using the interference detection service.
SmartPlant 3D Integration Reference Guide - Provides information about installing, configuring,
and using SmartPlant 3D in an integrated environment.
SmartPlant 3D Interpreting Human Piping Specifications - Provides information about how to
interpret human piping specifications so that you can create the corresponding piping
specification in the software.
SmartPlant 3D Export to PDMS - Provides information about how to export model data from
SmartPlant 3D to PDMS. Specific guidelines relating to best practices and known limitations of the
export functionality are also included.
SmartPlant 3D Point Cloud Reference - Provides information for referencing point cloud files
provided by point cloud vendors in SmartPlant 3D.
SmartPlant 3D Troubleshooting Guide - Provides information on how to resolve errors that you
may encounter in the software by documenting troubleshooting tips, error messages, and to do list
messages.
SmartPlant 3D Plant Design System (PDS) Guide - Provides all information needed to use PDS
with SmartPlant 3D. Topics include referencing active PDS projects in SmartPlant 3D, exporting
PDS data and importing that data into SmartPlant 3D, and converting PDS reference data to
SmartPlant 3D reference data.
SmartPlant 3D/SmartMarine 3D Programmer's Guide - Provides information about custom
commands, naming rules, and symbol programming.

User's Guides
Catalog User's Guide - Provides information about viewing, editing, and creating reference data
and select lists (codelists).
Common User's Guide - Provides information about defining workspaces, manipulating views,
and running reports.

Hangers and Supports Reference Data Guide

Preface
Electrical User's Guide - Provides information about routing electrical cable, cableway, cable tray,
and conduit.
Equipment and Furnishings User's Guide - Provides information about placing equipment.
Grids User's Guide - Provides instructions for creating coordinate systems, elevation grid planes,
vertical grid planes, radial cylinders, radial planes, grid arcs, and grid lines.
Hangers and Supports User's Guide - Provides instructions on placing piping, duct, and cableway
supports in the model.
HVAC User's Guide - Provides instructions for routing HVAC duct.
Orthographic Drawings User's Guide - Provides information about creating and managing
orthographic drawings.
Piping Isometric Drawings User's Guide - Provides information about creating and managing
piping isometric drawings.
Piping User's Guide - Provides instructions for routing pipe and placing valves, taps, and pipe
joints.
Reports User's Guide - Provides information about creating and managing spreadsheet reports.
Space Management User's Guide - Provides instructions for placing space objects such as areas,
zones, interference volumes, and drawing volumes in the model.
Structural Analysis User's Guide - Provides instructions for defining loads, load cases, load
combinations, and the importing and exporting of analytical data.
Structure User's Guide - Provides instructions for placing structural members such as: beams,
columns, slabs, openings, stairs, ladders, equipment foundations, and handrails.
Systems and Specifications User's Guide - Provides instructions for creating systems and
selecting which specifications are available for each system type.

Reference Data Guides


SmartPlant 3D 2D Symbols User's Guide - Provides command reference information and
procedural instructions for creating 2D symbols used to represent collars, clips, profiles, brackets,
and other items.
SmartPlant 3D 2D Symbols Reference Data Guide - Provides information about the
two-dimensional symbols used in all tasks.
Drawings and Reports Reference Data Guide - Provides information about reports reference data.
Electrical Reference Data Guide - Provides information about electrical cable, cableway, cable
tray, and conduit reference data.
Electrical 3D Symbols Reference - Provides information about the cable tray and conduit 3D
symbols that are available.
Equipment and Furnishings Reference Data Guide - Provides information about equipment
reference data.
Equipment 3D Symbols Reference - Provides information about the equipment, equipment
component, design shapes, and design aides 3D symbols that are available.
Hangers and Supports Reference Data Guide - Provides information about hangers and supports
reference data.
Hangers and Supports 3D Symbols Reference - Provides information about the hanger and
support 3D symbols that are available.
HVAC Reference Data Guide - Provides information about HVAC reference data.
HVAC 3D Symbols Reference - Provides information about the HVAC 3D symbols that are
available.

Hangers and Supports Reference Data Guide

Preface
SmartPlant 3D Reference Data Guide - Provides instructions about the Bulkload utility, codelists,
and the reference data common to several disciplines.
Piping Reference Data Guide - Provides information about piping reference data including piping
specifications, piping specification rules, piping parts, and piping symbols.
Piping 3D Symbols Reference - Provides information about the piping 3D symbols that are
available.
Space Management Reference Data Guide - Provides information about space management
reference data.
Structure Reference Data Guide - Provides information about structural reference data.
Structure 3D Symbols Reference - Provides information about the stair, ladder, footings, and
equipment foundation 3D symbols that are available.

ISOGEN Guides
Symbol Keys Reference Guide - Provides information about the symbol keys for isometric
drawings. This guide is from Alias, the makers of ISOGEN.

Hangers and Supports Reference Data Guide

Documentation Comments
We welcome comments or suggestions about this documentation. You can send us an email at:
PPMdoc@intergraph.com.

Hangers and Supports Reference Data Guide

11

What's New in Hangers and Supports


Reference Data
The following changes have been made to the Hangers and Supports reference data.
Version 2011 (9.0) Service Pack 1
The Symbols share on the reference data computer has been renamed SharedContent. This
document has been updated to reflect that change
Support is now available for placing implied parts under a standard support using an assembly
information rule (AIR). For more information see Assemblies and Parts (on page 19). (P2
CP:96787)
When the Rule check box on the Assembly Selection Rule (ASR) ribbon is selected, a list of
supports displays in the Type box. This list is sorted by the attributes you define on
IJUAHgrRulePriority using RulePriority which is defined on supports in
HS_Assembly.xls. For more information see Assembly Selection Rules (on page 64). (P2
CP: 48833)
Information on using warnings and errors in the symbols and assemblies commands is
provided. For more information see Raising Warnings and Errors from Symbols and
Assemblies (on page 27). (P3 CP:182562)
Added information on the changes that need to be done to the IJHgrAssmInfo interface and
the CommandType property in assembly part class .xls file to support the Place by
Reference command. Some of the common functions have also been modified to support the
Place by Reference command. For more information see Converting Supports for Place by
Reference (on page 70).
Added new method GetFacePositionInfo to access FacePosition information of the supporting
port to which the support object is connected. For more information, see GetFacePositionInfo
Method (on page 73).

Hangers and Supports Reference Data Guide

13

SECTION 1

Hangers and Supports Reference Data


Before working with hangers and supports reference data, you must be familiar with how
SmartPlant 3D handles reference data in general. If you have not already done so, read and
understand the following important concepts and procedures described in the SmartPlant 3D
Reference Data Guide:
Custom attributes
Symbol creation
Codelists (also referred to as "select lists")
Naming rules
Bulkloading
For example, before you can define support parts, you must understand how part data relates to
data on the custom interfaces sheet, and how that information relates to parameters defined when
the part symbol is created.

Hangers and Supports Workbooks


The hangers and supports reference data is defined in several Microsoft Excel workbooks. The
software delivers these workbooks to the [Product Directory]\CatalogData\Bulkload\DataFiles
folder. Additional workbooks are delivered to the [Product
Directory]\CatalogData\Bulkload\AdditionalDataFiles folder. The following tables list the delivered
workbooks and give a brief description of their content.
The file names all start with "HS" for easy recognition.
The following table contains workbooks available in the [Product
Directory]\CatalogData\Bulkload\DataFiles folder.
Workbook

Content

HS_Anvil.xls

Defines part classes from the Anvil catalog.

HS_Anvil_Codelist.xls

Defines codelists for the Anvil catalog.

HS_Assembly.xls

Defines assembly part classes.

HS_Assembly_Codelist.xls

Defines codelists for assemblies.

HS_GTypeComponent.xls

Defines the imported GType component symbol.

HS_HgrAiscLRFD-3.1_Deprecated.xls

Defines the AISC secondary steel.

HS_LRParts.xls

Defines load-rated parts for rigid rod assemblies.

HS_S3DParts.xls

Defines point and rectangle weld parts.

HS_S3DParts_Codelist.xls

Defines codelists for point and rectangle weld parts.

HS_Str-AISC-LRFD-3.1.xls

Defines the AISC Rich Steel.

HS_Struct-AISC-LRFD-3.1.xls

Defines the AISC Secondary Hanger Steel.

HS_System.xls

Contains information such as designed supports, hanger


and support rules, and hanger discipline filters.

Hangers and Supports Reference Data Guide

15

Hangers and Supports Reference Data


Workbook

Content

HS_System_Codelist.xls

Defines the codelist for Hanger Steel Cutback sections.

HS_Utility.xls

Defines utility classes, which include concrete parts and


steel plates.

HS_Utility_Codelist.xls
Defines codelists for the utility classes.
The following table contains workbooks available in the [Product
Directory]\CatalogData\Bulkload\AdditionalDataFiles folder.
* - Indicates workbooks that have been superseded by new workbooks. Rather than remove the
workbooks, they are made available to provide backward compatibility.
Workbook

Content

HS_Bline_Assy.xls

Defines the Cooper B-Line Cable Tray Assemblies


catalog.

HS_Bline_Assy_Codelist.xls

Defines the Cooper B-Line Cable Tray Assemblies


codelist.

HS_Bline_Tray.xls

Defines the Cooper B-Line Cable Tray Parts catalog.

HS_Bline_Tray_Codelist.xls

Defines the Cooper B-Line Cable Tray Parts codelist.

HS_Correspondence.xls

Defines the Hanger Steel correspondence.

HS_GenericAssy.xls

Defines the Generic Assemblies catalog.

HS_GenericAssy_Codelist.xls

Defines the Generic Assemblies codelist.

HS_GenericParts.xls

Defines the Generic Parts catalog.

HS_GenericParts_Codelist.xls

Defines the Generic Parts codelist.

HS_Halfen_Assy.xls

Defines the Halfen Assemblies catalog.

HS_Halfen_Assy_Codelist.xls

Defines the Halfen Assemblies codelist.

HS_Halfen_PC.xls

Defines the Halfen Parts catalog.

HS_Halfen_PC_Codelist.xls

Defines the Halfen Parts codelist.

*HS_HgrAisc_Deprecated.xls

Defines the AISC hanger beams.

*HS_HgrAust-05_Deprecated.xls Defines the Hanger Aust-05-catalog.


*HS_HgrCisc_Deprecated.xls

Defines the CISC metric hanger beams.

*HS_HgrEuro_Deprecated.xls

Defines Hanger Euro catalog.

*HS_HgrEuro_OTUA-2002_Depr Defines the Hanger Euro OTUA-2002 catalog.


ecated.xls
*HS_HgrEuro_OTUA_Deprecate Defines the Hanger Euro OTUA catalog.
d.xls

16

*HS_HgrJapan_Deprecated.xls

Defines the Hanger Japanese catalog.

HS_HVAC_Assy.xls

Defines the HVAC Duct Support Assemblies catalog.

HS_HVAC_Assy_Codelist.xls

Defines the HVAC Duct Support Assemblies codelist.

HS_HVAC_Parts.xls

Defines HVAC Duct Supports.

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data


Workbook

Content

HS_HVAC_Parts_Codelist.xls

Defines HVAC Duct Supports codelist.

HS_Lisega.xls

Defines part classes from the Lisega catalog.

HS_Lisega_Codelist.xls

Defines codelists for the Lisega catalog.

HS_Marine.xls

Defines the Marine Parts catalog.

HS_Marine_Assy.xls

Defines the Marine Assemblies catalog.

HS>Marine_Assy_Codelist.xls

Defines the Marine Assemblies codelist.

HS_Power1_Assy.xls

Defines the Power1 Assemblies catalog.

HS_Power1_Assy_Codelist.xls

Defines the Power1 Assemblies codelist.

HS_Power1_Parts.xls

Defines the Power1 Parts catalog.

HS_PSL.xls

Defines the PSL Parts catalog.

HS_PSL_Codelist.xls

Defines the PSL Parts codelist.

HS_RestraintSupports.xls

Defines the Symbolic Restraint supports.

HS_ShipSteel.xls

Defines the Ship Secondary Steel.

HS_Str-AISC-LRFD-3.0.xls

Defines the AISC 3.0 Rich Steel hanger beams.

HS_Str-AISC-Metric.xls

Defines the AISC Rich Steel hanger beams in metric.

HS_Str_AISC_SHAPES-3.1.xls

Defines the AISC SHAPES-3.1 Rich Steel catalog.

HS_Str_AUST.xls

Defines the AUST-05 Rich Steel catalog.

HS_Str-AUST-05.xls

Defines the AUST-05 Rich Steel catalog.

HS_Str-BS.xls

Defines the BS Rich Steel catalog.

HS_Str-Chile-2000

Defines the Chile-2000 Rich Steel catalog.

HS_Str-China-2006

Defines the China-2006 Rich Steel catalog.

HS_Str-CISC-7-2.xls

Defines the CISC-7.2 Rich Steel catalog.

HS_Str-CISC-8.1.xls

Defines the CISC-8.1 Rich Steel catalog.

HS_Str-Euro.xls

Defines the Euro Rich Steel catalog.

HS_Str-EURO-OTUA-2002.xls

Defines the EURO-OTUA-2002 Rich Steel catalog.

HS_Str-Japan.xls

Defines the Japan Rich Steel catalog.

HS_Str-Japan-2005.xls

Defines the Japan-2005 Rich Steel catalog.

HS_Str-Russia.xls

Defines the Russia Rich Steel catalog.

HS_Str-SAISC-2002.xls

Defines the SAISC-2002 Rich Steel catalog.

HS_Struct-AISC-LRFD-3.0.xls

Defines the AISC 3.0 Hanger Steel hanger beams.

HS_Struct-AISC-Metric.xls

Defines the AISC Hanger Steel hanger beams in metric.

HS_Struct_AISC_SHAPES-3.1.x Defines the AISC SHAPES-3.1 Hanger Steel catalog.


ls
HS_Struct_AUST.xls

Defines the AUST-05 Hanger Steel catalog.

Hangers and Supports Reference Data Guide

17

Hangers and Supports Reference Data


Workbook

Content

HS_Struct-AUST-05.xls

Defines the AUST-05 Hanger Steel catalog.

HS_Struct-BS.xls

Defines the BS Hanger Steel catalog.

HS_Struct-Chile-2000

Defines the Chile-2000 Hanger Steel catalog.

HS_Struct-China-2006

Defines the China-2006 Hanger Steel catalog.

HS_Struct-CISC-7-2.xls

Defines the CISC-7.2 Hanger Steel catalog.

HS_Struct-CISC-8.1.xls

Defines the CISC-8.1 Hanger Steel catalog.

HS_Struct-Euro.xls

Defines the Euro Hanger Steel catalog.

HS_Struct-EURO-OTUA-2002.xl Defines the EURO-OTUA-2002 Hanger Steel catalog.


s
HS_Struct-Japan.xls

Defines the Japan Hanger Steel catalog.

HS_Struct-Japan-2005.xls

Defines the Japan-2005 Hanger Steel catalog.

HS_Struct-Russia.xls

Defines the Russia Hanger Steel catalog.

HS_Struct-SAISC-2002.xls

Defines the SAISC-2002 Hanger Steel catalog.

HS_TrayShip.xls

Defines the TrayShip Cable Tray Assembly catalog.

HS_TrayShip_Assy.xls

Defines the TrayShip Cable Tray Support Assembly


catalog.

HS_TrayShip_Assy_Codelist.xls Defines the TrayShip Cable Tray Support Assembly


codelist.
HS_TrayShip_Codelist.xls

Defines the TrayShip Cable Tray Assembly codelist.

HS_Util_Metric.xls

Defines the Utility Metric Parts.

HS_Util_Metric_Codelist.xls
Defines the Utility Metric codelist.
Delta files are delivered in the [Product
Directory]\CatalogData\Bulkload\AdditionalDataFiles\Delta2009to2009.1 folder.

18

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data

Assemblies and Parts


The hangers and supports that you place in your model are based on individual parts, such as a
beam clamp or a welded lug. A single support may be comprised of multiple parts. This grouping
of parts is called a support assembly. The following figure shows a typical support with an
assembly that contains five unique parts.

Hanger Assembly with Constituent Parts


The assembly of a support's constituent parts is done using information defined in the reference
data. Each assembly defined in the reference data is assigned an assembly information rule. The
software uses the logic contained in the assembly information rule to put together the individual
support parts to form an assembly. An assembly information rule is a Visual Basic program and
associated data in the catalog.
The software properly positions the parts in relation to each other, the supported object (such as a
pipe), and the supporting object (such as a beam) by applying constraints between ports. The
assembly information rule is responsible for identifying all constraints necessary to position the
parts correctly. Specifying individual constraints provides the most flexibility and control over the
assembly process. However, it is a tedious and repetitive process. To simplify things, relationships
between parts are described using joints instead of individual constraints. Each joint represents a
series of constraints that simulate the mechanical connection between parts. The assembly
information rule provides a list of joints between assembly parts. The software parses this list and
applies the appropriate constraints when creating the assembly.

Implied Parts
Placement of implied parts can only be done using an assembly information rule. For more
information, see GetAssemblyCatalogParts Method (on page 55).

Hangers and Supports Reference Data Guide

19

Hangers and Supports Reference Data


Although an implied part does not have a graphical representation in the model, it does appear in
the Workspace Explorer with its own associated icon as shown in the following illustration.

To select an implied part, you must select No Filter in the Locate Filter box. You can use copy
and paste to place the selected implied part under a design support.

See Also
Part Ports (on page 20)
Reference Ports (on page 23)
Constraints (on page 24)
Joints (on page 25)

Part Ports
When creating part symbols that you intend to use in support assemblies, you should specify
outputs called ports to aid in the placement of the part symbol. The following figure shows the
output ports for a pipe clamp part symbol.

20

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data


The geometric information associated with each port is, in essence, a coordinate system. The port
defines an origin, three axes, and three planes.

Ports convey information through their relative location with respect to the symbol graphics. In the
pipe clamp part symbol, one port is defined coincident with the centerline of the clamp's
associated pipe. The second port is positioned where the clamp is connected to the other
assembly part. Understand, however, that ports can be defined at any position in space and
therefore do not need to be attached to the part symbol's graphical representation. In addition, the
location of a port can be a function of the input of the part symbol. For example, you can define a
port position for a welded lug based upon the pipe radius.

Hangers and Supports Reference Data Guide

21

Hangers and Supports Reference Data


The following figure shows the part symbols and their ports arranged in an exploded view of the
assembly. Each part has two ports defined; however, any number can be defined as required. The
orientation and location of each part symbol port is independent of the other ports. During
placement, however, a symbol's collection of ports are treated as rigid and will always retain their
location with respect to the other ports and the geometry of the part symbol.

See Also
Constraints (on page 24)
Reference Ports (on page 23)
Joints (on page 25)

22

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data

Reference Ports
While part ports define the connection relationship between parts in an assembly, reference ports
define how a support assembly attaches to the supporting object (such as a beam) and the
supported object (such as a pipe or cable tray). Unlike part symbol ports, reference ports are
provided by the software and cannot be moved.
The example support that we have been discussing needs two reference ports, one on the beam
and one on the pipe. The Z-axis of the supported object (in this case, the pipe) always points
toward the supporting object (the beam). Conversely, the Z-axis of the supporting object (the
beam) port always points toward the supported object (the pipe).

When you are defining assembly information rules in Visual Basic, the reference port on the pipe
is called -1, ROUTE. The reference port on the beam is called -1, STRUCTURE. If you are
connecting to more than one beam or structure, those ports are called -1, STRUCTURE; -1,
STRUCT_2; and so forth.
Other ports called STRUCTALT and ROUTEALT are available if you are creating supports on
sloping structure. While the STRUCTURE port gives you the port location with the support
perpendicular to the structure, the STRUCTALT port gives you the port location with the support
vertically connected (parallel to the global Z-axis) to the structure. If the structure is not sloping,
the STRUCTURE port and the STRUCTALT port are in the same location.
Sometimes when developing assemblies, the reference port location, or orientation, is not in the
ideal location. The HS Assembly > Diagnostic Supports > Reference Port Diagnostic Support
support lets you visualize where the original and alternate structure and route ports are located
and oriented.

See Also
Part Ports (on page 20)
Constraints (on page 24)
Joints (on page 25)

Hangers and Supports Reference Data Guide

23

Hangers and Supports Reference Data

Constraints
The software uses constraints to control how part symbol ports relate to each other and to
reference ports. There are four constraints that can be defined by themselves or in conjunction
with another constraint.
Parallel - Restricts geometries so that they are parallel. The constraint can only be applied
between geometries with an associated direction. For ports, these geometries are axes and
planes. A plane's direction is defined by its normal vector.
Perpendicular - Restricts geometries so that they are perpendicular. The constraint can only be
applied between geometries with an associated direction. For ports, these geometries are axes
and planes. A plane's direction is defined by its normal vector.
Coincident - Makes two geometries identical. Coincident constraints are only valid if one
geometry can be made to touch everywhere with the other geometry.
Distance - Defines the minimum separation in three dimensions between two geometries. Unlike
the other three constraints, this constraint has an associated value. A distance constraint can
have different meanings depending on the geometry types and any other applied constraints.
As an example of constraints, consider this beam clamp and beam.

Two constraints allow the beam clamp to stay flush with the face of the beam while still allowing it
to slide along the axis of the beam. The first constraint is parallel between the Beam XY-plane and
the Beam Clamp XY-plane. The second constraint is coincident between the Beam X-axis and the
Beam Clamp X-axis.

See Also
Part Ports (on page 20)
Reference Ports (on page 23)
Joints (on page 25)

24

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data

Joints
Constraints used between part symbols frequently model the mechanical attachment techniques
used to connect the parts. These parts interact in a limited number of ways. The interaction of
these part ports, the way in which each part can move with respect to the other part, is defined by
joints.
In three-dimensional space, there are six degrees of freedom: X, Y, Z, RX, RY, and RZ. A joint
restricts the motion of parts with respect to each other in one or more of these degrees of freedom.
By using joints, you do not have to specify individual constraints. However, you do need to specify
the joint type, the part ports to join, and the required port geometry. For example, for the revolute
joint shown, you need to specify the joint type (revolute), the pipe and turnbuckle ports to join, and
the port axis of rotation for the joint (X-axis).
You can define more than one joint per port connection as long as the joints do not conflict with
one another.
Some common joints are shown in the pictures below.

Revolute Joint

Cylindrical Joint

Prismatic Joint

Planar Slot Joint

Plane Joint

Translation Joint

Hangers and Supports Reference Data Guide

25

Hangers and Supports Reference Data


The next table lists joint and coupling types along with the associated degrees of freedom and a
description of each joint.
Joint or
Coupling
Type

Input Geometry

Associated Translationa Rotational


Offset
l
DOF
Description
DOF

Revolute

1) Axis

1) No

Objects spin about provided axis but do not


translate.

2) Origin (implied) 2) No
Planar

Plane

Yes

Objects free to rotate and translate while


provided planes remain flush.

Translation

1) Plane

1) Yes

2) Axis (in
specified plane)

2) No

Objects may translate but NOT rotate while


provided planes remain flush.

1) Plane

1) Yes

2) Axis (in
specified plane)

2) Yes

Objects may slide along provided axis but


NOT rotate about the axis.

1) Plane

1) Yes

Objects are rigidly fixed relative to each other.

2) Axis (in
specified plane)

2) Yes

Objects are rigidly fixed relative to each other


at a specified angle.

Prismatic

Rigid

3) Yes

3) Origin (implied)
Angular
Rigid

1) Plane

1) Yes

2) Offset

2) Yes

3) Rotation

3) Yes

Spherical

Origin (implied)

No

Object origins remain in contact with each


other while objects are free to spin.

Cylindrical

Axis

Yes

Objects are free to spin about and translate


along provided axis.

Planar Slot

1) Plane

1) Yes

While provided planes remain flush, the first


point is on an axis of the second port.

2) Axis (one object 2) Yes


only)
Horizontal X Axis/Plane (one
object, world XYplane implied for
other)

No

n/a

n/a

Used on a single port and keeps the specified


axis of the port horizontal and aligned with
global X.

Horizontal Y Axis/Plane (one


object, world
XY-lane implied
for the other)

No

n/a

n/a

Used on a single port and keeps the specified


axis of the port aligned with global Y.

26

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data


Joint or
Coupling
Type

Input Geometry

Associated Translationa Rotational


Offset
l
DOF
Description
DOF

Vertical

Axis/Plane (one
object, world Yaxis implied for
other)

No

n/a

n/a

Axis is made parallel to vertical axis; plane is


forced to contain vertical axis.

PointOn

1) Port Origin
2) Plane or axis

1) No
2) No

1 DOF) if
Geometry
Type is an
Axis.
2 DOF) if
Geometry
Type is a
Plane.

3 DOF

The Origin of geometry 1 is located on


geometry 2. It can translate and rotate as long
as the origin remains on geometry 2. When
using the Configuration Index Calculator,
Geometry Type A refers to Input Geometry 2.

See Also
Part Ports (on page 20)
Reference Ports (on page 23)
Constraints (on page 24)
SupportJoints Sheet (on page 80)

Raising Warnings and Errors from Symbols and


Assemblies
In order to display a message box during placement of a support or part, you must not use the
Visual Basic MsgBox function. Instead, use the PF_EventHandler function.
The PF_EvenHandler function can be used from Assembly Information Rule Visual Basic code
and from Symbols Visual Basic code of Hangers and Supports content.
The following AIR methods can use the PF_EventHandler function:
IJHgrAssmInfo
IJHgrSymbolBOMServices
IJHgrSymbolWCGServices
The following symbol methods can use the PF_EventHandler function:
IJHgrSymbolBOMServices
IJHgrSymbolWCGServices
IJDUserSymbolServices

Functional Behavior of PF_EventHandler


Signature:
Public Sub PF_EventHandler(EventDescription As String, ErrorObject As
ErrObject,
SourceModule As String, SourceMethod As
String,
Optional WarnOnly As Boolean = False)

Hangers and Supports Reference Data Guide

27

Hangers and Supports Reference Data


EventDescription:: is the Description of the Error/Warning that need to
be displayed.
ErrorObject:: is error object at the place where this function is called.
SourceModule:: Module name
SourceMethod:: Method Name
WarnOnly:: Boolean to decide error/Warning.
The location of the .bas file that includes this function is
$\SharedContent\Src\HangersAndSupports\Modules\PF_HgrGeneralUtil.bas. This .bas file must
be included in your Visual Basic project to use this function.
This function adds an error object to the server error collection. The context for this error is
"USERWARNINGMESSAGE" if the WarnOnly parameter is true, otherwise the error context is
"USERERRORMESSAGE". After adding the new error to the server error collection, this function
raises an error back to the caller if WarnOnly parameter is false.
Calling PF_EventHandler from Symbol Code
During placement or modification of Hanger Components (with the Hangers and Supports client
command) hanger symbols can call PF_EventHandler to raise errors or warnings. If there are
warnings raised by PF_EventHandler, all warning messages should be concatenated before
committing the component and displaying a message box. If there is any error raised by
PF_EventHandler, the error is be displayed by a message box and placement aborted.
Computing the Support components (design support) from outside Hangers and Supports
environment
The behavior of recomputing the symbol is dependent on what interface method the
PF_EventHandler calls. If the methods of the IJDUserSymbolServices interface raises warnings,
then it runs successfully with no log information. If there is an error raised, the computation fails
and the symbol occurrence is added to the To Do List.

Calling PF_EventHandler from an AIR


This function can be called from Hanger Rules (AIR methods) to raise an error or warning.
Similarly, any rule progID that implements EvaluateWCG or EvaluateBOM methods can also call
PF_EventHandler to raise errors and warnings.
If the BOM or WCG methods raise warnings, no information is logged and the computation runs
successfully. If there are any errors, the Support is added to the To Do List.
Behavior While Placing the Standard Supports Interactively
While placing assemblies, PF_EventHandler calls can be expected from the AIR as well as
Support Component Symbols. During the interactive placement of an assembly, if there are
warnings raised by PF_EventHandler all warning messages must be concatenated and displayed
by a message box before committing the assembly. If there is an error raised by
PF_EventHandler, the error displays a message box and placement is aborted.
Computation of the Standard Supports from Outside Hanger Environment
If the error is raised by PF_EventHandler, the information is logged to the error log and the
support is added to the To Do List. If there any warnings from the PF_EventHandler, they are
ignored and no log information is generated.
If the methods on the IJDUserSymbolServices of the support component (belonging to a
standard support) symbol raises an error, the support is added to the To Do List. If warnings
are raised, they are ignored.
If the BOM or WCG methods raise warnings, no log information is generated and the
computation runs successfully. If there are any errors, the support component is added to the
To Do List.

28

Hangers and Supports Reference Data Guide

Hangers and Supports Reference Data


Usage of SYMBOL_E_FAIL and SYMBOL_E_WARNING
There are no known hanger symbols that use the SYMBOL_E_FAIL or SYMBOL_E_WARNING
error numbers to raise errors or warnings. These errors can be raised from the symbol with
methods on the IJDUserSymbolServices interface.
After setting the To Do information from the symbol (see example below), one of the above error
numbers can be raised. The symbol creates the corresponding To Do record - either Error TDL or
Warning TDL.

Example: Usage of SYMBOL_E_FAIL from symbol code

Hangers and Supports Reference Data Guide

29

Hangers and Supports Reference Data


Example: Usage of SYMBOL_E_WARNING from symbol code. Warnings can be raised at the
end of the function so that all the outputs are filled successfully

Placement of the New Symbol Occurrences


If any error or warning is raised from the symbol during placement of the symbol, then the part
occurrence is not created and the placement is aborted.
If the symbol is computed successfully during placement with one set of units, but receives invalid
input from the property page, a To Do List entry is added for the support component and the
symbol occurrence is placed with the last set of successful computed values.
During Modification of the Placed Occurrences
Setting an invalid attribute on the occurrence for a symbol that raises an error or warning results in
a To Do List entry for the support component.
During Synchronization
The placed symbol occurrence source code is modified such that in the recomputation the symbol
raises an error or warning. Running the synchronization by increasing the version number creates
a warning To Do List entry if the symbol raises a warning. If the symbol raises an error during
synchronization, the graphics for the occurrence are cleared and an error To Do List entry is
created.

30

Hangers and Supports Reference Data Guide

SECTION 2

Define Assemblies
Assemblies are a collection of parts that form the physical frame to provide the support. The
assembly of a support's constituent parts is done using information defined in the reference data.
Each assembly defined in the reference data is assigned an assembly information rule. The
software uses the logic contained in the assembly information rule to put together the individual
support parts to form an assembly.

There are several assembly sheets already defined in the delivered hanger and support reference
data. You can find the delivered workbook at [Product
Directory]\CatalogData\Bulkload\DataFiles\HS_Assembly.xls.
When defining assemblies, the basic parameters are:
Part Class Type - Declare the type of supports. There are several types of supports:
PipeSupportDefinitionClass, DuctSupportDefinitionClass, CableTraySupportDefinitionClass,
ConduitSupportDefinitionClass, CombinedSupportDefinitionClass, and
ConnectionSupportComponentClass.
The part classes whose names begin with "Assy" are in the PipeSupportDefinitionClass.
Occurrence Attributes - Specify any optional occurrence attributes on the part class level for the
support.
Part Number - Type a part number for the assembly. This name must be unique across the entire
reference data catalog.
Part Description - Enter a description for the assembly.
Symbol Definition - Not used for assemblies. Leave empty.

Hangers and Supports Reference Data Guide

31

Define Assemblies
Symbol Icon - Specify the path of the graphic file, relative to the SharedContent share, that
contains the image of the support. The graphic file is used as a preview in the software.
Discipline Type - Enter the code that represents the type of object that this assembly can
support. Valid codes are listed on the HngSupDiscipline sheet in the AllCodeLists.xls workbook
in the Codelist Number column.
Command Type - Enter the code that specifies which Hangers and Supports task command can
use the assembly. Valid codes are listed on the HngSupCommand sheet in the AllCodeLists.xls
workbook in the Codelist Number column.
Type Selection Rule - Enter the code that specifies the location of the support with respect to the
route being supported. Valid codes are listed on the HngSupTypeSelectionRule sheet in the
AllCodeLists.xls workbook in the Codelist Number column.
Assembly Info Rule - Specifies the custom Visual Basic Assembly Information Rule to use to
construct the assembly. For more information about Assembly Information Rules, see Assembly
Information Rule Examples (on page 48).
Max Insulation - Not used. Set to -1.
Load Range Low - Enter the minimum load for the assembly. This assembly is not used for loads
lighter than this value. Include the units of measurement, lbf for example, when specifying this
value.
Load Range High - Enter the maximum load for the assembly. This assembly is not used for
loads heavier than this value. Include the units of measurement, lbf for example, when specifying
this value.
Minimum Assembly Length - Enter the minimum length that this assembly can be. Include the
units of measurement, in or mm for example, when specifying this value.
Maximum Assembly Length - Enter the maximum length that this assembly can be. Include the
units of measurement, in or mm for example, when specifying this value.
Supporting Count - Specify the maximum number of supporting objects, a beam for example, to
which the assembly can be attached. Enter 1+ to indicate that the support can be attached to a
variable number of supporting objects.
Supported Count - Specify the maximum number of supported objects, a pipe for example, to
which the assembly can be attached. Enter 1+ to indicate that the support can be attached to a
variable number of supported objects.
ND From - Enter the minimum nominal diameter for the supported object. This option is only used
for conduit and pipe assemblies.
ND To - Enter the maximum nominal diameter for the supported object. This option is only used
for conduit and pipe assemblies.
ND Unit Type - Enter the units for the ND From and ND To values.
Nominal Width From - Enter the minimum width of the supported object for the assembly.
Include the units of measurement, in or mm for example, when specifying this value. This value is
only used for square ducts and cable trays or cable ways.
Nominal Width To - Enter the maximum width of the supported object for the assembly. Include
the units of measurement, in or mm for example, when specifying this value. This value is only
used for square ducts and cable trays or cable ways.
Nominal Depth From - Enter the minimum depth of the supported object for the assembly.
Include the units of measurement, in or mm for example, when specifying this value. Enter 0 if the
supported object is circular. This value is only used for square ducts and cable trays or cable
ways.
Nominal Depth To - Enter the maximum depth of the supported object for the assembly. Include
the units of measurement, in or mm for example, when specifying this value. Enter 0 if the

32

Hangers and Supports Reference Data Guide

Define Assemblies
supported object is circular. This value is only used for square ducts and cable trays or cable
ways.
Supported Family - Enter the type of supported object. Valid types are STRAIGHT, TURN, END,
and PART. Using END and PART allow you to place hangers on in-line components. PART
defines objects such as valves, flanges, and tees. END defines end features (for example,
reducers, caps, blind flange, and so forth).
Face Selection Type - Enter the face selection combination that you would like to use for the
assembly. This column specifies which faces on a structure member that the assembly attaches.
These combinations are defined on the Face Selection sheet. You enter a number from the
Selection Key column on the Face Selection sheet in this column.
Insulation Purpose - Enter the insulation purpose code for the supported object. Valid codes are
listed on the Insulation Purpose sheet in the AllCodeLists.xls workbook in the Codelist
Number column.
Support Type - Enter the type for the assembly. Valid codes are listed on the
HngSupSupportType sheet in the AllCodeLists.xls workbook in the Codelist Number column.
Mirror Behavior Option - Enter the code that represents the mirror behavior for the assembly.
Valid codes are listed in the AllCodeLists.xls workbook on the Mirror Behavior Option sheet in
the Codelist Number column.

See Also
Hangers and Supports Reference Data (on page 15)
Assembly Information Rule Examples (on page 48)
Supports and Local Coordinate System (LCS) (on page 33)

Supports and Local Coordinate System (LCS)


Every support placed, whether it is a Designed Support (DS) or a Standard Support Assembly
(Assembly), has a local coordinate system associated with it.

By default, the local coordinate systems are always orientated with LCS North along the pipe, LCS
east to the side of the pipe, and LCS Elevation in the global Up direction. For standard supports on
sloped pipe, the LCS North is horizontal, not sloped with the pipe. There is one exception to this,
for assemblies on vertical pipe. The LCS Elevation axis is not global Up, but rather to the side of
the pipe.

Hangers and Supports Reference Data Guide

33

Define Assemblies
These local coordinate systems are provided to facilitate creating drawings with consistent views.
When creating a drawing, you can use the Use object coordinate system check box when
creating a view so that the view is always looking at the same side of the route object. For
example, if you set the Orientation to Looking North, that view will always be looking at the end
of the route object.

Changing the Local Coordinate System of a Design Support


1. Right-click on the design support

2. Click Local Coordinate System

34

Hangers and Supports Reference Data Guide

Define Assemblies
3. Click Properties

to view the Coordinate System Properties dialog box.

The Properties dialog box for a Design Support contains a User override of LCS option. If you
change the local coordinate system for a design support, this property is set to True. If this
property is set to False, the software orients the local coordinate system.
After a local coordinate system is selected, you can use Rotate Object
rotate it.

command to

You can modify the local coordinate system for design supports only. You cannot modify
the local coordinate system for standard supports interactively, but, you can change the support
code and implement IJHgrLocalCoordinateSystem::GetLocalCoodSystem() function to do so.

Changing the Local Coordinate System of a Standard Support


The Assembly Information code for any Standard Support can be modified to change the
orientation of the local coordinate system for that particular assembly. To do so, you must add an
interface to the module: Implements IJHgrLocalCoordinateSystem and you must implement that
interface in the assembly code. For example:
Implements IJHgrLocalCoordinateSystem
Private Function IJHgrLocalCoordinateSystem_GetLocalCoodSystem(ByVal
pDispInputConfigHlpr As Object, ByVal pDispPartOccCollection As Object) As
Object
Const METHOD = "IJHgrLocalCoordinateSystem_GetLocalCoodSystem"
On Error GoTo ErrorHandler
'Create a Joint Factory
Dim JointFactory As New HgrJointFactory
'Create an object to hold the Joint
Dim LocalCSInfo As Object

Hangers and Supports Reference Data Guide

35

Define Assemblies
'===================================================================
=
'------------Define the local coordinate system configuration------'NOTE: The format is strictly defined 'Only X axis and XY plane of local
coordinate system needs to be defined
'The first pair is always the reference hanger port index/name
'It can be reference port ("Route", "Structure", "BBSR_Low") or existing
symbol port
'Local coordinate system will be referred as -1, and with port name
"LocalCS"
'Following is an example of the allowed format:
'=============reference port ================= local coordinate
system=========
'===index===== 1 ================= -1 =========
'===port name= Structure ================= LocalCS =========
'===Plane===== YZ ================= XY =========
'===Align===== False
'===Axis====== Y ================= X =========
'===Align===== True
'===ConfigureIndex No: 9510
Set LocalCSInfo = JointFactory.MakeRigidJoint(1, "Route", -1,
"LocalCS", 11501)
Set IJHgrLocalCoordinateSystem_GetLocalCoodSystem = LocalCSInfo
Exit Function
ErrorHandler:
Err.Raise LogError(Err, MODULE, METHOD, "").Number
End Function

See Also
Define Assemblies (on page 31)

Bounding Boxes
A bounding box (BBX) is a 2D plane that encompasses all of the supported route objects. The
bounding box has two ports that define the diagonally opposite corners of the box.

Figure 1: Points that Define Bounding Boxes


Bounding boxes are used by the assembly information rule to determine the range (bounding box)
of the items being supported. When creating an assembly that is intended to support more than
one object, it is better practice to connect to the bounding box instead of the individual route

36

Hangers and Supports Reference Data Guide

Define Assemblies
objects. That way if another route object is added, the support will re-size because the bounding
box re-sizes to accommodate the new object.

Standard Bounding Boxes


The following ten types of standard bounding boxes are being created for the support.
Bounding Box Route (BBR) - This bounding box is aligned along the cross-section of the
primary supported port. In other words, the x-axis is identical to the route feature direction.
This definition is most widely used in the By Point command support joint definition.
Tangent Box (TANGENT_BBR) - This bounding box calculates the tangent bounding box
when the number of pipes is more than one. This bounding box is aligned along the tangent to
the set of pipe cross sections.
Alternate Tangent Box (TANGENT_ALT_BBR) - This bounding box calculates the tangent
bounding box when the number of pipes is more than one. The tangent used is of the opposite
side from the Tangent_BBR bounding box.
Bounding Box Route Vertical (BBRV) - This bounding box is aligned along one axis of the
primary reference port and also along the global Z-axis.
Bounding Box Structure (BBS) - This bounding box is aligned along the plane of the
supporting port.
Bounding Box Structure Vertical (BBSV) - This bounding box is aligned along the plane,
which is vertical and aligned along the structure direction.
Bounding Box Structure Route (BBSR) - This bounding box is aligned along the plane
perpendicular to the XY plane of the supporting reference port. This definition can be used in
the By Struct command to ensure that the support is perpendicular to the structures
supporting plane.
GBBR_X - This bounding box is created such that its normal is aligned with the global X
direction. That is, the bounding box is in the global YZ plane.
GBBR_Y - This bounding box is created such that its normal is aligned with the global Y
direction. That is, the bounding box is in the global XZ plane.
GBBR_Z - This bounding box is created such that orientation of the box is always aligned with
the global Z-axis.

Hangers and Supports Reference Data Guide

37

Define Assemblies
The following example illustrates the side and top views of the different standard bounding box
planes:

In the previous example, all reference planes show only orientation of the bounding box. The
different planes have the same root point, which is the origin of the route reference port. This point
is the origin of the route port. The point is the intersection point, which is generated by projecting
the structural axis toward the pipe and intersecting with the pipe axis.

Use Cases
Bounding boxes are useful when creating frame type assemblies. They provide you with reference
ports that you would otherwise need to create using connection objects or joint offsets.
Because you sometimes need more freedom than a rigid joint allows, joint offsets do not
always work.
The following examples illustrate different bounding box use cases:

38

Hangers and Supports Reference Data Guide

Define Assemblies

Hangers and Supports Reference Data Guide

39

Define Assemblies
Combination of Vertical and Horizontal Pipes
Bounding boxes for combinations of vertical and horizontal pipes depends on the first pipe
selected. If a horizontal pipe is selected first, then bounding box is created only around horizontal
pipes. In this case, all the vertical pipes are ignored, as shown in the following example. If,
however, a vertical pipe is selected first, then only vertical pipes are considered for bounding box
creation.

Custom Bounding Boxes


When supports are placed, bounding box reference ports are often used to locate and orient the
individual parts of the support. The bounding box reference ports are especially useful when
dealing with support assemblies that have multiple supported objects. Currently, many different
types of bounding boxes exist, each with different predefined orientations. For certain support
assemblies, however, none of the existing predefined bounding boxes provide the required
orientation. In these situations, you can use the bounding box Application Programming Interface
(API) to create any bounding box with any orientation.
The aim of the API is to redefine how the bounding boxes are described and created in order to
give the Assembly Information Rule (AIR) developer more control over the bounding box behavior
while also supplying many more types of bounding boxes. The API allows the AIR developer to
define the required bounding box as per the requirements of the support being developed.

Custom Bounding Box API


Using the API to define a bounding box is a two-step process. First, you must define the
orientation of the bounding box by providing vectors along the X, Y, or Z-axis of the bounding box.
You can specify any vector; however, for ease of use, a function is provided that provides direct
access to many commonly used vectors. Second, you can create the bounding box using the
provided API.
The following sections explain, in detail, how to use the BBX API.
Define the vectors that define the BBX plane:
To begin, create two vectors that define the plane of the bounding box.

40

Hangers and Supports Reference Data Guide

Define Assemblies
For more information about how vectors are used to define the bounding box plane, see
Bounding Box Planes (on page 44).
The GetVectorAlong function is provided to give you direct access to vectors commonly used to
define bounding boxes. You can either use this function, or you can define the vectors directly.
The GetVectorAlong function works as described below:
GetVectorAlong(eVecDirection As eHgrBBXDirection, [pPerpVector As
IJDVector]) as IJDVector
The first input, eVecDirection, specifies an enum that determines the direction of the vector. The
second input, pPerpVctor, is optional and defines a vector that is normal to the desired plane of
the bounding box. If the second input is given, then the resulting vector is projected into the plane
that is perpendicular to the pPerpVector. This can also be used to ensure that the returned vector
is orthogonal to the second vector passed, and these two can then be used to define a bounding
box.
The enum eHgrBBXDirection currently contains the following:
BBXVec_AlongRoute - Returns a vector along the routes primary axis.
BBXVec_GlobalX - Returns the global X vector [1,0,0].
BBXVec_GlobalY - Returns the global Y vector [0,1,0].
BBXVec_GlobalZ - Returns the global Z vector [0,0,1].
BBXVec_OrthogonalToRoute - Returns a vector perpendicular to the routes primary axis.
BBXVec_RouteToStruct - Returns a vector from the route to the structure.
BBXVec_RouteX - Returns the route reference port's X-axis.
BBXVec_RouteY - Returns the route reference port's Y-axis.
BBXVec_RouteZ - Returns the route reference port's Z-axis.
BBXVec_StructureX - Returns the structure reference port's X-axis.
BBXVec_StructureY - Returns the structure reference port's Y-axis.
BBXVec_StructureZ - Returns the structure reference port's Z-axis.
BBXVec_Tangent - Returns a vector from the centerline of the first route to the centerline of
the last.
For example, to create a bounding box similar to BBRV, you first call the API by passing the enum
only, as globalZ.
oVec_Z = GetVectorAlong (BBXVec_GlobalZ)
Where one of the vectors to be used for BBX creation is global Z.
oVec = GetvectorAlong (AlongRoute, oVec_Z)
Where the second vector should be along route, but will be projected into the horizontal plane
whose normal is oVec_Z.
AlongRoute ensures that the oVec is first generated based on the direction of the route. When
the second vector is passed, it receives a horizontal projection (on global XY plane), so that the
vector is perpendicular to the oVec_Z.
Create BBX given two vectors:
Next, you use the specified vectors to create the bounding box. There are two different functions
that you can use, depending on whether you want to specify two vectors in the bounding box plane
(Y- and Z-axis) or you want to specify a vector normal to the bounding box plane (X-axis). The
signatures of the functions are:
CreateBBXGivenTwoVectors(pBBXy As IJDVector, pBBXz As IJDVector,
strBBXName As String, enumInsulatOp As HgrInsulationOption,
[bMirrorFlag As Boolean], [bConatinsRouteRefPort as Boolean]) As Object

Hangers and Supports Reference Data Guide

41

Define Assemblies
CreateBBXGivenAVectorAndNormal(pBBXVec As IJDVector, pBBXNormal As
IJDVector, strBBXName As String, enumInsulatOp As HgrInsulationOption,
[bMirrorFlag As Boolean], [bConatinsRouteRefPort as Boolean],
[bUseBBXVecAsY As Boolean]) as Object
The explanation of the parameters for the two APIs is as follows:

It is assumed that the Y-Z of the bounding box reference ports is the bounding box plane.
pBBXy - Vector that defines the Y-axis of the BBX port.
pBBXz - Vector that defines the Z-axis of the BBX port.
strBBXName - String that specifies the name to be given to the BBX (must be unique)
enumInsulatOp - Flag to specify if the BBX should include or exclude insulation. For more
information, see Insulation Option (on page 45).
bMirrorFlag - Flag to specify if the BBX should be mirrored. The default is false. For more
information, see Mirror Bounding Boxes (on page 46).
bConatinsRouteRefPort - Flag to specify if the Y-Z plane of the BBX should contain the route
reference port or the structure reference port. The default is route for Place By Point and
Structure for Place By Structure. For more information, see Bounding Box Planes Containing
Route and Structure (on page 47).
pBBXVec - Vector that defines the Y- or Z-axis, as defined by the flag, of the BBX port.
pBBXNormal - Vector that defines the normal of the BBX (X- axis).
bUseBBXVecAsY - Flag that specifies whether the pBBXVec that is passed is used as the
Y-axis of the BBX axis. The default is true. If false, the passed vector is used as the Z-axis of
the BBX.
The name to be given to the bounding box (strBBXName) is used to create the name of the
bounding box. For example, if the string is passed as MyBBX, then the bounding box ports are
created with the names MyBBX_High and MyBBX_Low). This allows the AIR developer to
define a bounding box with any orientation and any name.
The two steps defined above must be used together to create a user-defined bounding box.
For more information, see Example Code for Custom Bounding Box API (on page 48).

Diagnostic Supports
A sample assembly that shows a custom bounding box in the model is provided: HS Assembly
> Diagnostic Supports > V9.1 BBX Diagnostic Support. Two example bounding boxes are
available, one for horizontal pipes and one for vertical pipes.

42

Hangers and Supports Reference Data Guide

Define Assemblies
The sample support is meant to graphically represent the plane of the bounding box using a plate
representation. Two cylinders are used to represent the Z-axis and the Y-axis of the high port. Two
boxes are used to represent the Z-axis and Y-axis of the low port.

Figure 2: Bounding Box Sample Support


The sample support has two occurrence properties that you can use to control the behavior of the
bounding box. The BBX Alignment property is used to specify how the Z-axis of the bounding
box should be aligned within the plane.
Direct Towards Structure - The bounding box is parallel to the supporting structure.

Orthogonal to Global CS - The bounding box is parallel to the global coordinate system.

The BBX Mirror property is used to mirror the bounding box.

Hangers and Supports Reference Data Guide

43

Define Assemblies

Bounding Box Planes


Each bounding box can be defined as having an X-, Y-, and Z-axis. The plane of the bounding box
contains the Y- and Z-axis, while the X-axis is normal to the plane. The following illustration shows
a standard bounding box, in which the blue arrows represent the Y-axis, and the green arrows
represent the Z-axis.
As per a right-handed coordinate system, the X-axis is normal to the plane and pointing out
of the page towards you.

By changing the orientation of the Y and Z vectors, you have complete control over the bounding
box. You can rotate the Y and Z vectors by some angle, effectively rotating the bounding box as
shown in the following illustration. This provides an easy mechanism for rotating supports that
attach to multiple supported objects.

44

Hangers and Supports Reference Data Guide

Define Assemblies

Insulation Option
The insulation option allows you to specify whether or not the bounding box should include the
insulation. The flag makes use of the HgrInsulationOption with allowable values shown in the
following examples:
Exclude Insulation - The insulation is not included in the range of the bounding box.

Include Insulation - The insulation is included in the range of the bounding box.

Hangers and Supports Reference Data Guide

45

Define Assemblies

Mirror Bounding Boxes


The Mirror flag is used to specify whether the bounding box is mirrored. For mirroring, the
bounding box X-axis is reversed, forcing the Y-axis to flip in order to retain a right hand coordinate
system. The result is the ability to switch between the two cases as shown in the following
examples. The first illustration (1) shows the bounding with the X-axis pointing out of the page,
whereas the second illustration (2) shows the bounding box with the X-axis pointing into the page.

46

Mirroring reverses the bounding box X-axis such that Bx = -Bx while the bounding box Z-axis
remains the same.
This toggle allows you to mirror a support by simply mirroring the bounding box, as opposed to
switching the joints that connect the support to the bounding box.

Hangers and Supports Reference Data Guide

Define Assemblies

Bounding Box Planes Containing Route and Structure


The bConatinsRouteRefPort flag is used to specify where the bounding box should be located
along the route(s). If true, the bounding box is located such that the reference port of the primary
route is on the plane of the bounding box, as shown in the following illustration.

If false, the bounding box is located such that the reference port of the primary structure is on the
plane of the bounding box.

Hangers and Supports Reference Data Guide

47

Define Assemblies

Example Code for Custom Bounding Box API


The following examples show how to use the BBX API in Visual Basic 6.0. This code is used by
the sample BBX supports defined on the HS_Assembly.Assy_BBX sheet in the
HS_Assembly.xls workbook. You can find the delivered workbook at [Product
Directory}:\CatalogData\Bulkload\DataFiles\HS_Assembly.xls.
Example 1
'Vertical Plane Normal Along Route - Z Axis Towards Structure
GlobalZ = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_GlobalZ)
'Get Global Z
'Project Route X-Axis into Horizontal Plane
BB_X = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_AlongRoute, GlobalZ)
'Project Vector Orthogonal to Route into the BBX Plane
BB_Z = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_OrthogonalToRoute, BB_X)
my_IJHgrBBXHlpr.CreateBBXGivenAVectorAndNormal(BB_Z, BB_X, "TestBBX",
IncludeInsulation, False, True, False)
Example 2
'Vertical Plane Normal Along Route - Z Axis Orthogonal to Global CS
GlobalZ = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_GlobalZ)
'Get Global Z
'Project Route into Horizontal Plane
BB_X = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_AlongRoute, GlobalZ)
BB_Z = my_IJHgrBBXHlpr.GetVectorAlong(BBXVec_OrthogonalToRoute, BB_X)
'Get Horizontal Vector in the BBX Plane (For Orthogonal direction)
BB_Y = GlobalZ.Cross(BB_X)
'Get Orthogonal Vector in the plane of the BBX (Gz, -Gz, By, -By) depending
on Angle
If AngleBetweenVectors(GlobalZ, BB_Z) < Pi / 4 Then
BB_Z = GlobalZ
ElseIf AngleBetweenVectors(GlobalZ, BB_Z) > 3 * Pi / 4 Then
BB_Z.Set(-GlobalZ.x, -GlobalZ.y, -GlobalZ.z)
ElseIf AngleBetweenVectors(BB_Y, BB_Z) < Pi / 4 Then
BB_Z = BB_Y
Else
BB_Z.Set(-BB_Y.x, -BB_Y.y, -BB_Y.z)
End If
my_IJHgrBBXHlpr.CreateBBXGivenAVectorAndNormal(BB_Z, BB_X, "TestBBX",
IncludeInsulation, False, True, False)

Assembly Information Rule Examples


The assembly information for each support type is defined in assembly reference data using the
AssmInfoRule attribute.
The AssmInfoRule attribute (short for Assembly Information Rule) contains the ProgId of a COM
object implementing the IJHgrAssmInfo interface. In most cases, the rule is a Visual Basic class.
The purpose of an Assembly Information Rule is to provide any required information about the
assembly during the evaluation of a support. Information is acquired by calling the methods
defined on the IJHgrAssmInfo interface.
There are five methods defined within the Visual Basic program:

48

Hangers and Supports Reference Data Guide

Define Assemblies

IJHgrAssmInfo:: GetAssemblyCatalogParts() defines the part class and retrieves the parts.
See GetAssemblyCatalogParts Method (on page 55).
IJHgrAssmInfo::GetAssemblyJoints() defines the constraints between the parts. See
GetAssemblyJoints Method (on page 57).
IJHgrAssmInfo::GetRouteConnections() defines which part is connected to the route. See
GetRouteConnections Method (on page 60).
IJHgrAssmInfo::GetStructConnections() defines which part is connected to the structure. See
GetStructConnections Method (on page 63).
IJHgrAssmInfo::GetMaxRouteConnectionValue() defines the route toggle configurations
supported by the Assembly Information Rule.

What do you want to do?

Add a note to key points using AIR (on page 50)


Add a dimension port using CreateNoteAndAssociateToPort function in AIR (on page 51)
Add control point using CreateCPAtPoint Function in AIR (on page 54)

Hangers and Supports Reference Data Guide

49

Define Assemblies

Add a note to key points using AIR


1. For this example, notes (with Show dimension checked) are added to the key points using
AIR, so that the horizontal and vertical dimensions can be obtained as shown below.

2. Open Assy_FR_IT_LS.cls in the HS_Assembly.vbp in [Product Directory]\3D\


Programming\ExampleCode\HangersAndSupports\Rules\AssemblyInfo\Pipe\HS_Assembly
folder.
3. In the IJHgrAssmInfo_ GetAssemblyJoints method, add the following code to set the note
on the available key points to obtain the needed dimensions.
'Get interface for accessing items on the collection of Part
Occurences
Dim IJElements_PartOccCollection As IJElements
Set IJElements_PartOccCollection = pDispPartOccCollection
Dim oNote1 As IJGeneralNote
Set oNote1 =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("Dim1", _
IJElements_PartOccCollection.Item(2), "BeginCap")
oNote1.Text = "First Dimension"
oNote1.Purpose = 3 ' value 3 means fabrication
oNote1.Dimensioned = True
Dim oNote2 As IJGeneralNote

50

Hangers and Supports Reference Data Guide

Define Assemblies
Set oNote2 =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("Dim2", _
IJElements_PartOccCollection.Item(2), "EndCap")
oNote2.Text = "Second Dimension"
oNote2.Purpose = 3 ' value 3 means fabrication
oNote2.Dimensioned = True
Dim oNote3 As IJGeneralNote
Set oNote3 =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("Dim3", _
IJElements_PartOccCollection.Item(1), "BeginCap")
oNote3.Text = "Third Dimension"
oNote3.Purpose = 3 ' value 3 means fabrication
oNote3.Dimensioned = True
4. Compile the dll and place it in the [Product
Directory]\3DRefData\SharedContent\Bin\HangersAndSupports\Rules\Release folder.
5. Place the support in the Hangers and Supports task by selecting Assy_FR_IT_LS as the
value for Type, and create the drawings. The dimensions are displayed between the key
points, and the notes are added.

Add a dimension port using CreateNoteAndAssociateToPort


function in AIR
For this example, add the dimension ports in the AIR to obtain the horizontal and vertical
dimensions as shown below.
For every dimension, two dimension ports are required.

Hangers and Supports Reference Data Guide

51

Define Assemblies
1. Open Assy_RR_DR_LS.cls in the HS_Assembly.vbp in [Product Directory]\3D\
Programming\ExampleCode\HangersAndSupports\Rules\AssemblyInfo\Pipe\HS_Assembly
folder.
2. First, define the required dimension ports as the global variable in the class file.
Private bDimensionPort As Boolean
Dim DIM_1 As Integer
Dim DIM_2 As Integer
Dim DIM_3 As Integer
Dim DIM_4 As Integer
Dim DIM_5 As Integer
3. In the IJHgrAssmInfo_GetAssemblyCatalogParts method, add the following code to
retrieve dimensional data from the assembly part definition as shown below.
Dim DimPort1 As String
Dim intPartCount As Integer
DimPort1 = "HSDimensionPort"
Dim strSQL As String
bDimensionPort = False
strSQL = "Select * from REFDATPartClass Where name='" &
CStr(DimPort1) & "'"
Dim partObjColl As IJDCollection
Dim oIJPartSelHlpr As IJHgrPartSelectionDBHlpr
Set oIJPartSelHlpr = New PartSelectionHlpr
Set partObjColl =
oIJPartSelHlpr.GetPartCollectionFromDBQuery(strSQL)
If partObjColl.Size > 0 Then
bDimensionPort = True
End If
4. Add the following code to specify the part class constituting the assembly as shown below:
If bDimensionPort = True Then
DIM_1 = UBound(PartClasses) + 1
DIM_2 = DIM_1 + 1
DIM_3 = DIM_2 + 1
DIM_4 = DIM_3 + 1
DIM_5 = DIM_4 + 1
ReDim Preserve PartClasses(UBound(PartClasses) + 5)
PartClasses(DIM_1) = DimPort1 & "_1"
PartClasses(DIM_2) = DimPort1 & "_1"
PartClasses(DIM_3) = DimPort1 & "_1"
PartClasses(DIM_4) = DimPort1 & "_1"
PartClasses(DIM_5) = DimPort1 & "_1"
End If
5. In the IJHgrAssmInfo_ GetAssemblyJoints method, add the following code to place the
dimension ports in the required location and obtain the dimensions.
Set AssemblyJoint = JointFactory.MakeRigidJoint(HOR_SECTION,
"BeginCap", DIM_1, "Dimension")
JointCollection.Add AssemblyJoint

52

Hangers and Supports Reference Data Guide

Define Assemblies
Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_2,
"Dimension", DIM_1, "Dimension", , -OVERHANG)
JointCollection.Add AssemblyJoint
If my_IJHgrInputConfigHlpr.IsPlaceByStructure Then
Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_1,
"Dimension", DIM_3, "Dimension", , W1 + W2 + OVERHANG + OVERHANG) 'dWidth
+ (2 *
OVERHANG) + W1) 'Length_hor1 + (2 * OVERHANG)) '+
Length_hor2 + OVERHANG + OVERHANG)
Else
Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_1,
"Dimension", DIM_3, "Dimension", , Length_hor1 + Length_hor2 + OVERHANG
+ OVERHANG)
End If
JointCollection.Add AssemblyJoint
'Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_4,
"Dimension", DIM_1, "Dimension", , , SteelDepth)
'JointCollection.Add AssemblyJoint
Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_4,
"Dimension", DIM_1, "Dimension", , , Length_Vert1)
JointCollection.Add AssemblyJoint
Set AssemblyJoint = JointFactory.MakeRigidJoint(DIM_1,
"Dimension", DIM_5, "Dimension", , , -Length_Vert2)
JointCollection.Add AssemblyJoint
6. Add the following code to set the note on the support dimension ports.
Dim oNoteLStart As IJGeneralNote
Set oNoteLStart =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("L_Start",
IJElements_PartOccCollection.Item(DIM_1), "Dimension")
oNoteLStart.Text = "L_Start"
oNoteLStart.Purpose = 3
' value 3 means fabrication
oNoteLStart.Dimensioned = True
Dim oNoteLMid As IJGeneralNote
Set oNoteLMid =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("L_Mid",
IJElements_PartOccCollection.Item(DIM_2), "Dimension")
oNoteLMid.Text = "L_Mid"
oNoteLMid.Purpose = 3
' value 3 means fabrication
oNoteLMid.Dimensioned = True
Dim oNoteLEnd As IJGeneralNote
Set oNoteLEnd =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("L_End",
IJElements_PartOccCollection.Item(DIM_3), "Dimension")
oNoteLEnd.Text = "L_End"
oNoteLEnd.Purpose = 3
' value 3 means fabrication
oNoteLEnd.Dimensioned = True
Dim oNoteL1 As IJGeneralNote

Hangers and Supports Reference Data Guide

53

Define Assemblies
Set oNoteL1 =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("L_1",
IJElements_PartOccCollection.Item(DIM_4), "Dimension")
oNoteL1.Text = "L_1"
oNoteL1.Purpose = 3
' value 3 means fabrication
oNoteL1.Dimensioned = True
Dim oNoteL2 As IJGeneralNote
Set oNoteL2 =
my_IJHgrInputConfigHlpr.CreateNoteAndAssociateToPort("L_2",
IJElements_PartOccCollection.Item(DIM_5), "Dimension")
oNoteL2.Text = "L_2"
oNoteL2.Purpose = 3
' value 3 means fabrication
oNoteL2.Dimensioned = True
7. Compile the HS_Assembly.dll and place it in the [Product
Directory]\3DRefData\SharedContent\Bin\HangersAndSupports\Rules\Release folder.
8. Place the support in the Hangers and Supports task by selecting Assy_RR_DR_LS as the
the value for Type box. Dimensions are displayed between the dimension ports, and the
notes are added.

Add control point using CreateCPAtPoint Function in AIR


1. For this example, add the control point to the top of the vertical section to obtain the length of
the vertical section.

54

Hangers and Supports Reference Data Guide

Define Assemblies
2. Open Assy_FR_IT_LS.cls in the HS_Assembly.vbp in [Product Directory]\3D\
Programming\ExampleCode\HangersAndSupports\Rules\AssemblyInfo\Pipe\HS_Assembly
folder.
3. In the IJHgrAssmInfo_ GetAssemblyJoints method, add the following code to place the
control point at the top of the vertical section, to get the dimensions.
Set oElms = my_IJHgrInputConfigHlpr.CreateCPAtPoint("Dim4", 1,
"EndCap", 0#, 0#, 0#, 0.001, _
"Fourth Dimension", True, , , 1)
'Return the collection of Joints
Set IJHgrAssmInfo_GetAssemblyJoints = JointCollection
4. Compile the HS_Assembly.dll and place it in the [Product
Directory]\3DRefData\SharedContent\Bin\HangersAndSupports\Rules\Release folder.
5. Place the support in the Hangers and Supports task by selecting Assy_FR_IT_LS as the
value for Type box. Dimensions are displayed between the control point and the dimension
ports.

GetAssemblyCatalogParts Method
The GetAssemblyCatalogParts method of the IJHgrAssmInfo interface is responsible for
specifying the catalog parts constituting the assembly. The method is defined as:
Function IJHgrAssmInfo_GetAssemblyCatalogParts (
ByVal pDispInputConfigHlpr As Object
) As Object
The method should return a collection of objects implementing the IJDPart interface. The following
shows a sample implementation of this method for the hanger support assembly shown in Figure
1.
In the following example, the code that appears in italicized text is only included to illustrate
how to use the assembly information rule to add implied parts.
Implements IJHgrAssmInfo
Private Const BEAM_CLAMP = 1
Private Const ROD = 2
Private Const PIPE_CLAMP = 3
Private Function IJHgrAssmInfo_GetAssemblyCatalogParts(ByVal
pDispInputConfigHlpr As Object) As Object
'Get IJHgrInputConfig Hlpr Interface off of passed Helper
Dim my_IJHgrInputConfigHlpr As IJHgrInputConfigHlpr
Set my_IJHgrInputConfigHlpr = pDispInputConfigHlpr
Dim
Dim
Dim
Dim

ROD_SIZE As String
BEAM_CLAMP_SIZE As String
ROD_TYPE As String
varTemp As Variant

my_IJHgrInputConfigHlpr.GetAttributeValue "ROD_TYPE", Nothing, varTemp


ROD_TYPE = varTemp
my_IJHgrInputConfigHlpr.GetAttributeValue "ROD_SIZE", Nothing, varTemp
ROD_SIZE = varTemp
my_IJHgrInputConfigHlpr.GetAttributeValue "BEAM_CLAMP_SIZE", Nothing,
varTemp

Hangers and Supports Reference Data Guide

55

Define Assemblies
BEAM_CLAMP_SIZE = varTemp
'Create a new collection to hold the catalog parts
Dim CatalogPartCollection As New Collection
'A collection of implied parts which needs to be added.
Dim ImpliedPartClasses As New Collection
'Create the list of part classes required by the support assembly
Dim PartClasses(3) As String
PartClasses(BEAM_CLAMP) = "Anvil_FIG29_ " + BEAM_CLAMP_SIZE
PartClasses(ROD) = ROD_TYPE + ROD_SIZE
PartClasses(PIPE_CLAMP) = "Anvil_FIG260"
ImpliedPartClasses.Add "LRParts_FIG212N_20"
ImpliedPartClasses.Add "Anvil_FIG137_10"
'Use the default selection rule to get a catalog part for each part class
Dim index As Integer
Set IJHgrAssmInfo_GetAssemblyCatalogParts =
AddPartsByClassName(pDispInputConfigHlpr, PartClasses)
my_IJHgrInputConfigHlpr.ImpliedPartCollection = ImpliedPartClasses
ImpliedPartCollection is a new property which takes the collection of parts
which needs to be created as implied part.
End Function

56

Hangers and Supports Reference Data Guide

Define Assemblies
Arguments for the method are limited to a single object named the Input Configuration Helper.
This object offers access to the input specified by the user during the creation of the support as
well as any services required by the Assembly Information Rule. In the previous example, the
GetPartFromClass method of the Input Configuration Helper is used to obtain a catalog part given
a part class name.

Figure 1: Hanger Support with Associated Ports and Joints

GetAssemblyJoints Method
The GetAssemblyJoints method of the IJHgrAssmInfo interface provides the joints required to
assemble the support. The method is defined as:
Function IJHgrAssmInfo_GetAssemblyJoints (
ByVal pDispInputConfigHlpr As Object
ByVal pDispPartOccCollection As Object
) As Object
The method should return a collection of objects implementing the IJHgrJoint interface. The
following shows a sample implementation of this method for the hanger support assembly shown
in Figure 1.

Hangers and Supports Reference Data Guide

57

Define Assemblies
Implements IJHgrAssmInfo
Private Function IJHgrAssmInfo_GetAssemblyJoints( ByVal pDispInputConfigHlpr As Object,
ByVal pDispPartOccCollection As Object ) As Object
'Get IJHgrInputConfig Hlpr Interface off of passed Helper
Dim my_IJHgrInputConfigHlpr As IJHgrInputConfigHlpr
Set my_IJHgrInputConfigHlpr = pDispInputConfigHlpr
'Set Attributes on Part Occurrence
'=====================
'Get the Diameter of the Primary Pipe
Dim PipeRadius As Double
PipeRadius = (my_IJHgrInputConfigHlpr.PrimaryPipeDiameter) / 2#
'Get interface for accessing items on the collection of Part Occurrences
Dim IJElements_PartOccCollection As IJElements
Set IJElements_PartOccCollection = pDispPartOccCollection
'Get the Pipe Clamp from the collection. It will be the third Part Occurrence.
Dim PipeClamp As Object
Set PipeClamp = IJElements_PartOccCollection.Item(3)
'Set the Pipe Radius Attribute on the Pipe Clamp Symbol
Dim strPipeRadius As String
strPipeRadius = "PipeRadius"
my_IJHgrInputConfigHlpr.SetSymbolInputByName PipeClamp, strPipeRadius, PipeRadius
'Create Joints
'========
'Create a collection to hold the joints
Dim JointCollection As New Collection
'Create a Joint Factory
Dim JointFactory As New HgrJointFactory
'Create an object to hold the Joint
Dim AssemblyJoint As Object
'Create the Flexible (Cylindrical) Joint between the ports of the rod
Set AssemblyJoint = JointFactory.MakeCylindricalJoint(2, "RodTop", 2, "RodBottom")
JointCollection.Add AssemblyJoint
'Add a Rigid Joint between Pipe and Pipe Clamp
Set AssemblyJoint = JointFactory.MakeRigidJoint(3, "PipeAttachment", -1, "Pipe")
JointCollection.Add AssemblyJoint
'Add a Translation Joint between the Beam and the Beam Clamp
Set AssemblyJoint = JointFactory.MakePrismaticJoint(1, "BeamAttachment", -1, "Structure")
JointCollection.Add AssemblyJoint
'Add a Spherical Joint between Beam Clamp and Top of Rod
Set AssemblyJoint = JointFactory.MakeSphericalJoint(1, "RodAttachment", 2, "RodTop")
JointCollection.Add AssemblyJoint
'Add a Spherical Joint between Pipe Clamp and Bottom of Rod
Set AssemblyJoint = JointFactory.MakeSphericalJoint(3, "RodAttachment", 2, "RodBottom")
JointCollection.Add AssemblyJoint
'Add a Vertical Joint to the Rod Z axis
Set AssemblyJoint = JointFactory.MakeVerticalJoint(2, "RodBottom")
JointCollection.Add AssemblyJoint
'Return the collection of Joints
Set IJHgrAssmInfo_GetAssemblyJoints = JointCollection
End Function

Two objects are passed as input to the method. The first is the Input Configuration Helper. The
second is a collection of part occurrences representing the support. The part occurrences in this
collection are listed in same order as the catalog parts returned by the GetAssemblyCatalogParts
method. Hence, the first part occurrence corresponds to the first catalog part, the second part
occurrence corresponds to the second catalog part, and so on. The part occurrences are provided
to allow the Assembly Information Rule an opportunity to set inputs on the part occurrences'
associated symbol. In the previous example, the "PipeRadius" input is set on the pipe clamp using
information provided by the Input Configuration Helper.
The collection returned by the method contains a list of Hanger Joint objects. These objects are
created using a Joint Factory (a HgrJointFactory object). The Factory implements the
IJHgrJointFactory interface, which contains the following methods:

58

Hangers and Supports Reference Data Guide

Define Assemblies
Function MakeRevoluteJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex ) As Object
Function MakePrismaticJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex,
Double PlaneOffset, Double AxisOffset ) As Object
Function MakeRigidJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex, Double PlaneOffset,
Double AxisOffset, Double OriginOffset ) As Object
Function MakeTranslationJoint
Integer PartIndex_A,
Integer PartIndex_B,
Integer ConfigIndex,
Double PlaneOffset )

(
String PortName_A,
String PortName_B,
As Object

Function MakeVerticalJoint (
Integer PartIndex_A, String PortName_A,
Integer ConfigIndex ) As Object
Function MakeSphericalJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B ) As Object
Function MakeCylindricalJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex,
Double AxisOffset) As Object
Function MakePrismaticJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex,
Double PlaneOffset, Double AxisOffset,
Double OriginOffset ) As Object
Function MakePlanarJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex,
Double PlaneOffset ) As Object
Function MakePointOnJoint (
Integer PartIndex_A, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex ) As Object

Hangers and Supports Reference Data Guide

59

Define Assemblies
These methods create CHgrJoint objects. A CHgrJoint object retains sufficient information to
define the constraints implementing any joint. Member data for the CHgrJoint object includes:
Joint Type (1): an enum describing the type of joint. The IJHgrJointFactory method names indicate
the enum stored.
Symbol Indices (2): Symbols will be indicated as indices into the catalog part list provided as
output to GetAssemblyCatalogParts method. These are the PartIndex_A and PartIndex_B
arguments within the IJHgrJointFactory method prototypes.
Port Names (2): Port names indicate which output of the specified symbol to use when
constructing the joint. These are the PortName_A and PortName_B arguments within the
IJHgrJointFactory method prototypes.
Configuration Index (1): Each joint type requires a defining set of port geometries. For example,
the prismatic joint requires a plane and axis be specified for each of the two participating ports.
Because the geometry associated with each port is limited (3 planes and 3 axes), all possible
combinations can be encoded in a single 32-Bit integer referred to as the Configuration Index.
Configuration Indices can be calculated using a utility provided by development called the
Configuration Index Calculator. If no Configuration Index is provided when calling an
IJHgrJointFactory method, a default representing the most common case is used.
Offsets (3): Several joint types permit the specification of offsets between their defining
geometries. For the most complex case, three offsets are allowed. Offsets are represented using
three doubles. These are the PlaneOffset, AxisOffset, and OriginOffset arguments within the
IJHgrJointFactory method prototypes.

GetRouteConnections Method
The GetRouteConnections method of the IJHgrAssmInfo interface provides information
specifying those components of the assembly that physically connect to the supported input
objects. The method is defined as:
Function IJHgrAssmInfo_GetRouteConnections ( ByVal pDispInputConfigHlpr
As Object
) As Object
The method should return a collection of integer arrays. The following shows a sample
implementation of this method for the structural support assembly shown in Figure 2.

60

Hangers and Supports Reference Data Guide

Define Assemblies
Private Function IJHgrAssmInfo_GetRouteConnections(
pDispInputConfigHlpr As Object ) As Object

ByVal

'Create a collection to hold the ALL Route connection information


Dim RouteCollofConnInfo As New Collection
'Create an ARRAY to hold Route Connection information for the Cross Bar
Dim CrossBarConnectionInfo(4) As Integer
CrossBarConnectionInfo (1) = 3 'Third Part return by
GetAssemblyCatalogParts() is Cross Bar
CrossBarConnectionInfo (2) = 1 'Connects to First Route Reference Port
CrossBarConnectionInfo (3) = 2 'Connects to Second Route Reference Port
CrossBarConnectionInfo (4) = 3 'Connects to Third Route Reference Port
'Create an ARRAY to hold Route Connection information for the Left Ubolt
Dim Left_UBolt_ConnectionInfo(2) As Integer
Left_UBolt_ConnectionInfo(1) = 7 'Seventh Part return by
GetAssemblyCatalogParts() is left most UBolt
Left_UBolt_ConnectionInfo(2) = 1 'Connects to First Route Reference Port
'Create an ARRAY to hold Route Connection information for the Middle Ubolt
Dim Middle_UBolt_ConnectionInfo(2) As Integer
Middle_UBolt_ConnectionInfo (1) = 8 'Eight Part return by
GetAssemblyCatalogParts() is middle UBolt
Middle_UBolt_ConnectionInfo (2) = 2 'Connects to Second Route Reference
Port
'Create an ARRAY to hold Route Connection information for the Right Ubolt
Dim Right_UBolt_ConnectionInfo(2) As Integer
Right_UBolt_ConnectionInfo (1) = 9 'Ninth Part return by
GetAssemblyCatalogParts() is right most UBolt
Right_UBolt_ConnectionInfo (2) = 3 'Connects to Third Route Reference Port
'Add the Connection Information arrays to the returned Collection.
RouteCollofConnInfo.Add CrossBarConnectionInfo
RouteCollofConnInfo.Add Left_UBolt_ConnectionInfo
RouteCollofConnInfo.Add Middle_UBolt_ConnectionInfo
RouteCollofConnInfo.Add Right_UBolt_ConnectionInfo
'Return the collection of Route connection information.
Set IJHgrAssmInfo_GetRouteConnections = RouteCollofConnInfo
End Function

Hangers and Supports Reference Data Guide

61

Define Assemblies

Figure 2: Trapeze Support with Associated Ports


In previous example, four arrays of integers are returned. These arrays correspond to the four
assembly components physically touching the pipes: the cross bar and the three U- bolts. The first
entry in each array is the index of the assembly part as referenced from the list returned in the
GetAssemblyCatalogParts method. For the example, we assume the following part order (see
Figure 2):
1. Column Clamp
2. Rod
3. Cross Bar
4. Bar Clamp
5. Rod
6. Beam Clamp
7. Left U-Bolt
8. Middle U-Bolt
9. Right U-Bolt
All entries following the first in each array refer to the route reference ports to which the assembly
component connects. In the example, the first array returns: (3, 1, 2, 3). This is interpreted as: the
third part returned by GetAssemblyCatalogParts (the cross bar), connects with the first, second,
and third route reference ports (the left, middle, and right pipes). Similar arrays are returned for

62

Hangers and Supports Reference Data Guide

Define Assemblies
each of the U- Bolts; however, these connect with only a single pipe: (7, 1). This is interpreted as:
the seventh part connects with the first route reference port.

GetStructConnections Method
The GetStructConnections method of the IJHgrAssmInfo interface provides information specifying
those components of the assembly that physically connect to the supporting input objects. The
method is defined as:
Function IJHgrAssmInfo_GetStructConnections ( ByVal pDispInputConfigHlpr
As Object) As Object
The method should return a collection of integer arrays. The following shows a sample
implementation of this method for the structural support assembly shown in Figure 2.
Private Function IJHgrAssmInfo_GetStructConnections( ByVal
pDispInputConfigHlpr As Object ) As Object
'Create a collection to hold the ALL Structure connection information
Dim StructCollofConnInfo As New Collection
'Create an ARRAY to hold Structural Connection information for the Column
Clamp
Dim ColumnClampConnectionInfo(2) As Integer
ColumnClampConnectionInfo (1) = 1 'First Part return by
GetAssemblyCatalogParts() is Column Clamp
ColumnClampConnectionInfo (2) = 1 'Connects to First Structural Reference
Port
'Create an ARRAY to hold Structural Connection information for the Beam
Clamp
Dim BeamClampConnectionInfo(2) As Integer
BeamClampConnectionInfo (1) = 6 'Sixth Part return by
GetAssemblyCatalogParts() is Beam Clamp
BeamClampConnectionInfo (2) = 2 'Connects to Second Structural Reference
Port
'Add the Connection Information arrays to the returned Collection.
StructCollofConnInfo.Add ColumnClampConnectionInfo
StructCollofConnInfo.Add BeamClampConnectionInfo
'Return the collection of Struct connection information.
Set IJHgrAssmInfo_GetStructConnections = StructCollofConnInfo
End Function
The format of the returned integer arrays is identical to those returned in the
GetStructConnections method described above. For example, the two arrays returned in the
above example correspond to the two parts physically touching the structural inputs, the column
clamp and the beam clamp. The second of these arrays contains the following entries: (6, 2). This
is interpreted as: the sixth part returned by GetAssemblyCatalogParts (the beam clamp), connects
with the second structural reference ports (the beam).

See Also
Define Assemblies (on page 31)

Hangers and Supports Reference Data Guide

63

Define Assemblies

Assembly Selection Rules


The Assembly Selection Rule (ASR) helps you place appropriate supports in a model by providing
a sorted list of possible supports in the Type box. You must check the Rule box on the ribbon to
enable this command.
For example, you can define the sort order in IJUAHgrRulePriority ::Rule Priority of the
Assy_RR_DR_LS page of the HS_Assembly.xls spreadsheet. If you do not specify a sort order,
then the list of assemblies is sorted alphabetically based on PartDescription.

Creating an Assembly
You create an assembly from a feature (pipe, HVAC duct, or cable tray) and a structure in the
model. Then, the software compares the support properties stored in the catalog with your
assembly and returns a set of appropriate supports in the Type box on the ribbon.

See Also
Determining Which ASR is Used (on page 65)
Delivered Assembly Selection Rules (on page 67)
Assembly Selection Rules Example (on page 69)

64

Hangers and Supports Reference Data Guide

Define Assemblies

Determining Which ASR is Used


The Assembly Selection Rule (ASR) that the software uses to select the list of appropriate
supports is determined by the HgrDisciplineFilter worksheet, from HS_System.xls. The filter
relates the interfaces, on which you are attempting to place a support, to the ASR to be used for
those interfaces. For example, if you place a support on a straight pipe feature, then the ASR is
HgrAssmSelRule.CPipeSupport.

The HgrDisciplineFilter sheet also determines the valid DisciplineType. In the case above,
DisciplineType is set to 1 (Piping Supports Discipline). Therefore, the ASR can use this discipline
type to filter out supports that are not meant to be placed on pipe and return only supports with a
DisciplineType of 1.

Hangers and Supports Reference Data Guide

65

Define Assemblies
The DisciplineType for a given support is set on the support's Excel spreadsheet using the
DisciplineType attribute.

The DisciplineType attribute is a codelist defined in the AllCodelist.xls workbook. The codelist
has several valid values, as shown below.

Only supports whose DisciplineType matches the DisciplineType determined by the


HgrDisciplineFilter worksheet are eligible for use.

See Also
Assembly Selection Rules (on page 64)
Delivered Assembly Selection Rules (on page 67)
Assembly Selection Rules Example (on page 69)

66

Hangers and Supports Reference Data Guide

Define Assemblies

Delivered Assembly Selection Rules


Delivered ASRs
The following Assembly Selection Rules are delivered with the product:
CAssemblySelectionRule
CCableTrayDesigned
CCableTraySupport
CCombinedDesigned
CCombinedSupport
CConduitDesigned
CConduitSupport
CDuctDesigned
CDuctSupport
CPipeDesigned
CPipeSupport
CSecondaryRule1

Worksheet Column Headings


The following column headings can be found in an assembly, Assy_xxx, worksheet. The
information provided is used by the various Assembly Selection Rules to determine whether
supports should be returned.

Worksheet Column Definitions


CommandType - The code that specifies which Hangers and Supports task command can use
the assembly. Valid codes are listed on the HngSupCommand worksheet in the
AllCodeLists.xls workbook in the column, Codelist Number. The ASR only returns supports that
use By Structure or By Point.

DisciplineType - The code that represents the type of object that the assembly can support. Valid
codes are listed on the HngSupDiscipline worksheet in the AllCodeLists.xls workbook in the

Hangers and Supports Reference Data Guide

67

Define Assemblies
Codelist Number column. For example, if the support is to be placed on pipe, only those supports
whose discipline type is 1 (Piping) will be returned by the ASR.
TypeSelectionRule - The code that specifies the location of the supporting structure with respect
to the route being supported. Valid codes are listed on the HngSupTypeSelectionRule
worksheet in the AllCodeLists.xls workbook in the Codelist Number column. For example, this
attribute can be used to ensure that the support is only returned by the ASR if the route is below
the supporting structure.

MinAssemblyLength / MaxAssemblyLength - The minimum and maximum length from the


supporting structure to the route. Include the units of measure when specifying this value (for
example, 1500 mm). A support will be returned by the ASR if the distance from the supporting
structure to the first selected route is within this limit.
SupportingCount - The maximum number of supporting objects (for example, beams) to which
the assembly can be attached. Enter 1+ to indicate that the support can be attached to a variable
number of supported objects. A support with SupportingCount=1 will not be returned by the ASR
if you select two structures.
SupportedCount - The maximum number of supported objects (for example, pipes) to which the
assembly can be attached. Enter 1+ to indicate that the support can be attached to a variable
number of supported objects. A support with SupportedCount = 1 will not be returned by the ASR
if you select multiple pipes.
NDFrom / NDTo - The minimum and maximum nominal diameter for the supported object. This
option is only used for conduit and pipe assemblies. A support will only be returned by the ASR if
the pipe nominal diameter is within the limits set.
NominalWidthFrom / NominalWidthTo - The minimum and maximum width of the supported
object for the assembly. Include the units of measurement (in or mm, for example) when
specifying this value. This value is used for rectangular supported objects such as ducts.
NominalDepthFrom / NominalDepthTo - The minimum and maximum depth of the supported
object for the assembly. Include the units of measurement (in or mm, for example) when
specifying this value. Enter 0 if the supported object is circular.
SupportedFamily - The type of supported object. Valid types are STRAIGHT, TURN, END,
ALONG, BRANCH, ENTRYEXIT, SEGMENT, SURFACE, TRANSITION, and PART. Using END
and PART allow you to place hangers on in-line components. PART defines objects such as
valves, flanges, and tees. END defines end features (for example, reducers). Supports with
SupportedFamily = TURN will only be returned by the ASR if the support is placed on a turn.
RulePriority - Defines the sort order of a list of assemblies from the Type box. You can assign a
numerical value randomly in this column. Assemblies are sorted in an ascending order based on
RulePriority value. If two or more assemblies are assigned the same RulePriority value, then the
assemblies with the same value are sorted alphabetically.

68

Hangers and Supports Reference Data Guide

Define Assemblies
See Also
Assembly Selection Rules (on page 64)
Determining Which ASR is Used (on page 65)
Assembly Selection Rules Example (on page 69)

Assembly Selection Rules Example


Checking the Rule box on the ribbon creates an ASR object from your feature and structure, and
then calls the GetAssemblies function on the interface IJHgrAssmSelectionRule by passing its
IJHgrInputObjectInfo interface. The ASR calls the GetAttributeByRule function on the
IJHgrInputObjectInfo interface to obtain the feature type. The ASR then gets and returns the
assembly, based on the feature type from the catalog.
The standard hangers and supports commands implement the GetAttributeByRule function of
the IJHgrInputObjectInfo interface. This function calls the GetAttributeByRule function of the
catalog services. The catalog service reads the HgrRule table, gets the ProgID of the feature rule,
creates the feature rule object, and finally calls the function AttributeValue on the
IJHgrSupportRule interface, which returns the feature type of the selected feature. For example:
Private Function IJHgrInputObjectInfo_GetAttributeByRule(
ByVal RuleName As String,
Optional ByVal pInputContext As Object = Nothing)
As Variant()
Const METHOD = "IJHgrInputObjectInfo_GetAttributeByRule"
On Error GoTo ErrorHandler
Dim oHgrCatalogServices As IJHgrCatalogServices
Set oHgrCatalogServices = New CatalogServices
IJHgrInputObjectInfo_GetAttributeByRule =
oHgrCatalogServices.GetAttributeByRule
(RuleName, pInputContext)
Set oHgrCatalogServices = Nothing
Exit Function
ErrorHandler:
ReportUnanticipatedError MODULE, METHOD
End Function

See Also
Assembly Selection Rules (on page 64)
Determining Which ASR is Used (on page 65)
Delivered Assembly Selection Rules (on page 67)

Hangers and Supports Reference Data Guide

69

Define Assemblies

Converting Supports for Place by Reference


To place a support without selecting any supporting object, use the Place by Reference
command. To support the Place by Reference command, you need to modify some of the
methods of the IJHgrAssmInfo interface, and the CommandType property in the assembly part
class .xls file.

See Also
AIR Changes to Support Place by Reference (on page 70)
ASR Changes to Support Place by Reference (on page 72)

AIR Changes to Support Place by Reference


Changes to Methods of the IJHgrAssmInfo Interface
To place a support using the Place by Reference command, you need to modify some of the
methods of AssmInfoRule.
GetAssemblyCatalogParts - No changes required in this method.
GetMaxRouteConnectionValue - No changes required in this method.
GetRouteConnections - No changes required in this method.
GetStructConnections - Changes to this method:
Check to see if this is the Place by Ref cmd
If eHgrCmdType = HgrByReferencePointCmdType Then
Give a default value for iNumStruct for place by reference command
iNumStruct = 1
Else NOT the place by ref cmd, behave as before
Get the iNumStrcut
my_IJHgrInputConfigHlpr.GetStructure pStructObjects
iNumStruct = pStructObjects.Count()
End If
GetAssemblyJoints - When you retrieve FlangeThickness from structure, for instance, if you are
using Place by Reference command, you must assign a valid default value for FlangeThickness.
Code to get the Command type
Dim eHgrCmdType As HgrCmdType
Dim oIJHgrSupport As IJHgrSupport
Set oIJHgrSupport = my_IJHgrInputConfigHlpr
eHgrCmdType = oIJHgrSupport.CommandType
Code to set the CONNECTION type in GetAssemblyJoint
Dim iBeamCount as Integer
If eHgrCmdType = HgrByReferencePointCmdType Then
Set the CONNECTION to Steel for "Place by Reference" command
CONNECTION = "Slab"
iBeamCount = 0
Else
Code for Place by Point and Place by Struct command
End If
Code to set the FLANGE_T value in GetAssemblyJoint
Dim FLANGE_T as double
If eHgrCmdType = HgrByReferencePointCmdType Then

70

Hangers and Supports Reference Data Guide

Define Assemblies
Set FLANGE_T = 0.02 for Place by Reference command
FLANGE_T = 0.02
Else
Code for Place by Point and Place by Struct command
FLANGE_T = GetSupportingPropertyByRule("tf",1,my_InputConfigHlpr)
End If

Changes done to Common Functions in Modules


GetSupportingType - Since no supporting object is selected in the Place by Reference
command, set the default value to "slab".
If eHgrCmdType = HgrByReferencePointCmdType Then
Set the SupportinType as Slab when it is a Place by Reference command
GetSupportingTypes = "Slab"
Else
Code to get the type of supporting object
End If
GetSupportingPropertyByRule - Since no supporting object is selected in Place by Reference
command, set the default value 0.02.
If eHgrCmdType = HgrByReferencePointCmdType Then
Set GetSupportingPropertyByRule to 0.02 for Place by Ref command
GetSupportingPropertyByRule = 0.02
Else
Code to get the type of supporting object
End If
GetIsLugEndOffSetApplied - Changes to this method:
If Not StructObjects Is Nothing Then
Added this condition before trying to get the count from the
collection
If StructObjects.Count >= 2 Then
Code to get the type of supporting object
End If
End If
GetIndexedStructPortName - Set struct port name to " structure" as a default value.
If eHgrCmdType = HgrByReferencePointCmdType Then
Set StructPort to "Structure" when it is a Place by Reference command
StructPort(1) = "Structure"
StructPort(2) = "Structure"
Else
Code to set the struct port
End If

Reference Ports
Following are the reference ports available for the Place by Reference command:
Route
Struct
RouteAlt
World
BBR_Low
BBR_High
Tangent_BBR_Low

Hangers and Supports Reference Data Guide

71

Define Assemblies
Tangent_BBR_High
Tangent_Alt_BBR_Low
Tangent_Alt_BBR_High
BBRV_Low
BBRV_High
GBBR_Z_Low
GBBR_Z_High
GBBR_X_Low
GBBR_Z_High
Following are the reference ports that are not available for Place by Reference command:
BBSR_Low
BBSR_High
BBSV_Low
BBSV_High
StructAlt

ASR Changes to Support Place by Reference


Modify the command type of your assemblies depending upon the codelist value given below:

72

Hangers and Supports Reference Data Guide

Define Assemblies
For instance,

GetFacePositionInfo Method
The GetFacePositionInfo method of IJHgrInputConfigHlpr interface provides access to
FacePosition information of the supporting port to which the support object is connected. This
method takes two inputs: a structure port object and a support object. It returns four outputs:
CardinaPoint, GroupKey, Offset, and OffsetY. The FacePosition information is available in
FacePositionSelection sheet of \Bulkload\Datafiles\HS_System.xls workbook.
The following code shows a sample implementation of this method.
Dim lCardinalPnt As Long
Dim lGroupKey As Long
Dim offset As String
Dim OffsetY As String
Dim IJPort_Struct As IJPort
Dim BeamCollection As Object
Dim oStruct As Object
to get the struct port to which support is connected to
my_IJHgrInputConfigHlpr.GetStructure BeamCollection
If BeamCollection.Count > 0 Then
Set oStruct = BeamCollection.Item(1)
End If
' Getting the IJPort from structure object
my_IJHgrInputConfigHlpr.GetFacePositionInfo oStruct,
my_IJHgrInputConfigHlpr, lCardinalPnt, lGroupKey, offset, OffsetY
For more information on the outputs returned by GetFacePositionInfo method, see Face Position
Selection Sheet (on page 79).

Hangers and Supports Reference Data Guide

73

SECTION 3

Define Parts
Parts are used to create the hanger and support assemblies that are placed in the model.
The delivered reference data contains a few workbooks whose main purpose is to define parts. As
an example, we will take the Utility_VARIABLE_CYL sheet in HS_Utility.xls. This workbook
defines part classes that have the following common properties. Depending on the attributes that
you define when you create a part symbol, you may have to specify additional or different
attributes than the ones listed below.

Various custom attributes are often listed for the parts. An example is
IJOAHgrUtility_VARIABLE_CYL::RADIUS.
For some of the properties listed below, (i) is an integer corresponding to a port. When you
type the port properties into the workbook, substitute a number for (i).
Part Class Type - Specifies the class type of the part.
Symbol Definition - Specifies the symbol used to represent the part. For more information on
creating part symbols, refer to the SmartPlant 3D Symbols Reference Guide.
Symbol Icon - Specifies the graphic file that contains a picture of the part symbol. The graphic file
is used as a preview in the software. Specify the path to the graphic file relative to the
SharedContent folder that is shared on your software server.
Occurrence Attributes - Depending on the part symbol, there may be one or more occurrence
attributes to define.
Class Type - Enter the class type code for the part. Valid codes are listed on the
HngSupPartClassType sheet in the AllCodeLists.xls workbook in the Codelist Number
column.
Part Selection Rule - Specify the part selection rule. The Part Selection Rule automates the
selection of items from the catalog using certain criteria. For example, pipe size
(HgrPipePartSelRule.PartByPipeSize.cls), rod attachment size
(HgrPipePartSelRule.CPartByRodSize.cls), the beam profile rule
(HgrPipePartSelRule.CHgrBeamForVPad.cls), by load factor
(HgrPipePartSelRule.CPartByLoadFactor.xls), and so forth.
Port Type - Enter the type of port. For example, type HgrSymbolPort to specify that the symbol
port is a hangers and supports port as opposed to a piping port.
User Class Name - Specify the user class name.
Part Number - Type a part number. This part number must be unique across the entire reference
data catalog.
Part Description - Enter a description for the part.
Symbol Definition - Specifies the symbol used to represent the part. You can use this field to
override the symbol definition for the part class and to instead use a different symbol for an
individual part number.
ND From - Enter the minimum nominal diameter for which the part can be used. This option is
only used for conduit and pipe assemblies.
ND To - Enter the maximum nominal diameter for which the part can be used. This option is only
used for conduit and pipe assemblies.
ND Unit Type - Enter the units for the ND From and ND To values.

Hangers and Supports Reference Data Guide

75

Define Parts
For every port (i) in the symbol, several attributes must be defined as below.
HgrSymbolPort(i):Name Enter the name of this port. Any name is valid. This name must be
unique for each port name column. The name will be used when defining joints in Assembly
Information Rules.
HgrSymbolPort(i):Category Enter the code that represents the category for the port. This
attribute is no longer used but exists for backward compatibility. Valid codes are listed in the
AllCodeLists.xls workbook on the HngSupPortCategory sheet in the Codelist Number
column.
HgrSymbolPort(i):MatingType Enter the code that represents the mating type for the port. This
attribute is no longer used but exists for backward compatibility. Valid codes can be listed in the
HS_System.xls workbook on the SupportJoints sheet.
HgrSymbolPort(i):ConnectionInfo Enter the code that represents the connection information
for the port. This attribute is no longer used but exists for backward compatibility. Valid codes are
listed in the AllCodeLists.xls workbook on the HngSupPhysicalConnection sheet in the
Codelist Number column.
HgrSymbolPort(i):PortType Enter the code that represents the port type for the port. Valid
codes are listed in the AllCodeLists.xls workbook on the HngSupPortType sheet in the
Codelist Number column.
HgrSymbolPort(i):Size Enter the physical size of this port. For example, for a pin, enter its
diameter.
HgrSymbolPort(n):MinSize Enter the minimum size of the part port that can connect to this
port. For example, for a pin port, the minimum size of the eye that can connect to it.
HgrSymbolPort(i):MaxSize Enter the maximum size of the part port that can connect to this
port. For example, for a pin port, enter the maximum size of the eye that can connect to it.
HgrSymbolPort(n):UnitType Enter a string representing the units for the port Size, MinSize
and MaxSize attributes. Currently, only in and mm are valid strings for these sizes.
Dry Weight - Enter the dry weight of the support component.
Water Weight - Enter the wet weight of the support component.
DryCogX - Enter the X-axis location of the dry center-of- gravity.
DryCogY - Enter the Y-axis location of the dry center-of- gravity.
DryCogZ - Enter the Z-axis location of the dry center-of- gravity.
Mirror Behavior Option - Enter the code that represents the mirror behavior for the part. Valid
codes are listed in the AllCodeLists.xls workbook on the Mirror Behavior Option sheet in the
Codelist Number column.
IJHgrBOMDefinition::BOMType (Optional) Enter the code that defines how the
BOMDescription attribute for this part will be set. Valid codes are listed in the AllCodeLists.xls
workbook on the HngSupBOMType sheet. If no value is entered, the BOM description for the part
will default to the PartDescription text.
IJHgrBOMDefinition::BOMDefinition (Optional) - Specifies the BOM description. If BOMType is
set to 4 (FromBOMDefProgID), enter the ProgID to use for calculating the BOM description. If
BOMType is set to 5 (FromBOMDef), enter the text to use for the BOM description. You do not
need to enter anything in this column for other values of the BOMType attribute.

See Also
Hangers and Supports Reference Data (on page 15)

76

Hangers and Supports Reference Data Guide

SECTION 4

Lookup Tables
Lookup tables are used by the software to place supports in the model. The lookup tables are in
the HS_System.xls workbook.

See Also
Face Position Selection Sheet (on page 79)
Face Selection Sheet (on page 77)
Hgr Rules Sheet (on page 80)
SupportJoints Sheet (on page 80)

Face Selection Sheet


The Face Selection sheet in the HS_System.xls workbook defines the faces of a structural
member to which a part can attach itself.
Face Name - Enter a unique name for the face selection option. This name must be unique across
the entire catalog.
Description - Type a description for the face selection option.
Cross Section - Enter the cross section shape to which the face selection option applies. For
example, W or L.
Selection Key - Enter a code to link this face selection option to parts. All face selection options
with the same selection key code, 1 for example, will be made available to the part that has this
code defined.
Face 1 - Enter the member face with the highest priority. This face will be default when the
assembly is placed.
Group 1 - Enter the group key code. Valid codes are listed on the Face Position Selection sheet
in the Group Key column. For more information about this code, see Face Position Selection
Sheet (on page 79).
Face 2 - Enter the member face with the next highest priority. This face will be the second choice
when the assembly is placed. Enter 0 if you do not want to define another choice.
Group 2 - Enter the group key code. Valid codes are listed on the Face Position Selection sheet
in the Group Key column.
Face 3 - Enter the member face with the second highest priority. This face will be the third choice
when the assembly is placed. Enter 0 if you do not want to define another choice.
Group 3 - Enter the group key code. Valid codes are listed on the Face Position Selection sheet
in the Group Key column.
Face 4 - Enter the member face with the third highest priority. This face will be the fourth choice
when the assembly is placed. Enter 0 if you do not want to define another choice.
Group 4 - Enter the group key code. Valid codes are listed on the Face Position Selection sheet
in the Group Key column.
Face 5 - Enter the member face with the lowest priority. This face will be the last choice when the
assembly is placed. Enter 0 if you do not want to define another choice.
Group 5 - Enter the group key code. Valid codes are listed on the Face Position Selection sheet
in the Group Key column.

Hangers and Supports Reference Data Guide

77

Lookup Tables
Available Face Numbers
These figures show the available face numbers for common section shapes that you can enter in
the Face 1-5 boxes.

78

Hangers and Supports Reference Data Guide

Lookup Tables

See Also
Lookup Tables (on page 77)

Face Position Selection Sheet


The Face Position Selection sheet in the HS_System.xls workbook defines the position on a
face of a structure member where the part can locate itself. An example of when to use this sheet
would be a U-bolt connected to the bottom of an I-shaped member. You would want the U-bolt to
be placed on the out edges of the bottom flange so that the U-bolt did not interfere with the web of
the member.
Point Sel Name - Enter a unique name for the face position selection option. This name must be
unique across the entire catalog.
Description - Type a description for the face position selection option.
Group Key - Enter the group key for the face position selection option. This key is used to group
face positions selection options together from which the user can select one of the face positions.
This group key is also entered on the Face Selection sheet in the Group 1-5 columns.

Hangers and Supports Reference Data Guide

79

Lookup Tables
Cardinal Point - Enter the member cardinal point from which to base the face position. There are
15 cardinal positions available. The location of cardinal points 10 (center-of- gravity) and 15 (shear
center) depend on the section shape. The local z-axis of the member and the center-of-gravity
point of the section define cardinal points 11 and 14. The local y- axis of the member and the
center-of-gravity point of the section define cardinal points 12 and 13.

Offset - Enter the offset rule to use for the face position selection option (X-direction). The offset is
measured from the cardinal point that you specified. Offset and OffsetY do not require a defined
progID. The column can contain a numeric value.
OffSetY - Enter the offset rule to use for the Y-direction (perpendicular to face). Offset and OffsetY
do not require a defined progID. The column can contain a numeric value.

See Also
Lookup Tables (on page 77)

Hgr Rules Sheet


The Hgr Rules sheet in the HS_System.xls workbook is a lookup table for rules.
Rule Name - Enter a unique name for the rule. This name must be unique across the entire
catalog.
Rule Description - Type a description for the rule.
Rule Type - Enter the code for the rule type. Valid codes are listed on the HngSupRuleType
sheet in the AllCodeLists.xls workbook in the Codelist Number column.
Rule Value - Enter a value for the rule. For example, if you entered 5 in the Rule Type column,
you enter the program ID in this column.

See Also
Lookup Tables (on page 77)

SupportJoints Sheet
The SupportJoints sheet in the HS_System.xls workbook defines the joints that you can use to
connect two parts. The sheet is used when you are defining supports by adding parts using the
Place Part
command.
Joint Key - Specifies the name of the joint key. This name must be unique within the column.
Mating Type 1 - Enter the first mating type code for the joint. Valid codes are listed on the
HngSupPortType sheet in the AllCodeLists.xls workbook in the Codelist Number column.
Mating Type 2 - Enter the second mating type code for the joint. Valid codes are listed on the
HngSupPortType sheet in the AllCodeLists.xls workbook in the Codelist Number column.
Mating Option - Specifies the mating option. This value is not currently used in the software.
Command Type - Enter the code that specifies which Hangers and Supports task command can
use the mating type combination. Valid codes are listed on the HngSupCommand sheet in the

80

Hangers and Supports Reference Data Guide

Lookup Tables
AllCodeLists.xls workbook in the Codelist Number column. This value is not currently used in
the software.
Joint Type - Specifies the joint type by the joint code. Valid codes are listed on the
HngSupJointType sheet in the AllCodeLists.xls workbook in the Codelist Number column. For
more information about joints, see Joints (on page 25). This value is not currently used in the
software.
A short description of each joint type is listed below:
Code

Joint

Description

Revolute

Objects can spin about the provided axis but


do not translate.

Planar

Objects are free to rotate and translate while


provided planes remain flush.

Translation

Objects can translate but not rotate while


provided planes remain flush.

Prismatic

Objects can slide along provided axis but


cannot rotate about the axis.

Rigid

Objects are rigidly fixed relative to each other.

Spherical

Object origins remain connected while objects


are free to spin.

Cylindrical

Objects are free to spin about and translate


along provided axis.

Planar Slot

While provided planes remain flush, objects


can rotate about their normal and slide along
the axis.

Vertical

Object axis is made parallel to vertical axis,


and the plane is forced to contain the vertical
axis.

10

Horizontal X

Object becomes coincident with or lies in the


horizontal plane.

11

Horizontal Y

Object becomes coincident with or lies in the


horizontal plane.

12

Point On

Objects can rotate as long as the origin


remains on geometry 2. When using the
Configuration Index Calculator, Geometry
Type A refers to Input Geometry 2.
Configuration Index - Enter the configuration index number to use for the joint. You can calculate
the configuration index number using the Configuration Index Calculator (on page 82). This value
is not currently used in the software.
Offset 1 - Specifies the plane offset between the parts at the joint. This value is not currently used
in the software.
Offset 2 - Specifies the axis offset between the parts at the joint. This value is not currently used in
the software.
Offset 3 - Specifies the origin offset between the parts at the joint. This value is not currently used
in the software.

Hangers and Supports Reference Data Guide

81

Lookup Tables
See Also
Lookup Tables (on page 77)
Joints (on page 25)

Configuration Index Calculator


The Configuration Index Calculator calculates the configuration index number used on the
Support Joint sheet and in assembly information rules. The configuration index is an integer that
specifies the geometry associated with each port in the joint. For example, the prismatic joint
requires a plane and an axis be specified for each port. The configuration index tells the software
which port plane and which port axis to use for each part and how those planes and axes are
constrained. The Configuration Index Calculator is delivered with the software in the [Product
Directory]\HangersAndSupports\Tools\Bin folder.
For an example of how to use the Configuration Index Calculator, look at the connection between
this beam clamp and the beam. Two constraints allow the beam clamp to stay flush with the face
of the beam while still allowing it to slide along the axis of the beam. The first constraint is parallel
between the Beam XY-plane and the Beam Clamp XY-plane. The second constraint is coincident
between the Beam X- axis and the Beam Clamp X-axis.

Configuration Index - Displays the configuration index number that you should enter on the
Support Joint sheet in the Configuration Index column.
Extract Data - Calculates the configuration index number based on the inputs that you provide.
Geometry Type A - Select the geometry type for one of the port constraints in the connection.
Using the example, you would select XY-Plane to represent the XY-Plane of the beam clamp port.
Geometry Type B - Select the geometry type for the other constraint port in the connection. Using
the example, you would select XY-Plane to represent the XY-Plane of the beam port.
A and B Alignment - Select how you want the Geometry Type A and Geometry Type B selections
to align. Using the example, you would select Opposite / Mate because you want the two
XY-Planes to be co-planar, or mate.
Geometry Type C - Select the geometry type for the other port constraint in the connection. Using
the example, you would select X-axis for the X-axis of the beam clamp port. If the connection does
not have a second constraint, you can leave this box blank.
Geometry Type D - Select the geometry type for the other constraint port in the connection. Using
the example, you would select X-axis to represent the X-axis of the beam port. If the connection
does not have a second constraint, you can leave this box blank.

82

Hangers and Supports Reference Data Guide

Lookup Tables
C and D Alignment - Select how you want the Geometry Type C and Geometry Type C
selections to align. Using the example, you would select Aligned / Flush because you want the two
X-axes to be coincident.

See Also
SupportJoints Sheet (on page 80)

HgrRefSupportingFilter Sheet
The HgrRefSupportingFilter sheet in the HS_System.xls workbook is a lookup table for
selecting the supporting object filter.
Filter Name - Enter a unique name for the supporting filter. This name must be unique across the
entire catalog.
Description - Type a description for the filter.
Connectable Type - Enter the code that specifies if the supporting or supported filter is used to
find out the port information for the supporting objects. Valid codes are listed on the
HngSupConnectObj sheet in the AllCodeLists.xls workbook in the Codelist Number column.
Discipline Type - Enter the code that represents the type of object that can be supported. Valid
codes are listed on the HngSupDiscipline sheet in the AllCodeLists.xls workbook in the
Codelist Number column.
Command Type - Enter the code that specifies which Hangers and Supports task command can
use the filter. Valid codes are listed on the HngSupCommand sheet in the AllCodeLists.xls
workbook in the Codelist Number column.
Defining Interface - Specifies the interface that the filter is to use.
Port Service - Specifies the port service that the software is to use to locate the reference port on
the supporting object.

See Also
Lookup Tables (on page 77)

HgrDisciplineFilter Sheet
The HgrDisciplineFilter sheet in the HS_System.xls workbook is a lookup table for selecting the
supported object filter.
Filter Name - Enter a unique name for the supported filter. This name must be unique across the
entire catalog.
Description - Type a description for the filter.
Symbol Definition - Not used.
Discipline Type - Enter the code that represents the type of object that can be supported. Valid
codes are listed on the HngSupDiscipline sheet in the AllCodeLists.xls workbook in the
Codelist Number column.
Defining Interface - Specifies the interface that the filter is to use.
Port Service - Specifies the port service that the software is to use to locate the reference port on
the supporting object.
ASR - Specifies the assembly selection rule to use when the Rule option on the ribbon is active.
Support Prog ID - Specifies the support services program.
Assembly Path - Defines the path in the catalog to the assembly definitions.

Hangers and Supports Reference Data Guide

83

Lookup Tables
Parts Path - Defines the path in the catalog to the hanger and support parts.

See Also
Lookup Tables (on page 77)

84

Hangers and Supports Reference Data Guide

SECTION 5

Hanger Steel and Hanger Cutback Steel


Parts
The HS_Struct-AISC-LRFD-3.1.xls workbook contains the following attributes with separate
worksheets for each steel section; for example, W, C, HSS, and so forth. The attributes listed here
are shared by Hanger steel and Hanger Cutback steel.

Occurrence Attributes
oa:IJOAhsMaterial::MaterialCategory - Defines the material type.
oa:IJOAhsMaterial::MaterialGrade - Defines the material grade.
oa:EndOverLength - Over length at the end of the steel. This can be positive or negative. This
affects the graphics and the overall length reported in the BOM description. Any cutback angle is
always applied before an over length.

oa:BeginOverLength - Over length at the beginning of the steel. Can be positive or negative.
This affects the graphics and the overall length reported in the BOM description. Any cutback
angle is always applied before an over length. Over length on steel with cutbacks is measured
normal to the cutback angle, as shown here:

oa:Length - Defines the length of the steel.

Hangers and Supports Reference Data Guide

85

Hanger Steel and Hanger Cutback Steel Parts

oa:IJCoatingInfo::CoatingType - Select the type of coating for the selected object.


oa:IJCoatingInfo::CoatingRequirement - Select the coating requirement for the selected
object.
oa:IJCoatingInfo::CoatingColor - Select the coating color.
oa:IJOAhsCutback::CutbackBeginAngle - The start cutback angle for the steel. Any cutback
angle is always applied before an over length. If CutbackAnchorPoint equals 2 or 8, the Face ports
rotate about the port's x-axis by this cutback angle. If CutbackAnchorPoint equals 4 or 6, the Face
ports rotate about the port's y-axis by this cutback angle. A positive cutback angle creates the
cutback in a counterclockwise direction around the correct axis (x-axis for anchor points 2 and 8;
y-axis for anchor points 4 and 6). A negative cutback value creates the cutback in a clockwise
direction around the correct axis.

oa:IJOAhsCutback::CutbackEndAngle - The end cutback angle for the steel. The same port
rotation rules apply as for the CutbackBeginAngle. Any cutback angle is always applied before an
over length. A positive cutback angle creates the cutback in a counterclockwise direction around
the correct axis (x-axis for anchor points 2 and 8; y-axis for anchor points 4 and 6). A negative
cutback value creates the cutback in a clockwise direction around the correct axis.
oa:IJOAhsCutback::BeginCutbackAnchorPoint - An anchor point tells the system which plane
gets the cutback. This attribute tells the system to which line the cutback plane will be anchored.
With reference to the positions of the anchor points, a positive cutback angle value creates the
cutback in a counterclockwise direction. The line is determined by one of four possible Cardinal
Points:
2 - Bottom Center
4 - Left Center
6 - Right Center

86

Hangers and Supports Reference Data Guide

Hanger Steel and Hanger Cutback Steel Parts


8 - Top Center

CutbackAnchorPoint of 2 or 8
Face ports rotate by this cutback angle about
the port's x-axis.

CutbackAnchorPoint of 4 or 6
Face ports rotate by this cutback angle about
the port's y-axis.

oa:IJOAhsCutback::EndCutbackAnchorPoint - An anchor point tells the system which plane


gets the cutback. This attribute tells the system to which line the cutback plane will be anchored.
With reference to the positions of the anchor points, a positive cutback angle value creates the
cutback in a counterclockwise direction. The line is determined by one of four possible Cardinal
Points:
2 - Bottom Center
4 - Left Center
6 - Right Center

Hangers and Supports Reference Data Guide

87

Hanger Steel and Hanger Cutback Steel Parts


8 - Top Center

oa:IJUAhsCatalog::Catalog This is the name of the Manufacturer's catalog from which the part
data is derived. In the case of steel sections, this is the standard from which the steel data is
derived.
oa:IJOAhsEmbeddedPart::EmbeddedPart - This is a True or False value. Set this value to
True indicate the part is embedded in concrete. This value can be useful later for filtering or
reports.
oa:IJOAhsComponentNotes::ComponentNotes - Enter any notes pertaining to this part. This
information can be useful for reports or additional data on a drawing border.
oa:IJOAhsSteelCP::CP1 - Specifies the cardinal point to which the location of the Begin Cap
Port of the part is referenced.
oa:IJOAhsSteelCP::CP2 - Specifies the cardinal point to which the location of the End Cap Port
of the part is referenced.
oa:IJOAhsSteelCP::CP3 - Specifies the cardinal point to which the location of the Begin Face
Port of the part is referenced.
oa:IJOAhsSteelCP::CP4 - Specifies the cardinal point to which the location of the End Face Port
of the part is referenced.
oa:IJOAhsSteelCP::CP5 - Specifies the cardinal point to which the location of the Neutral Port of
the part is referenced.
oa:IJOAhsSteelCP::CP6 - Specifies the cardinal point to which the location of the Flex Port of the
part is referenced.

88

Hangers and Supports Reference Data Guide

Hanger Steel and Hanger Cutback Steel Parts


oa:IJOAhsBeginCap::BeginCapXOffset - Specifies an offset to apply in the x-direction between
the Begin Cap port and the cardinal point to which it is referenced.

oa:IJOAhsBeginCap::BeginCapYOffset - Specifies an offset to apply in the y-direction between


the Begin Cap port and the cardinal point to which it is referenced.
oa:IJOAhsBeginCap::BeginCapRotZ - Specifies a rotation to apply to the Begin Cap port about
its z-axis
oa:IJOAhsEndCap::EndCapXOffset - Specifies an offset to apply in the x-direction between the
End Cap port and the cardinal point to which it is referenced.
oa:IJOAhsEndCap::EndCapYOffset - Specifies an offset to apply in the y-direction between the
End Cap port and the cardinal point to which it is referenced.
oa:IJOAhsEndCap::EndCapRotZ - Specifies a rotation to apply to the End Cap port about its
z-axis.
oa:IJOAhsFlexPort::FlexPortXOffset - An offset to apply in the x-direction between the Flex
port and the cardinal point to which it is referenced.
oa:IJOAhsFlexPort::FlexPortYOffset - An offset to apply in the y-direction between the Flex
port and the cardinal point to which it is referenced.
oa:IJOAhsFlexPort::FlexPortZOffset - An offset to apply in the z-direction between the Flex port
and the cardinal point to which it is referenced.
oa:IJOAhsFlexPort::FlexPortRotX - This attribute specifies a rotation to apply to the Flex Port,
about the Port's x-axis.

Hangers and Supports Reference Data Guide

89

Hanger Steel and Hanger Cutback Steel Parts


oa:IJOAhsFlexPort::FlexPortRotY - This attribute specifies a rotation to apply to the Flex Port,
about the Port's y-axis.
oa:IJOAhsFlexPort::FlexPortRotZ - This attribute specifies a rotation to apply to the Flex Port,
about the Port's z-axis.

Port Data
HgrSymbolPort(1):Name - Defines the port name. This name is used by assemblies to connect
other parts to it.
HgrSymbolPort(1):PortType - Defines the port type.
IJOAhsSteelCP::CP1- Specifies cardinal point on the symbol.

90

Hangers and Supports Reference Data Guide

Index
A

Add a dimension port using


CreateNoteAndAssociateToPort function
in AIR 51
Add a note to key points using AIR 50
Add control point using CreateCPAtPoint
Function in AIR 54
AIR Changes to Support Place by Reference
70
ASR Changes to Support Place by
Reference 72
Assemblies and Parts 19
Assembly Information Rule Examples 48
Assembly Selection Rules 64
Assembly Selection Rules Example 69

GetAssemblyCatalogParts Method 55
GetAssemblyJoints Method 57
GetFacePositionInfo Method 73
GetRouteConnections Method 60
GetStructConnections Method 63

Bounding Box Planes 44


Bounding Box Planes Containing Route and
Structure 47
Bounding Boxes 36

Insulation Option 45

Configuration Index Calculator 82


Constraints 24
Converting Supports for Place by Reference
70
Custom Bounding Boxes 40

Lookup Tables 77

Define Assemblies 31
Define Parts 75
Delivered Assembly Selection Rules 67
Determining Which ASR is Used 65
Diagnostic Supports 42
Documentation Comments 11

Part Ports 20
Preface 5

E
Example Code for Custom Bounding Box
API 48

F
Face Position Selection Sheet 79
Face Selection Sheet 77

Hangers and Supports Reference Data Guide

H
Hanger Steel and Hanger Cutback Steel
Parts 85
Hangers and Supports Reference Data 15
Hgr Rules Sheet 80
HgrDisciplineFilter Sheet 83
HgrRefSupportingFilter Sheet 83

Joints 25

M
Mirror Bounding Boxes 46

R
Raising Warnings and Errors from Symbols
and Assemblies 27
Reference Ports 23

S
SmartPlant 3D Documentation Set 7
Standard Bounding Boxes 37
SupportJoints Sheet 80
Supports and Local Coordinate System
(LCS) 33

91

Index

W
What's New in Hangers and Supports
Reference Data 13

92

Hangers and Supports Reference Data Guide

You might also like