HangersSupportsReferenceDataGuide PDF
HangersSupportsReferenceDataGuide PDF
Trademarks
Intergraph, the Intergraph logo, SmartSketch, FrameWorks, SmartPlant, IntelliShip, INtools, ISOGEN, PDS, and
MARIAN are registered trademarks of Intergraph Corporation. 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.
Portions of 2D DCM, 3D DCM, and HLM from D-Cubed Limited are incorporated. All rights reserved. Oracle, JD
Edwards, PeopleSoft, and Retek are registered trademarks of Oracle Corporation and/or its affiliates. Other brands
and product names are trademarks of their respective owners.
Table of Contents
Table of Contents
Preface.................................................................................................................................4
SmartPlant 3D Documentation Set...............................................................................5
Administrative Guides ........................................................................................................ 5
User's Guides ...................................................................................................................... 6
Reference Data Guides ....................................................................................................... 7
ISOGEN Guides ................................................................................................................. 8
Documentation Comments ...........................................................................................9
What's New in Hangers and Supports Reference Data...............................................10
Index..................................................................................................................................57
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
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, managing interference detection, defining
and managing locations for Global Workshare, controlling duplication and
consolidation of plants, tools for synchronization, regeneration of report databases,
and version upgrade.
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,
converting PDS reference data to SmartPlant 3D reference data, and converting
EDEN symbols to Visual Basic symbols.
User's Guides
Catalog User's Guide - Provides information about viewing, editing, and creating
reference data and select lists (codelists).
Drawings and Reports User's Guide - Provides information about creating drawing
and report deliverables.
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,
cableway, and conduit supports in the model.
Piping User's Guide - Provides instructions for routing pipe and placing valves, taps,
and pipe joints.
Space Management User's Guide - Provides instructions for placing volumes (such as
drawing volumes, obstruction zones) 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, braces, slabs, openings, stairs, ladders, equipment foundations, and
handrails.
Systems and Specifications User's Guide - Provides instructions for creating systems
and their hierarchies and selecting which specifications are available for each system
type.
Hangers and Supports Reference Data Guide - Provides information about hangers
and supports reference data.
HVAC Reference Data Guide - Provides information about HVAC reference data.
Piping Reference Data Guide - Provides information about piping reference data
including piping specifications, piping specification rules, piping parts, piping
symbols, and name rules.
SmartPlant 2D Symbols Reference Data Guide - Provides information about the two-
dimensional symbols used in all tasks.
ISOGEN Guides
AText Reference Guide - Provides information about alternative text for isometric
drawings. This guide is from Alias, the makers of ISOGEN®.
Option Switches Reference Guide - Provides information about the ISOGEN option
switches for isometric drawings. This guide is from Alias, the makers of ISOGEN.
Symbol Keys Reference Guide - Provides information about the symbol keys for
isometric drawings. This guide is from Alias, the makers of ISOGEN.
Documentation Comments
Send documentation comments or suggestions to PPMdoc@intergraph.com.
Version 2007
• 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.
Tip
• The filenames 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_HgrAisc-LRFD-3.1.xls Defines connection support component classes.
Workbook Content
HS_LRParts.xls Defines load-rated parts for rigid rod assemblies.
HS_System.xls Contains information from the previous
HangersandSupports.xls workbook, such as designed
supports, hangers and supports rules, and hanger
discipline filters.
HS_Utility.xls Defines utility classes, which include concrete parts and
steel plates.
HS_Utility_Codelist.xls Defines codelists for the utility classes.
Workbook Content
HS_Bline_Assy.xls Defines the Copper B-Line Cable Tray Assemblies catalog.
HS_Bline_Assy_Co Defines the Copper B-Line Cable Tray Assemblies codelist.
delist.xls
HS_Bline_Tray.xls Defines the Copper B-Line Cable Tray Parts catalog. See also
[Product
Directory]\CatalogData\Bulkload\AdditionalDataFiles\Delta61
to2007\ExampleWorkbooksPerFeatureHS_System Add Cable
Tray Parts Compatiblity.xls for additional information.
HS_Bline_Tray_Co Defines the Copper B-Line Cable Tray Parts codelist.
delist.xls
HS_Halfen_Assy.xl Defines the Halfen Assemblies catalog.
s
HS_Halfen_Assy_C Defines the Halfen Assemblies codelist.
odelist.xls
HS_Halfen_PC.xls Defines the Halfen Parts catalog.
HS_Halfen_PC_Co Defines the Halfen Parts codelist.
delist.xls
HS_Hgr_BlineChan Defines the Hanger Bline Channels for Bline Assemblies.
nel.xls
HS_Hgr_BlineChan Defines the Hanger Bline Channels for Bline codelist.
nel_Codelist.xls
HS_HgrAisc.xls Defines the Aisc hanger beams.
Workbook Content
HS_HgrCisc.xls Defines hanger beams in metric. If you intend to use
HS_HgrCisc.xls, you must first bulk load StructCrossSections-
CICS-7.2.xls. The StructCrossSections-CICS-7.2.xls workbook
can be found in the [Product
Directory]\CatalogData\Bulkload\AdditionalDataFiles folder.
HS_HgrEuro_OTU Defines the Hanger Euro OTUA catalog.
A.xls
HS_Lisega.xls Defines part classes from the Lisega catalog.
HS_Lisega_Codelis Defines codelists for the Lisega catalog.
t.xls
HS_PSL.xls Defines the PSL catalog.
HS_PSL_Codelist.x Defines the PSL codelist.
ls
HS_Util_Metric.xls Defines the Utility Metric parts.
HS_Util_Metric_Co Defines the Utility Metric codelist.
delist.xls
Workbook Content
HS_Assembly Strict Face Selection.xls Defines the use of Strict Face Selection
for assemblies.
HS_Assembly to specify OffsetY for Provides information about defining Y
Assy_FR_LS_LS.xls offset for parts.
HS_Assembly_restraints.xls Provides instructions for adding stiffness
restraints to sections.
HS_Face Position Offset in Y Defines information about defining Y
Direction.xls offset for the face position.
HS_Gtype Component Translator.xls Explains how to translate supports from
other software (for example, PDS) for use
with SP3D.
HS_Restraint Properties for Standard Defines restraint properties for support
Support Assemblies.xls assemblies.
HS_System Add Cable Tray Parts Provides instructions for use with the
Compatiblity.xls HS_Bline_Tray.xls workbook when using
cable tray parts.
Workbook Content
HS_System AddRoundingRule and Defines instructions for implementing
Remove ref to ISPSMember and rounding for supports.
FacePosSelection.xls
HS_System StrictFaceSelection.xls Defines strict face selection for
assemblies.
HS_System to specify OffsetY for Defines instructions for using Y offset for
Assy_FR_LS_LS.xls assemblies.
Related Topics
• Understanding Assemblies and Parts, page 15
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.
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.
Related Topics
• Understanding Constraints, page 21
• Understanding Joints, page 22
• Understanding Part Ports, page 17
• Understanding Reference Ports, page 20
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.
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.
Related Topics
• Understanding Assemblies and Parts, page 15
• Understanding Constraints, page 21
• Understanding Joints, page 22
• Understanding Reference Ports, page 20
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.
Related Topics
• Understanding Assemblies and Parts, page 15
• Understanding Constraints, page 21
• Understanding Joints, page 22
• Understanding Part Ports, page 17
Understanding 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.
Coincident - Makes two geometries identical. Coincident constraints are only valid if
one geometry can be made to touch everywhere with the other geometry.
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.
Related Topics
• Understanding Assemblies and Parts, page 15
Understanding 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, are 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
the 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.
The next table lists joint and coupling types along with the associated degrees of
freedom and a description of each joint.
3) Origin
(implied)
Spherical Origin No 0 3 Object origins
(implied) remain in
contact with
each other
while objects
are free to
spin.
Cylindrical Axis Yes 1 1 Objects are
free to spin
about and
translate
along
provided axis.
Planar Slot 1) Plane 1) Yes 1 1 While
provided
2) Axis 2) Yes planes remain
(one object flush, objects
only) can rotate
about their
normal and
slide along
the axis.
Horizontal Axis/Plane No n/a n/a Object
(one object, becomes
world XY- coincident
plane with or lies in
implied for the horizontal
other) plane.
Related Topics
• SupportJoints Sheet, page 51
• Understanding Assemblies and Parts, page 15
• Understanding Constraints, page 21
• Understanding Part Ports, page 17
• Understanding Reference Ports, page 20
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.
Part Class Type - Declare the type of supports. There are several types of supports:
PipeSupportDefinitionClass, DuctSupportDefinitionClass,
CableTraySupportDefinitionClass, ConduitSupportDefinitionClass, and
CombinedSupportDefinitionClass.
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.
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 Example, page 31.
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.
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.
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.
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 supported object is circular.
Supported Family - Enter the type of supported object. Valid types are STRAIGHT
and TURN.
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.
Related Topics
• Assembly Information Rule Example, page 31
• Hangers and Supports Reference Data: An Overview, page 11
• Supports and Local Coordinate System (LCS): An Overview, page 29
By default, the LCS 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.
These LCS are provided to facilitate creating drawings with consistent views. When
creating a drawing, you can use the Use object coordinate system checkbox when
creating a view so that that 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.
The Assembly Information code for any Standard Support can be modified to change
the orientation of the LCS 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
'===================================================================
=
'------------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 =========
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:
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.
Implements IJHgrAssmInfo
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
'Create a new collection to hold the catalog parts
Dim CatalogPartCollection As New Collection
'Create the list of part classes required by the support assembly
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.
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:
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, String PortName_A,
Integer PartIndex_B, String PortName_B,
Integer ConfigIndex,
Double PlaneOffset ) 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
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.
Private Function IJHgrAssmInfo_GetRouteConnections( ByVal
pDispInputConfigHlpr As Object ) As Object
'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.
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 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).
Related Topics
• Defining Assemblies: An Overview, page 26
Related Topics
• Defining Assemblies: An Overview, page 26
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.
Notes
• 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 symbols 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.
Part Number - Type a part number. This part number must be unique across the
entire reference data catalog.
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.
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):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.
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.
Related Topics
• Hangers and Supports Reference Data: An Overview, page 11
Related Topics
• Face Position Selection Sheet, page 49
• Face Selection Sheet, page 45
• Rules Sheet, page 50
• SupportJoints Sheet, page 51
Face Name - Enter a unique name for the face selection option. This name must be
unique across the entire catalog.
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, page 49.
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.
Related Topics
• Lookup Tables: An Overview, page 44
Point Sel Name - Enter a unique name for the face position selection option. This
name must be unique across the entire catalog.
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.
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.
Related Topics
• Lookup Tables: An Overview, page 44
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 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.
Related Topics
• Lookup Tables: An Overview, page 44
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 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 Understanding Joints, page 22. This
value is not currently used in the software.
Configuration Index - Enter the configuration index number to use for the joint. You
can calculate the configuration index number using the Configuration Index
Calculator, page 52. 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.
Related Topics
• Lookup Tables: An Overview, page 44
• Understanding Joints, page 22
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.
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.
Related Topics
• SupportJoints Sheet, page 51
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.
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.
Port Service - Specifies the port service that the software is to use to locate the
reference port on the supporting object.
Related Topics
• Lookup Tables: An Overview, page 44
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.
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.
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.
Assembly Path - Defines the path in the catalog to the assembly definitions.
Parts Path - Defines the path in the catalog to the hanger and support parts.
Related Topics
• Lookup Tables: An Overview, page 44
Index
assemblies, 15, 26 revolute, 22
local coordinate system, 29 local coordinate system
assembly information rule, 26 assemblies, 29
example, 31 changing orientation, 29
assembly selection rule elevation axis, 29
overview, 40 supports, 29
associated lookup tables, 44
local coordinate system for supports, 29 new features, 10
beams parts, 15, 41
face position selection, 49 joints, 51
face selection, 45 ports, 17
columns piping
face position selection, 49 associated local coordinate system, 29
face selection, 45 port
command type, 26, 55 category, 41
configuration index, 51 connection information, 41
calculator, 52 mating type, 41
connectable type, 55 name, 41
constraints service, 55
coincident, 21 ports
distance, 21 constraints, 21
parallel, 21 parts, 17
perpendicular, 21 reference, 20
defining interface, 55 position selection key, 49
degrees of freedom, 22 preface, 4
discipline type, 26, 55 reference data, 11
Face Position Selection Sheet, 49 reference ports, 20
Face Selection Sheet, 45 rule
face selection type, 26 name, 50
filters, 55, 56 type, 50
name, 55 value, 50
HgrDisciplineFilter Sheet, 56 Rule Sheet, 50
HgrRefSupportingFilter Sheet, 55 selection key, 45
HS_System.xls supported
Face Position Selection Sheet, 49 count, 26
Face Selection Sheet, 45 family, 26
HgrDisciplineFilter Sheet, 56 supporting count, 26
HgrRefSupportingFilter Sheet, 55 SupportJoints Sheet, 51
Rule Sheet, 50 supports
SupportJoints Sheet, 51 local coordinate system, 29
joints, 51 symbol definition, 41
configuration index calculator, 52 symbols
cylindrical, 22 ports, 17
planar slot, 22 type selection rule, 26
prismatic, 22 what's new, 10