Hangers Supports Reference Data Guide
Hangers Supports Reference Data Guide
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.
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.
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
Contents
Hanger Steel and Hanger Cutback Steel Parts .................................................................................... 85
Index ........................................................................................................................................................... 91
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.
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.
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.
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.
Documentation Comments
We welcome comments or suggestions about this documentation. You can send us an email at:
[email protected].
11
13
SECTION 1
Content
HS_Anvil.xls
HS_Anvil_Codelist.xls
HS_Assembly.xls
HS_Assembly_Codelist.xls
HS_GTypeComponent.xls
HS_HgrAiscLRFD-3.1_Deprecated.xls
HS_LRParts.xls
HS_S3DParts.xls
HS_S3DParts_Codelist.xls
HS_Str-AISC-LRFD-3.1.xls
HS_Struct-AISC-LRFD-3.1.xls
HS_System.xls
15
Content
HS_System_Codelist.xls
HS_Utility.xls
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
HS_Bline_Assy_Codelist.xls
HS_Bline_Tray.xls
HS_Bline_Tray_Codelist.xls
HS_Correspondence.xls
HS_GenericAssy.xls
HS_GenericAssy_Codelist.xls
HS_GenericParts.xls
HS_GenericParts_Codelist.xls
HS_Halfen_Assy.xls
HS_Halfen_Assy_Codelist.xls
HS_Halfen_PC.xls
HS_Halfen_PC_Codelist.xls
*HS_HgrAisc_Deprecated.xls
*HS_HgrEuro_Deprecated.xls
16
*HS_HgrJapan_Deprecated.xls
HS_HVAC_Assy.xls
HS_HVAC_Assy_Codelist.xls
HS_HVAC_Parts.xls
Content
HS_HVAC_Parts_Codelist.xls
HS_Lisega.xls
HS_Lisega_Codelist.xls
HS_Marine.xls
HS_Marine_Assy.xls
HS>Marine_Assy_Codelist.xls
HS_Power1_Assy.xls
HS_Power1_Assy_Codelist.xls
HS_Power1_Parts.xls
HS_PSL.xls
HS_PSL_Codelist.xls
HS_RestraintSupports.xls
HS_ShipSteel.xls
HS_Str-AISC-LRFD-3.0.xls
HS_Str-AISC-Metric.xls
HS_Str_AISC_SHAPES-3.1.xls
HS_Str_AUST.xls
HS_Str-AUST-05.xls
HS_Str-BS.xls
HS_Str-Chile-2000
HS_Str-China-2006
HS_Str-CISC-7-2.xls
HS_Str-CISC-8.1.xls
HS_Str-Euro.xls
HS_Str-EURO-OTUA-2002.xls
HS_Str-Japan.xls
HS_Str-Japan-2005.xls
HS_Str-Russia.xls
HS_Str-SAISC-2002.xls
HS_Struct-AISC-LRFD-3.0.xls
HS_Struct-AISC-Metric.xls
17
Content
HS_Struct-AUST-05.xls
HS_Struct-BS.xls
HS_Struct-Chile-2000
HS_Struct-China-2006
HS_Struct-CISC-7-2.xls
HS_Struct-CISC-8.1.xls
HS_Struct-Euro.xls
HS_Struct-Japan-2005.xls
HS_Struct-Russia.xls
HS_Struct-SAISC-2002.xls
HS_TrayShip.xls
HS_TrayShip_Assy.xls
HS_Util_Metric.xls
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
Implied Parts
Placement of implied parts can only be done using an assembly information rule. For more
information, see GetAssemblyCatalogParts Method (on page 55).
19
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
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.
21
See Also
Constraints (on page 24)
Reference Ports (on page 23)
Joints (on page 25)
22
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)
23
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
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
Plane Joint
Translation Joint
25
Input Geometry
Revolute
1) Axis
1) No
2) Origin (implied) 2) No
Planar
Plane
Yes
Translation
1) Plane
1) Yes
2) Axis (in
specified plane)
2) No
1) Plane
1) Yes
2) Axis (in
specified plane)
2) Yes
1) Plane
1) Yes
2) Axis (in
specified plane)
2) Yes
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
Cylindrical
Axis
Yes
Planar Slot
1) Plane
1) Yes
No
n/a
n/a
No
n/a
n/a
26
Input Geometry
Vertical
Axis/Plane (one
object, world Yaxis implied for
other)
No
n/a
n/a
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
See Also
Part Ports (on page 20)
Reference Ports (on page 23)
Constraints (on page 24)
SupportJoints Sheet (on page 80)
27
28
29
30
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.
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
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)
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.
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.
34
Define Assemblies
3. Click Properties
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.
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.
36
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.
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
Define Assemblies
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.
40
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
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
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.
Orthogonal to Global CS - The bounding box is parallel to the global coordinate system.
43
Define Assemblies
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
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.
45
Define Assemblies
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.
Define Assemblies
If false, the bounding box is located such that the reference port of the primary structure is on the
plane of the bounding box.
47
Define Assemblies
48
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.
49
Define Assemblies
50
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.
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
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
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.
54
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
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
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.
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.
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
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
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
Define Assemblies
Private Function IJHgrAssmInfo_GetRouteConnections(
pDispInputConfigHlpr As Object ) As Object
ByVal
61
Define Assemblies
62
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)
63
Define Assemblies
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
Define Assemblies
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.
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.
See Also
Assembly Selection Rules (on page 64)
Delivered Assembly Selection Rules (on page 67)
Assembly Selection Rules Example (on page 69)
66
Define Assemblies
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
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.
68
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)
See Also
Assembly Selection Rules (on page 64)
Determining Which ASR is Used (on page 65)
Delivered Assembly Selection Rules (on page 67)
69
Define Assemblies
See Also
AIR Changes to Support Place by Reference (on page 70)
ASR Changes to Support Place by Reference (on page 72)
70
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
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
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
72
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).
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.
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
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)
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
Lookup Tables
See Also
Lookup Tables (on page 77)
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)
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
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
Planar
Translation
Prismatic
Rigid
Spherical
Cylindrical
Planar Slot
Vertical
10
Horizontal X
11
Horizontal Y
12
Point On
81
Lookup Tables
See Also
Lookup Tables (on page 77)
Joints (on page 25)
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
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.
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
SECTION 5
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:
85
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
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.
87
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
89
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
Index
A
GetAssemblyCatalogParts Method 55
GetAssemblyJoints Method 57
GetFacePositionInfo Method 73
GetRouteConnections Method 60
GetStructConnections Method 63
Insulation Option 45
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
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