Você está na página 1de 448

RAM DataAccess

Developers Guide
Release 14.06.00
October 2013

Bentley Systems
2744 Loker Avenue West, Suite 103
Carlsbad, CA 92010
Telephone: (760) 431-3610
Toll Free: (800) 726-7789
Fax: (760) 431-5214

TRADEMARK NOTICE
Bentley and the "B" Bentley logo are registered or non-registered trademarks of Bentley Systems, Incorporated.
RAM SBeam, RAM Structural System, RAM Manager, RAM Modeler, RAM Steel, RAM Frame, RAM Foundation and RAM Concrete
are registered or non-registered trademarks of Bentley Systems, Incorporated.
All other marks are the property of their respective owners.
COPYRIGHT NOTICE
Copyright (c) 2012 Bentley Systems, Incorporated. All Rights Reserved.
Including software, file formats, and audiovisual displays; may only be used pursuant to applicable software license agreement;
contains confidential and proprietary information of Bentley Systems, Incorporated and/or third parties which is protected by
copyright and trade secret law and may not be provided or otherwise made available without proper authorization.
ACKNOWLEDGEMENTS
Contains CM2 MeshTools by Computing Objects
Virtual Print Engine (VPE) Copyright IDEAL Software
CM2 MeshTools Computing Objects SARL
Math Kernel Library (MKL) Intel Corporation
The Boost Graph Library (BGL) Siek, J.G., Lee, L., and Lumsdaine, A.
Ultimate Toolbox Dundas Software Ltd.
TurboDXF Ideal Engineering
Portions Copyright Microsoft Corporation
Includes Adobe(R) PDF Library technology. Portions Copyright (c) Adobe Systems, Inc.
Clipper library Angus Johnson
zlib software Jean-loup Gailly and Mark Adler.
RESTRICTED RIGHTS LEGENDS
If this software is acquired for or on behalf of the United States of America, its agencies and/or instrumentalities ("U.S. Government"),
it is provided with restricted rights. This software and accompanying documentation are "commercial computer software" and
"commercial computer software documentation," respectively, pursuant to 48 C.F.R. 12.212 and 227.7202, and "restricted computer
software" pursuant to 48 C.F.R. 52.227-19(a), as applicable. Use, modification, reproduction, release, performance, display or
disclosure of this software and accompanying documentation by the U.S. Government are subject to restrictions as set forth in this
Agreement and pursuant to 48 C.F.R. 12.212, 52.227-19, 227.7202, and 1852.227-86, as applicable. Contractor/Manufacturer is
Bentley Systems, Incorporated, 685 Stockton Drive, Exton, PA 19341-0678.
Unpublished - rights reserved under the Copyright Laws of the United States and International treaties.

DISCLAIMER
The software and related documentation, including this documentation, are protected by both United States copyright law and
international treaty provisions. Any unauthorized copying or reproduction is strictly prohibited and subject to civil and criminal
penalties. Please refer to the License Agreement for authorization to make a backup copy of the software. You may not sell this
software or documentation or give copies of them away to anyone else.
Except as expressly warranted in the License Agreement, Bentley Systems, Incorporated disclaims all warranties, expressed or
implied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to the
software, the accompanying written materials, and any accompanying hardware. All results should be verified to the users
satisfaction. The contents of these written materials may include technical inaccuracies or typographical errors and may be revised
without prior notice.

Table of Contents
Introduction .......................................................................................................................................................................................... 10
Basic Concepts of the RAM Object Model ........................................................................................................................................... 10
General Information ............................................................................................................................................................................. 12
Creating and Updating a Model ........................................................................................................................................................... 14
Reading an Existing Model .................................................................................................................................................................. 18
The Object Model Interfaces ................................................................................................................................................................ 19
DAArray............................................................................................................................................................................................ 19
IAnalyticalResult ............................................................................................................................................................................... 20
IBasePlate ........................................................................................................................................................................................ 21
IBeam ............................................................................................................................................................................................... 21
IBeams ............................................................................................................................................................................................. 25
IColumn ............................................................................................................................................................................................ 26
IColumns .......................................................................................................................................................................................... 30
IColumnStack ................................................................................................................................................................................... 32
ICompDeckProp ............................................................................................................................................................................... 32
ICompDeckProps ............................................................................................................................................................................. 33
IConcreteCriteria .............................................................................................................................................................................. 35
IConcreteMaterial ............................................................................................................................................................................. 35
IConcSectProp ................................................................................................................................................................................. 36
IConcSectProps ............................................................................................................................................................................... 37
IConcShearWallCriteria .................................................................................................................................................................... 40
IConcSlabProp ................................................................................................................................................................................. 40
IConcSlabProps ............................................................................................................................................................................... 41
IContinuousFnd ................................................................................................................................................................................ 42
IContinuousFnds .............................................................................................................................................................................. 44
ICouplingBeam ................................................................................................................................................................................. 45
ICouplingBeamCriteria ..................................................................................................................................................................... 46
ICouplingBeams ............................................................................................................................................................................... 47
IDB ................................................................................................................................................................................................... 49
IDBRecord ........................................................................................................................................................................................ 49
IDBRecords ...................................................................................................................................................................................... 49
IDBTable .......................................................................................................................................................................................... 49
IDBTables ........................................................................................................................................................................................ 49
IDeck ................................................................................................................................................................................................ 49
IDecks .............................................................................................................................................................................................. 51
IDeckTableEntries ............................................................................................................................................................................ 53
IDeckTableEntry ............................................................................................................................................................................... 53

IDiaphragm ....................................................................................................................................................................................... 54
IDiaphragms ..................................................................................................................................................................................... 55
IField ................................................................................................................................................................................................ 56
IFields............................................................................................................................................................................................... 56
IFinalWallOpening ............................................................................................................................................................................ 57
IFinalWallOpenings .......................................................................................................................................................................... 57
IFloorType ........................................................................................................................................................................................ 58
IFloorTypes ...................................................................................................................................................................................... 62
IFrameAnalysisCriteria ..................................................................................................................................................................... 64
IGridSystem ..................................................................................................................................................................................... 64
IGridSystems .................................................................................................................................................................................... 65
IHorizBrace ...................................................................................................................................................................................... 66
IHorizBraces ..................................................................................................................................................................................... 69
IIsolatedFnd ..................................................................................................................................................................................... 70
IIsolatedFnds .................................................................................................................................................................................... 72
ILayoutBeam .................................................................................................................................................................................... 73
ILayoutBeams .................................................................................................................................................................................. 78
ILayoutColumn ................................................................................................................................................................................. 80
ILayoutColumns ............................................................................................................................................................................... 83
ILayoutContinuousFnd ..................................................................................................................................................................... 86
ILayoutContinuousFnds ................................................................................................................................................................... 88
ILayoutHorizBrace ............................................................................................................................................................................ 89
ILayoutHorizBraces .......................................................................................................................................................................... 92
ILayoutIsolatedFnd ........................................................................................................................................................................... 93
ILayoutIsolatedFnds ......................................................................................................................................................................... 95
ILayoutMatFndPerim ........................................................................................................................................................................ 97
ILayoutMatFndPropPoly ................................................................................................................................................................... 97
ILayoutWall ...................................................................................................................................................................................... 97
ILayoutWalls ..................................................................................................................................................................................... 99
ILineLoadPropertySet..................................................................................................................................................................... 101
ILineLoadPropertySets ................................................................................................................................................................... 101
ILineLoadSet .................................................................................................................................................................................. 103
ILineLoadSets ................................................................................................................................................................................ 103
ILoadCase ...................................................................................................................................................................................... 104
ILoadCases .................................................................................................................................................................................... 106
ILoadCombination .......................................................................................................................................................................... 107
ILoadCombinationParam................................................................................................................................................................ 107
ILoadCombinationParams .............................................................................................................................................................. 108

ILoadCombinations ........................................................................................................................................................................ 110


ILoadCombinationTerm .................................................................................................................................................................. 111
ILoadCombinationTerms ................................................................................................................................................................ 111
ILoadComboInternal ....................................................................................................................................................................... 113
ILoadComboParamCntrl1............................................................................................................................................................... 113
ILoadComboParamCntrl3............................................................................................................................................................... 113
ILoadComboParamsCntrl1 ............................................................................................................................................................. 114
ILoadComboParamsCntrl3 ............................................................................................................................................................. 115
IMatFndPerim ................................................................................................................................................................................. 116
IMatFndPropPoly ........................................................................................................................................................................... 116
IMemberForce ................................................................................................................................................................................ 116
IMemberForces .............................................................................................................................................................................. 117
IModel ............................................................................................................................................................................................ 118
IModelGrid...................................................................................................................................................................................... 132
IModelGrids .................................................................................................................................................................................... 133
INode.............................................................................................................................................................................................. 134
INodes ............................................................................................................................................................................................ 135
INonCompDeckProp ...................................................................................................................................................................... 135
INonCompDeckProps..................................................................................................................................................................... 135
IOtherMaterial ................................................................................................................................................................................ 136
IOtherSectProp .............................................................................................................................................................................. 137
IOtherSectProps ............................................................................................................................................................................. 138
IPile ................................................................................................................................................................................................ 140
IPileConfiguration ........................................................................................................................................................................... 140
IPileConfigurations ......................................................................................................................................................................... 141
IPiles .............................................................................................................................................................................................. 142
IPoint .............................................................................................................................................................................................. 143
IPointLoad ...................................................................................................................................................................................... 144
IPointLoadPropertySet ................................................................................................................................................................... 145
IPointLoadPropertySets ................................................................................................................................................................. 145
IPointLoads .................................................................................................................................................................................... 146
IPointLoadSet ................................................................................................................................................................................. 147
IPointLoadSets ............................................................................................................................................................................... 147
IPoints ............................................................................................................................................................................................ 148
IProperties ...................................................................................................................................................................................... 150
IProperty......................................................................................................................................................................................... 151
IPropertyDefinition .......................................................................................................................................................................... 153
IPropertyDefinitions ........................................................................................................................................................................ 155

IRAMFrameCriteria ........................................................................................................................................................................ 157


IRawWallOpening .......................................................................................................................................................................... 158
IRawWallOpenings ......................................................................................................................................................................... 159
IRawWallSectionCut....................................................................................................................................................................... 160
IRawWallSectionCuts ..................................................................................................................................................................... 165
IRBSPropertySet ............................................................................................................................................................................ 167
IReactionNode ............................................................................................................................................................................... 167
IReactionNodes .............................................................................................................................................................................. 168
IRecord........................................................................................................................................................................................... 169
IRecords ......................................................................................................................................................................................... 169
IShell .............................................................................................................................................................................................. 170
IShells ............................................................................................................................................................................................ 170
ISlabEdge....................................................................................................................................................................................... 171
ISlabEdges ..................................................................................................................................................................................... 172
ISlabOpening ................................................................................................................................................................................. 173
ISlabOpenings ................................................................................................................................................................................ 174
ISlabPerimeter ............................................................................................................................................................................... 174
ISlabPerimeters .............................................................................................................................................................................. 175
ISnowLoadPropertySet .................................................................................................................................................................. 176
ISnowLoadPropertySets................................................................................................................................................................. 176
ISnowLoadSet ................................................................................................................................................................................ 177
ISnowLoadSets .............................................................................................................................................................................. 178
ISteelBeamDesignResult ............................................................................................................................................................... 180
ISteelCriteria .................................................................................................................................................................................. 180
ISteelMaterial ................................................................................................................................................................................. 182
IStories ........................................................................................................................................................................................... 182
IStory .............................................................................................................................................................................................. 184
IStress ............................................................................................................................................................................................ 188
IStresses ........................................................................................................................................................................................ 189
IStringValue .................................................................................................................................................................................... 189
ISurfaceLoadPropertySet ............................................................................................................................................................... 189
ISurfaceLoadPropertySets ............................................................................................................................................................. 190
ISurfaceLoadSet ............................................................................................................................................................................ 191
ISurfaceLoadSets ........................................................................................................................................................................... 192
ITable ............................................................................................................................................................................................. 193
ITrialGroup ..................................................................................................................................................................................... 194
ITrialGroups ................................................................................................................................................................................... 195
IVerticalBrace ................................................................................................................................................................................. 195

IVerticalBraces ............................................................................................................................................................................... 198


IWall ............................................................................................................................................................................................... 200
IWallBarLayout ............................................................................................................................................................................... 204
IWallBarLayouts ............................................................................................................................................................................. 205
IWallBarPattern .............................................................................................................................................................................. 206
IWallBarPatterns ............................................................................................................................................................................ 207
IWallBarPlacement ......................................................................................................................................................................... 208
IWallBarPlacements ....................................................................................................................................................................... 208
IWallBarSet .................................................................................................................................................................................... 210
IWallBarSets .................................................................................................................................................................................. 210
IWallCodeMessage ........................................................................................................................................................................ 212
IWallCodeMessages ...................................................................................................................................................................... 212
IWallCodeResult ............................................................................................................................................................................ 213
IWallCodeResults ........................................................................................................................................................................... 214
IWallDesignGroup .......................................................................................................................................................................... 215
IWallDesignGroups ........................................................................................................................................................................ 218
IWallFailedMember ........................................................................................................................................................................ 219
IWallFailedMembers....................................................................................................................................................................... 219
IWallFE........................................................................................................................................................................................... 221
IWallFEs ......................................................................................................................................................................................... 222
IWallLimitCheck ............................................................................................................................................................................. 222
IWallLimitChecks ............................................................................................................................................................................ 223
IWallPanel ...................................................................................................................................................................................... 225
IWallPanelReinfZone...................................................................................................................................................................... 227
IWallPanelReinfZones .................................................................................................................................................................... 227
IWallPanels .................................................................................................................................................................................... 228
IWalls ............................................................................................................................................................................................. 230
IWallSectionDsnCut ....................................................................................................................................................................... 231
IWallSectionDsnCutForceSet ......................................................................................................................................................... 233
IWallSectionDsnCutForceSets ....................................................................................................................................................... 234
IWallSectionDsnCuts...................................................................................................................................................................... 235
IWebOpening ................................................................................................................................................................................. 237
IWebOpenings ............................................................................................................................................................................... 238
WallBarPatternTemplate ................................................................................................................................................................ 239
WallBarPatternTemplates .............................................................................................................................................................. 240
Original DataAccess Interfaces.......................................................................................................................................................... 243
IConcAnalysis1 .............................................................................................................................................................................. 243
IConcAnalysisState1 ...................................................................................................................................................................... 245

IConcBeamState1 .......................................................................................................................................................................... 251


IConcBeamState2 .......................................................................................................................................................................... 260
IConcCntlrCommon1 ...................................................................................................................................................................... 270
IConcColModState1 ....................................................................................................................................................................... 274
IConcColModState2 ....................................................................................................................................................................... 280
IConcept ......................................................................................................................................................................................... 282
IDBIO1 ........................................................................................................................................................................................... 284
IForces1 ......................................................................................................................................................................................... 287
IForces2 ......................................................................................................................................................................................... 295
IGravityLoads1 ............................................................................................................................................................................... 301
IGravitySteelDesign1...................................................................................................................................................................... 319
ILoading1 ....................................................................................................................................................................................... 322
IMemberData1 ............................................................................................................................................................................... 327
IMemberData2 ............................................................................................................................................................................... 339
IModelData1 ................................................................................................................................................................................... 344
IModelData2 ................................................................................................................................................................................... 350
IModelGeometry1 ........................................................................................................................................................................... 359
IModelGeometry2 ........................................................................................................................................................................... 371
IModelStatus1 ................................................................................................................................................................................ 375
IRamDataAccess2.......................................................................................................................................................................... 377
ISteelColumnState ......................................................................................................................................................................... 377
ISteelColumnState2 ....................................................................................................................................................................... 381
RamDataAccess1........................................................................................................................................................................... 382
Common Structure Definitions ........................................................................................................................................................... 383
Common Enumerator Definitions ....................................................................................................................................................... 401
Appendix A - RAM Object Model Diagram ......................................................................................................................................... 433
Appendix B Using DataAccess from VB/VBA ................................................................................................................................. 434
Appendix C Using RAM DataAccess in a Visual C++ Project ......................................................................................................... 438
Appendix D - Using RAMDataAccess in C++ with Smart Pointers .................................................................................................... 443
Appendix E Additional Load Case Information ................................................................................................................................ 445
Appendix F Shear wall interface constants ..................................................................................................................................... 447

Introduction
RAM DataAccess was first introduced several years ago as a new way to access data in a RAM Structural System model. It
replaced the Programmers Interface and was designed to be used not only by 3rd parties, but also by RAM Structural System itself.
The primary role of DataAccess in the first few years was to read data in the RAM SS model. Eventually the need arose to modify
the RAM SS model via DataAccess. At that point, we decided that the existing interfaces did not lend themselves well to this new
required functionality and a new set of interfaces, collectively termed the RAM Object Model were designed with these
requirements in mind. These new interfaces, which allow data to not only be read, but also updated, added and deleted, have been
incorporated into our existing RAM DataAccess COM component, although they can for the most part be used independently of the
pre-existing interfaces. The RAM Object Model interfaces have been designed with the framework of the RAM Structural System in
mind to help ensure that a valid model is created (see the first section under Basic Concepts below). The interfaces have also been
architected to provide a clear plan for future extensions and enhancements to the RAM Object Model.
There is much overlap in the functionality of the RAM Object Model interfaces and the original DataAccess interfaces. Whenever the
same functionality can be achieved in either set of interfaces, it is preferred to use the RAM Object Model interfaces. Eventually all
functionality will be provided via interfaces that are built on the RAM Object Model architecture and the original interfaces will
gradually become obsolete.

Basic Concepts of the RAM Object Model


In designing the RAM Object Model interfaces, both the framework of the RAM Structural System and future extensibility of the
object model were taken into consideration.

RAM Structural System Model


The RAM Structural System makes use of the concept of a typical floor, or floor type. Each floor type can be used to define multiple
stories in a model such that there is often a one-to-many correspondence between floor types and stories. This modeling concept
poses some restrictions on how a model may be modified outside of the RAM Structural System. For example, although member
sizes may vary from story-to-story for a member on a single floor type, other properties, such as type of material cannot vary
between stories. Additionally, most members cannot be added, deleted, or moved on a story-by-story basis since all stories based
on the same floor type must have the same basic geometry. (Note that vertical braces are an exception, since they are added to the
story, not to the floor type.)

RAM Object Model Architecture


There is a COM interface for each entity of a building model that is represented in the RAM Object Model, such as a floor type
(IFloorType), beam (IBeam), or deck (IDeck). Using these interfaces, properties of the entity can be retrieved or changed.
Additionally, there is an interface for each entity type that represents a collection of entities (i.e. IFloorTypes, IBeams, IDecks). The
collection interface allows for the addition or deletion of the type of entity associated with the interface (although there are some

exceptions as explained below). For example, to add or delete floor types, use the IFloorTypes interface. The collection interface
can be used to iterate through a set of entities and to filter the collection to obtain a subset of that type of entity.
For each member that is modeled through a floor type in the RAM Structural System, but which may also be altered on a story basis
(beams, columns, etc), there are two corresponding interfaces, one for the floor type, and one for the story. Each ILayoutMember 1
interface, for example, corresponds to a member in the floor type, which may correspond to zero, one or more actual members,
depending on how many stories are associated with the floor type. (Note that floor types are sometimes referred to as layout types
in the RAM Structural System, so these interfaces dont refer to laying out the member, but refer to the member on the layout type
or floor type.)
The IMember interface corresponds to a single member at a particular story. Generally, to get properties of a member, use the
IMember interface. Some properties (any property that the RAM Structural System allows to be modified on a story-by-story basis)
can also be set for a member using the IMember interface, such as member size or fixity. For properties that cannot vary story-tostory, or to move a member, the ILayoutMember interface must be used, which in effect updates all corresponding members on the
stories associated with that floor type. The documentation for each interface indicates which properties can be set from that
interface.
As explained above, all stories that are based on the same floor type must have the same basic geometry. For this reason,
members cannot be added on a story-by-story basis. Due to this restriction in the RAM Structural System model, the IMembers
interfaces (which correspond to a story) do not have functionality to add or delete members. For example, to add a beam, you need
to use the ILayoutBeams collection interface; the IBeams interface does not allow beams to be added.

The italicized Member is used to refer to any of Beam, Column, Wall, HorizBrace, IsolatedFnd or ContinuousFnd.

General Information
Version Information
You will notice that the documentation for each interface, function and property indicates the version that it first became available.
The IRamDataAccess2 interface provides a function called GetVersion() to determine the version of RAM DataAccess with which
you are working. You want to make sure you have v10.0, for example, if you want to get a property that was first available in v10.0.
The IRamDataAccess2 interface was made available in v9.01. To determine if you have the version you need to access a particular
function or property, first check to see if you can get the IRamDataAccess2 interface. If you cannot, you have a version that is older
than v9.01. If you can get the interface, call GetVersion(). Depending on your program, you may want to make this call right at the
beginning and only allow the user to run your program if a certain version of RAMDataAccess.dll or later is available. Or you may
just use the version info to decide whether or not to call functions or properties or attempt to get interfaces that are newer.

Definitions and Naming Convention


RAM International utilizes Hungarian Notation to make it easy to identify data and variable types. Each variable or data type is
prefixed with one or more letters that identify its type. The following table lists the most common prefixes and their meanings. (Note
to VB/VBA users: several of these variable types are not used in VB/VBA. Explanations of them are provided in the For VB/VBA
users. A link to that section will be provided when appropriate.)
Prefix

Meaning

I
C
E
S

A capital I precedes all interface names.


A capital C precedes all class names.
A capital E precedes names of enumerators.
A capital S precedes names of structures.

bstr

BSTR, a 32-bit character pointer


This is how we pass strings through a COM interface.
long, a 32-bit signed integer
double, a 64-bit double precision number
float, a 32-bit single precision number
an enumerated type. Technically a long.
DWORD, a 32-bit unsigned integer.
a pointer
an array
Pointer to a pointer for an array.
This is used to allocate memory for the array inside of DA.

l or n
d
f
e
dw
p
a
pp

VB/VBA

VB/VBA

For C++ users the array must be set to NULL before the function is called and if the array size is zero then the array is not
changed or redimentioned in any way. The memory must be released on the calling function side using CoTaskMemFree.

This feature is incompatible with VB/VBA and all Automation programming tools.
Prefixes are often combined to provide more information about a variable. For instance, the prefix pd would refer to, not just a pointer, but a
pointer to a double.
In addition to variable prefixes, variables in the parameter list are preceded by one of the following identifiers.
[in]
[out]
[out, retval]

indicates that this is a variable being passed in


indicates that a value will be returned in this variable.
indicates that a value will be returned as the result of the method call (in VB/VBA or if using #import for C++ users).

Method Return values


In general, one of three values is returned from RAM DataAccess. Always check the return value of the methods you are using. Note
that the S and E preceding these return values do not follow the rules mentioned above. In this case S refers to success and E
refers to error.
S_OK
E_FAIL
E_NOTIMPL

The method was completed successfully


The method did not complete successfully
This method is not yet implemented.

If E_FAIL is returned, the GetLastError method can be used to find out more about what went wrong (see Common Methods).
Note that for VB/VBA users and C++ users using #import, this return value is automatically parsed and any return other than S_OK
will result in an error that must be handled in an error_handler or catch statement respectively. C++ users can change this default
behavior of #import (so as to have the compiler not automatically parse the return value). Refer to Appendix D for more information.
For most functions created in v8.2 and later you will notice a plRetVal as the last parameter. plRetVal will provide a return error code
that may not be critical but should be verified. This is different than the S_OK, E_FAIL and E_NOTIMPL which in general are critical
(COM related) errors. The plRetVal will provide you with an error code that you can use to decide if you want to ignore the error or if
you need to in some way change the program flow due to the error.
For all VB/VBA program and C++ programs using the #import, the plRetVal will be the return value for the function. See example
code in the toolkit for more information.

Database Units
All values are stored as inches and kips with the exception of Unit Weight which is stored in pounds per cubic foot (pcf).

A Note about this Documentation

The methods that appear grayed out are not intended for use outside of RAM International. This includes methods that have been
deprecated and some Set methods.

Creating and Updating a Model


Opening a Model
First, create an instance of IRAMDataAccess1 in your project. (Specific instructions for different languages are available in the
appendices.) After creating an instance of the IRAMDataAccess1 interface, use the GetInterfacePointerByEnum() (or
GetDispInterfacePointerByEnum() if using VB) function to get a pointer to the IDBIO1 interface. With the IDBIO interface, you can
use LoadDataBase2() to load an existing model, or CreateNewDatabase2() to start a new model. Once the model is open, get a
pointer to the IModel interface. When opening an existing model, you may want to call IDBIO::GetDatabaseVersion() to make sure
the database version is what you are expecting. If the database version does not match the version of RAMDataAccess,
LoadDatabase() will fail.

Starting a New Model


There are many defaults that a user can set for a RAM Structural System model using the RAM Defaults Utility. These defaults are
stored in the Ramis.ini file located in the Windows or Winnt directory of a computer that has the RAM Structural System installed.
When a new model is created, these defaults are pulled from the Ramis.ini file and used to set global model defaults such as which
design code to use for steel beam design. The default is the value that will be used unless the property is changed by the user. If no
defaults are set in the Ramis.ini file, hard-coded defaults are used when a new model is created.
When creating a new RAM Structural System model, you will first need to create a floor type to which you can then add members.
You will also need to create a story that uses that floor type before the members will be a part of the 3D model.

Creating a floor type


If you are starting with an empty model, the first thing to do is create a new floor type. From the IModel interface, get the IFloorTypes
interface, which is the collection of floor types for the model. Since there are no floor types yet, the IFloorTypes interface represents
an empty collection. Use the Add() function to add a new floor type. Once you have the resulting IFloorType interface, you can
immediately generate a story associated with that floor type, or simply begin adding members. You can create one or more stories
from the same floor type before or after adding members. However, until you create at least one story from the floor type, the
members on that floor type are not part of the 3D model.

Defining grid systems


Grid systems can be defined once and assigned to one or more floor types. A floor type can have one or more grid systems
assigned to it.

From the IModel interface, get the IGridSystems interface, which is the collection of all grid systems defined for the model. Use the
Add() function to add a new grid system. From the resulting IGridSystem interface, use the GetGrids() function to get the collection
of grid lines associated with the grid system. Use the Add() function to add new grid lines to the grid system.
Once the grid system is defined, using the IFloorType interface of the floor type to which the grid system is to be assigned, call
GetGridSystemIDArray() to get the collection of grid system unique IDs that are assigned to that floor type (it may be empty). From
the resulting IDAArray interface, add the unique ID of the grid system to be assigned to this floor type. The new grid system
assignment is not completed until the IDAArray interface is passed back to the floor type using the SetGridSystemIDArray() function
call.

Creating a story
Using the unique ID for a floor type, you can add one or more stories associated with that floor type. From the IModel interface, get
the IStories interface, which is the collection of stories for the model. Use the Add() function to add a new story.

Adding columns
Columns are added to floor types, not stories. When a column is added to a floor type, one column will be added to the 3D model for
each story associated with that floor type. Using the IFloorType interface for the floor type to which you want to add columns, get the
ILayoutColumns interface, which represents the collection of columns on that floor type. Use the Add() function to add a new
column. You can use the resulting ILayoutColumn interface to set properties for the newly added column(s).

Adding beams, walls or horizontal braces


These member types are also added to floor types, not stories. When a beam, wall, or horizontal brace is added to a floor type, one
will be added to the 3D model for each story associated with that floor type. Using the IFloorType interface for the floor type to which
you want to add columns, get the corresponding ILayoutBeams, ILayoutWalls, or ILayoutHorizontalBraces interface, which
represents a collection of that member type on the floor type. Use the Add() function to add a new member of that type. You can
use the resulting ILayoutBeam, ILayoutWall or ILayoutHorizBrace interface to set properties for the newly added member(s).

Adding vertical braces


Since vertical braces span 2 or more stories, they are not added to floor types. (And consequently, they do not have a
corresponding ILayout interface.) Vertical braces are associated with the two stories into which its nodes connect. From the IModel
interface, get the IVerticalBraces interface, which represents the collection of all braces in the model. Use the Add() function to add
a new brace, passing in the IDs of the stories into which the brace frames. You can use the resulting IVerticalBrace interface to set
properties for the newly added brace. An alternative to getting the entire list of vertical braces for the model is to get the
IVerticalBraces interface from the IStory interface. This essentially filters the list of braces to those whose top end frames into the
story represented by the IStory interface.

Defining material properties for a member

Eventually, the RAM Structural System will allow material properties to be defined separately from any member and assigned to one
or more members. With that in mind, separate interfaces were designed for steel, concrete and Other materials. However,
currently, there must be a one-to-one correspondence between a material and a member. For this reason, you cannot currently add
material properties to their corresponding collection interfaces (ISteelMaterials, IConcreteMaterials, IOtherMaterials). Rather, there
is already one material property for each beam, column, wall, horizontal brace, vertical brace and foundation which can be obtained
from the IModel interface.
The IBeam, IColumn, IWall, IHorizBrace, IVerticalBrace, IIsolatedFnd and IContinuousFnd interfaces all have a unique material
property ID (lMaterialID). If the member is steel, call GetSteelMaterial() from the IModel interface using the lMaterialID value of the
corresponding member. Likewise, if the member is concrete, call GetConcreteMaterial(), or if it is Other, call GetOtherMaterial().
With the corresponding ISteelMaterial, IConcreteMaterial, or IOtherMaterial, you can set the material properties for that material
definition.

Assigning sizes to steel members


To assign a size to a steel member, set the strSectionLabel property through the ILayoutBeam or the IBeam interface. Sizes for
steel members must correspond to one of the design tables shipped with the RAM Structural System. In other words, the name set
for the strSectionLabel must exactly match the name of the size listed in the corresponding design table. Custom tables can be
created by the engineer, but these must follow the format of the tables provided by RAM. The RAM Structural System will look for
the sizes in the design tables specified in the IModel interface. Be sure to set the name of the Master Steel Table as well as the
specific tables for steel beams and steel columns. If needed, also be sure to set the names of the tables for castellated and cellular
beam sections.

Assigning section properties to concrete members


To assign section properties to a concrete member, you must first define a concrete section property. From the IModel interface, call
GetConcreteSectionProps() to get the IConcSectProps collection interface that represents the collection of all concrete section
properties defined in the model. Use the AddTee(), AddRect() or AddRound() functions to define a new concrete section property.
(Note there are three separate add commands since each shape has a different minimum set of data required for defining a valid
section property.) The resulting IConcSectProp interface can be used to set additional properties for the section. To assign the
section property to a concrete member, either set the strSectionLabel property for the member to the strLabel property of the
IConcSectProp, or set the lSectionID property of the member to the unique ID of the IConcSectProp.
Note that the assigned section property must match the material type of the member (which can be accessed via the eMaterial
property of a member). It should be noted that assigning a concrete section property to a steel beam does not change the material
of the beam and when the model is run in the RAM Structural System, an error message will be issued for the member.
Also note that concrete section properties are defined by the type of member they can be assigned to: beam, column or brace. See
the documentation for the IConcSectProp interface for more information.

Assigning section properties to Other members


Some members are neither defined with steel nor concrete material type. These are referred to as type Other in the RAM Structural
System and they can include members of any type of material which are not currently represented in the RAM Structural System. To
assign section properties to an Other member, you must first define an Other section property. From the IModel interface, call
GetOtherSectionProps() to get the IOtherSectProps collection interface that represents the collection of all Other section properties
defined in the model. Use the Add() function to define a new Other section property. The resulting IOtherSectProp interface can be
used to set additional properties for the section. To assign the section property to an Other member, either set the strSectionLabel
property for the member to the strLabel property of the IOtherSectProp, or set the lSectionID property of the member to the unique
ID of the IOtherSectProp.
Note that the assigned section property must match the material type of the member (which can be accessed via the eMaterial
property of a member). Assigning an Other section property to a steel beam does not change the material of the beam and when
the model is run in the RAM Structural System, an error message will be issued for the member.
Also note that Other section properties are defined by the type of member they can be assigned to: beam, column or brace. See
the documentation for the IOtherSectProp interface for more information.

Updating an existing model


Once you have a model that was either created from scratch through the RAM Object Model or created by the RAM Structural
System, you may need to update existing members in the model. Nearly every item in the Object Model has a unique ID associated
with it. Using that ID, you can get an interface to the corresponding member directly from the IModel interface.

Updating a column
From the IModel interface, call GetLayoutColumn() using the unique ID of the column. With the ILayoutColumn interface, you can
modify the column coordinates using SetLayoutCoordinates() or modify most of the column properties using the set functions
associated with each property.
Since the ILayoutColumn may represent one or more columns, not all properties can be read from the ILayoutColumn interface.
Those properties that can vary story-to-story must be read from the IColumn interface. If you know the unique ID of the column, you
can call GetColumn() from the IModel interface. Alternatively, from the ILayoutColumn interface, call GetAssociatedStoryColumns(),
which will return an IColumns collection interface representing the collection of columns associated with that layout column (one for
each story that uses the floor type). Loop through the IColumn interfaces to get the properties for the columns at each story.

Updating beams, walls, horizontal braces


See section above on updating a column.

Updating a vertical brace

From the IModel interface, call GetVerticalBrace() using the unique ID of the brace to be modified. With the IVerticalBrace interface,
you can modify the brace location and any of its settable properties.

Reading an Existing Model


To read in an existing RAM Structural System model, call GetStories() from the IModel interface. Use the GetCount() function in the
IStories interface to determine the number of stories in the model, then use the GetAt() function to get the IStory interface for each
story.
From the IStory interface, call GetColumns() to get an IColumns collection interface for the columns on that story. Use the
GetCount() function in the IColumns collection interface to determine the number of columns on that story, then use the GetAt()
function to get the IColumn interface for each column.
From the IColumn interface, call the GetEndCoordinates() function to get the 3D location of the column in the model. Use the
various properties in the IColumn interface to get the properties of the column.
The data for beams, walls, vertical and horizontal braces, and foundations can be obtained similarly as for columns.

Getting section properties for concrete members


To get the section properties of a concrete member, get the lSectionID property of the member. Then call GetConcreteSectionProp()
from the IModel interface with that ID to get the corresponding IConcSectProp. All of the section properties are available as
properties through the IConcSectProp interface.

Getting section properties for Other members


To get the section properties of an Other member, get the lSectionID property of the member. Then call GetOtherSectionProp()
from the IModel interface with that ID to get the corresponding IOtherSectProp. All of the section properties of the member are
available as properties through the IOtherSectProp interface.

Getting material properties for a member


The IBeam, IColumn, IWall, IHorizBrace, IVerticalBrace, IIsolatedFnd and IContinuousFnd interfaces all have a unique material
property ID (lMaterialID). If the member is steel, call GetSteelMaterial() from the IModel interface using the lMaterialID value of the
corresponding member. Likewise, if the member is concrete, call GetConcreteMaterial(), or if it is Other, call GetOtherMaterial().
With the corresponding ISteelMaterial, IConcreteMaterial, or IOtherMaterial, you can get the material properties for that material.

The Object Model Interfaces


The following interfaces make up what is referred to as the RAM Object Model. There interfaces were added during v9.0
development, but were only made public in v10.0. Documentation for the earlier DataAccess interfaces can be found at the end of
this section.

DAArray
Single row array for use with indexed get/set DA methods.

Add ([in] pvrtItem, [out] long plRetval)


Add a new item to the end of the DA array.
Parameters
pvrtItem
plRetval

Item being added to the DA array


Return variable. 0 if successful.

GetAt ([in] long lIndex, [out] pvrtItem)


Get at a DA array item by index number.
Parameters
lIndex
pvrtItem

Index into the array


Item value in the array at lIndex

GetSize ([out] long plSize)


Get the size of the array.
Parameters
plSize

Number of entries in the DA array

Remove ([in] pvrtItem)


Removes a item from the DA array by item value.
Parameters
pvrtItem

Item in the DA array

RemoveAt ([in] lIndex)


Removes an item from the DA array by index number.
Parameters
lIndex

Index into the array for the item being removed

SetAt ([in] long lIndex, [in] pvrtItem)


Add a new DAArray interface.
Parameters
lIndex
pvrtItem

Index into the DA array


Item value at index

SetSize ([in] lSize)


Sets the size of the DA Array.
Parameters
lSize

Number of entries in the DA array

IAnalyticalResult
This interface represents the analytical results for an individual member.

GetMaximumComboReactions ([in] COMBO_MATERIAL_TYPE eComboType, [out, retval] IMemberForces**


ppIMemberForces)
Gets the maximum (with sign so -4 is > +2) reaction forces at the start and end support of the member. For cantilever members it is the
inside of the support that is reported. Note that currently only shear reactions are available.
Parameters
eComboType
ppIMemberForces

Combination type (Only STEEL_GRAV is supported currently)


Pointer to two IMemberForces, index 0 is at start support of member (top of col, top of brace, left of beam) with
the maximum of all current selected combinations (with sign).

IBasePlate
This interface represents a single base plate.

Properties
Type
double
double
double
double
long

Property
dAngle
dLength
dThickness
dWidth
lColumnID

Get
X
X
X
X
X

Set

Description
The angle of the dLength axis with the X=0 Axis, counterclockwise.
Length of base plate (in direction of column major axis)
Thickness of base plate
Width of base plate
Unique ID of the column associated with this base plate

IBeam
This interface represents a single beam. This is a beam associated with a story, rather than a floor type. This interface can be used
to read data for a beam at a story. To change coordinates or edit cantilevers, use the ILayoutBeam interface.

GetAnalyticalResult ([out, retval] IAnalyticalResult** ppIAnalyticalResult)


Gets the analytical result interface.
Parameters
ppIAnalyticalResult

Pointer to an IAnalyticalResult interface that represents the analysis results for this member.

GetCoordinates ([in] EBeamCoordLoc eBeamCoordLoc, [out] SCoordinate *pStartPoint, [out] SCoordinate *pEndPoint, [out,
retval] long* plRetval)
Gets the indicated coordinates for the beam.
Parameters
eBeamCoordLoc
pStartPoint
pEndPoint
plRetval

Whether to get the end coordinates or the support coordinates


SCoordinate corresponding to the start of the beam
SCoordinate corresponding to the end of the beam
0 if successful
-1 if coordinates cannot be retrieved

GetEndRigidLink ([out] SCoordinate *pPoint, [out] long lMemberID)


Gets rigid link information at the end of a beam.

Parameters
pPoint
plMemberID

Coordinates of the end the rigid link at the supporting member for end of the beam. Coordinates match end
coordinates if no rigid link exists.
Unique ID of the member that supports the end of the rigid link. Zero if no rigid link exists.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetRBSPropertySet ([out, retval] IRBSPropertySet** ppIRBSPropertySet)


Get the reduced beam section properties for this beam if it has a reduced beam section property assigned to it. These values will only be
non-zero IF the user has provided these properties for this particular beams section (size) and have stipulated that RBS are to be used on
this beam (in RAM Frame).
Parameters
ppIRBSPropertySet

The reduced beam section properties (dogbone). See IRBSPropertySet enumerator.

GetStartRigidLink ([out] SCoordinate *pPoint, [out] long lMemberID)


Gets rigid link information at the start of a beam.
Parameters
pPoint

Coordinates of the end the rigid link at the supporting member for start of the beam. Coordinates match start
coordinates if no rigid link exists

plMemberID

Unique ID of the member that supports the end of the rigid link. Zero if no rigid link exists.

GetSteelDesignResult ([out, retval] ISteelBeamDesignResult** ppIDesignResult)


Gets the steel beam design results interface.
Parameters
ppIDesignResult

Pointer to an ISteelBeamDesignResult interface that represents the design results for this member

Properties
Note that some properties of beams cannot be changed through the IBeam interface. Any properties which cannot vary story-tostory when a floor type is used by multiple stories must be set through the ILayoutBeam interface.
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double

Property
bComposite
bMajAxisBendFixedEnd
bMajAxisBendFixStart
bMinAxisBendFixedEnd
bMinAxisBendFixedStart
bTorFixedEnd
bTorFixedStart
bUseRBS
dCamber
dEndCantilever
dFlangeOverhangLeft
dFlangeOverhangRight
dFlangeThickBot
dFlangeThickLeft
dFlangeThickRight
dFlangeThickTop
dFlangeWidthBot
dFlangeWidthTop
dStartCantilever
dStudDiameter
dStudLength
dStudSegment1Length
dStudSegment2Length
dStudSegment3Length
dStudSegment4Length
dStudSegment5Length
dStudTensileStrength
dUnbracedLengthAxialLX

Get
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X

Description
If TRUE, beam is composite. If FALSE, beam is non-composite.
Major axis bending release at end of beam (j-end).
Major axis bending release at start of beam (i-end).
Minor axis bending release at end of beam (j-end).
Minor axis bending release at start of beam (i-end).
Torsion release at end of beam (j-end).
Torsion release at start of beam (i-end).
True if the user has indicated to use the reduced beam on this beam
Camber of the beam
Length of cantilever at end of beam (j-end)
Left flange length beyond beams web thickness
Right flange length beyond beams web thickness
Thickness of bottom flange of beam
Thickness of left flange beyond beams web thickness
Thickness of right flange beyond beams web thickness
Thickness of top flange of beam
Width of bottom flange
Width of top flange
Length of cantilever at start of beam (i-end)
Stud diameter
Stud length
Length of first stud segment
Length of second stud segment
Length of third stud segment
Length of fourth stud segment
Length of fifth stud segment
Tensile strength of stud
Unbraced axial length in the major axis

Type
double
double
double
double
double
double
EFRAMETYPE
EBeamConnectionType
EMATERIALTYPES

Property
dUnbracedLengthAxialLY
dUnbracedLengthFlexLY
dWebDepth
dWebDepthBot
dWebWidth
dWebWidthBot
eFramingType
eLeftConnectionType
eMaterial

Get
X
X
X
X
X
X
X
X
X

Set
X
X

EJoistType
ESTEEL_SEC
EBeamConnectionType
ESeismicProvFrameType
ECONC_OTHER_SEC
long

eMemberJoistType
eOptimizeShape
eRightConnectionType
eSeismicFrameType
eShape
eSharingLoadType

X
X
X
X
X
X

long
long

lBeamLineNumber
lFlangeBracing

X
X

X
X

long
long

lFrameNumber
lLabel

X
X

Long
long

lLeftConnectionID
lMaterialID

X
X

long
long

lRightConnectionID
lSectionID

X
X

X
X

long

lUID

X
X

Description
Unbraced axial length in the minor axis
Unbraced length for lateral torsional buckling
Top or single web depth
Bottom we depth for beams made from different top and bottom sections
Top or single web width
Bottom web width for beams made from different top and bottom sections
Whether member is lateral or gravity
Connection type at the left support of beam
Material type of beam. Valid options for beams are ESteelMat, ESteelJoistMat,
ESmartbeamBeamMat, EConcreteMat, or EOtherMat.
Type of joist (if beam material type is ESteelJoistMat)
Shape for which beam is to be optimized (if section is not user-defined).
Type of connection on the right end
The Seismic Frame Type of the member (Special Moment Frame, etc)
Only valid for Concrete or Other material. Returns shape of cross section
Returns sharing load type:
-1:
None
Entirely two-way
0:
Entirely one-way
1:
2:
One-way and two-way
Beam line that beam is part of (applicable only if this is a concrete beam).
Flange bracing flags. Sum the appropriate flags to determine the appropriate value for the
settings.
0 All global
1 Override global
2 Top flange braced
4 Bot flange braced
Frame number for lateral members. It must be positive number.
Numeric label of beam used for on-screen display in RAM Structural System. It is unique
per floor type.
Left end connection UID
Unique ID of material properties for this beam. Must correspond to type of material. See
section Getting material properties for a member for more information.
Right end connection ID
Unique ID of concrete or Other section assigned to this beam. See Assigning section
properties to concrete members and Assigning section properties to Other members for
more information.
Unique ID of beam.

Type
long

Property
lUnbracedLength

Get
X

Set
X

ESeismicProvFrameType
BSTR

SeismicFrameType
strSectionLabel

X
X

Description
Unbraced length flags. Sum the appropriate flags to determine the appropriate value for
the settings.
0 All global
1 Override global UnbracedLengthAxialLX
2 Override global UnbracedLengthAxialLY
4 User defined UnbracedLengthAxialLX
8 User defined UnbracedLengthAxialLY
32 Override global UnbracedLengthFlexLY
128 User defined UnbracedLengthFlexLY
The Seismic Frame Type of the member (Special Moment Frame, etc)
Label of the size or section property for this beam. Limited to 15 characters. See
Assigning sizes to steel members, Assigning section properties to concrete members, and
Assigning section properties to Other members for more information.

IBeams
This interface represents a collection of beams associated with a story. This collection can be used to read data for beams at a
story. To add or delete beams, use the ILayoutBeams interface associated with a floor type.

Filter ([in] EBeamFilter eBeamFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of beams based on given criteria.
Parameters
eFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IBeam** ppIBeam)


Gets an interface for a specific beam by unique ID.
Parameters
lUID
ppIBeam

The unique ID of the requested layout beam


Pointer to an IBeam interface that represents the requested beam, or NULL if no beam is found in the collection
with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IBeam** ppIBeam)

Gets an interface for a specific beam by index.


Parameters
lIndex
ppIBeam

The index into the collection of the requested beam


Pointer to an IBeam interface that represents the requested beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of beams in the collection. When the collection is filtered, this function returns the number in the filtered collection, not the
total number of beams on the story. When the collection is unfiltered, this function returns the total number of beams on the story.
Parameters
plCount

Number of beams in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IColumn
This interface represents a single column. This is a column associated with a story, rather than a floor type. This interface can be
used to read data for a column at a story. To change coordinates, use the ILayoutColumn interface.

GetEndCoordinates ([out] SCoordinate* pPoint1, [out] SCoordinate* pPoint2, [out, retval] long* plRetval)
Gets the end coordinates for the column.
Parameters
pPoint1
pPoint2

SCoordinate of the column end. This is the top of standard columns and
bottom of hanging columns.
SCoordinate of the column end. This is the bottom of standard columns and
top of hanging columns.

plRetval

0 if successful
-1 if coordinates cannot be retrieved

GetFinalSpliceSetting ([out, retval] long * eFinalSpliceSetting)


Determine if the column is spliced or not.
Parameters
eFinalSpliceSetting

0 = No splice
1 = splice
2 = temporary splice added by RAMSS because of change of property between stories. The temporary splice
overrides the user defined value.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetRigidLink ([out] SCoordinate *pPoint, [out] long *plMemberID)


Gets the unique ID and coordinates of the support at the end of a rigid link.
Parameters
pPoint
plMemberID

Coordinates of end of the rigid link at the support. This is always at the bottom of standard columns and top of
hanging columns. Matches column end coordinates if there is no rigid link.
Unique ID of the member that supports the rigid link.

SetRigidLink ([in] double dX, [in] double dY)

Sets rigid link end coordinates.


Parameters
dX
dY

X coordinate for the end of the rigid. A support must exist at this location.
Y coordinate for the end of the rigid. A support must exist at this location.

Properties
Note that some properties of columns cannot be changed through the IColumn interface. Any properties which cannot vary story-tostory when a floor type is used by multiple stories must be set through the ILayoutColumn interface.
Type
BOOL

Property
bAbsMajorAxisEccentricity

Get
X

Set

BOOL

bAbsMinorAxisEccentricity

BOOL
BOOL

bAtFoundation
bBracedMajorAxisByMember

X
X

BOOL

bBracedMinorAxisByMember

BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

bDoubleAngleLLBackToBack
bDoubleAngleSnugTightBolt
bHanger
bKinked
bMajAxisBendFixedBot
bMajAxisBendFixedTop
bMinAxisBendFixedBot
bMinAxisBendFixedTop
bSglAngleMirrored
bSpliceLevel

X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X

BOOL
BOOL
double
double
double
double
double
double
double
double
double

bTorFixedBot
bTorFixedTop
dDblAngleBackSpacing
dLength
dLoadSharingFactor
dMajorAxisEccentricity
dMinorAxisEccentricity
dOrientation
dStressRatio
dUnbracedLengthAxialLX
dUnbracedLengthAxialLY

X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X

X
X
X

Description
TRUE if eccentricity in major axis is absolute distance. FALSE if eccentricity is relative
to columns centerline.
TRUE if eccentricity in minor axis is absolute distance. FALSE if eccentricity is relative
to columns centerline.
Indicates if column is at foundation level
TRUE if column is braced in column local X direction by the slab or a beam (within user
specified angle)
TRUE if column is braced in column local Y direction by the slab or a beam (within user
specified angle)
Double angle long leg back to back
Double angle using snug tight bolted intermediate connectors
Flag indicating whether the column is a hanging column or not.
Part of a nonlinear column stack
Major axis bending release at bottom of column (j-end).
Major axis bending release at top of column (i-end).
Minor axis bending release at bottom of column (j-end).
Minor axis bending release at top of column (i-end).
Single angle mirrored orientation
Indicates whether this column is spliced at this story. This is set in the story data in the
modeler.
Torsion release at bottom of column (j-end).
Torsion release at top of column (i-end).
Double angle back to back spacing
Column length
Factor for load sharing
Eccentricity value for major axis
Eccentricity value for minor axis
Orientation of column with respect to the global axis system.
Stress ratio for column (used by RAM Frame)
Axial unbraced length for buckling about the X axis
Axial unbraced length for buckling about the Y axis

Type
double
double
double
double

Property
dUnbracedLengthFlexLX
dUnbracedLengthFlexLY
dUnityForSizeSelected
dZBotOffset

Get
X
X
X
X

Set
X
X
X
X

EAnalyzeFlag
EBeamSpan
EBeamSpan
EBeamSpan
EBeamSpan
EFRAMETYPE
EMATERIALTYPES

eAnalyzeFlag
eBeamSpanAtSide1
eBeamSpanAtSide2
eBeamSpanAtSide3
eBeamSpanAtSide4
eFramingType
eMaterial

X
X
X
X
X
X
X

ESTEEL_SEC
ESeismicProvFrameType

eOptimizeShape
eSeismicFrameType

X
X

long

eSharingLoadType

EUserOverride

eUserSpliceLevel

single
long
long
long
long

fMaxLLRed
lColumnAboveUID
lDesignStatus
lDxfElevationNumber
lFlangeBracing

X
X
X
X
X

long

lFrameNumber

X
X
X

Description
Flexural unbraced length for lateral torsional buckling
Flexural Unbraced length
Column interaction equation value
Bottom z offset from story below elevation (or foundation) for start of column. This is
made available because the offset at the bottom of the column (at the transition
between floortypes or at the foundation) may differ from that at the other stories that
use the floortype. This is true if the member a column sits on is lowered or raised.
Whether column will be optimized or analyzed during design.
Beam type framing into this side of column
Beam type framing into this side of column
Beam type framing into this side of column
Beam type framing into this side of column
Whether member is lateral or gravity
Material type of column. Valid options for columns are ESteelMat, EConcreteMat, or
EOtherMat.
Shape for which steel column will be optimized
The Seismic Frame Type of the member (Special Moment Frame, etc) As defined in
RAM Frame
Returns sharing load type:
-1:
None
Entirely two-way
0:
Entirely one-way
1:
2:
One-way and two-way
Indicates user assigned splice setting for a given story. Default value is eUserNA
which, means the splice from the story data should be used. A value of eUserYes
means that the user has set a splice at this level. A value of eUserNo means that the
user has removed the splice at this level.
The users assignment overrides the story data setting except in cases where the
physical geometry necessitates a splice, such as changing material between levels.
Maximum live load reduction
Unique ID of column above
Design status
DXF Elevation number
Flange bracing flags. Sum the appropriate flags to determine the appropriate value for
the settings.
0 All global
1 Override global UnbracedLengthAxialLX
2 Override global UnbracedLengthAxialLY
4 User defined UnbracedLengthAxialLX
8 User defined UnbracedLengthAxialLY
Frame number for lateral members. The frame number for lateral columns defaults to
zero but can be set to a positive number. The frame number for gravity columns is
always -1.

Type
long

Property
lLabel

Get
X

Set

long
long

lLLRedCalc
lMaterialID

X
X

long
long

lMemberBelowUID
lSectionID

X
X

long
long
long

lStoryID
lUID
lUnbracedLength

X
X
X

long

lUserBracedMajorAxis

long

lUserBracedMinorAxis

long
ESeismicProvFrameType
BSTR

lWallGroupNumber
SeismicFrameType
strSectionLabel

X
X

X
X
X

BSTR
BSTR
BSTR

strTrialSizeUsed1
strTrialSizeUsed2
strTrialSizeUsed3

X
X
X

X
X
X

Description
Numeric label of column used for on-screen display in RAM Structural System. Each
member type is uniquely numbered per floor type.
Calculated Live Load reduction factor
Unique ID of material properties for this column. Must correspond to type of material.
See section Getting material properties for a member for more information.
Unique ID of column below
Unique ID of concrete or Other section assigned to this column. See Assigning
section properties to concrete members and Assigning section properties to Other
members for more information.
Get the ID of the story this column belongs to. Returns -1 in the event of an error.
Unique ID of column
Unbraced length flags. Sum the appropriate flags to determine the appropriate value
for the settings.
0 All global
1 Override global UnbracedLengthAxialLX
2 Override global UnbracedLengthAxialLY
4 User defined UnbracedLengthAxialLX
8 User defined UnbracedLengthAxialLY
32 Override global UnbracedLengthFlexLY
128 User defined UnbracedLengthFlexLY
User bracing assignment for column local X direction
-1 = use global criteria, 0 = not braced, 1 = braced
User bracing assignment for column local Y direction
-1 = use global criteria, 0 = not braced, 1 = braced
Wall group number
The Seismic Frame Type of the member (Special Moment Frame, etc)
Label of the size or section property for this column. Limited to 15 characters. See
Assigning sizes to steel members, Assigning section properties to concrete members,
and Assigning section properties to Other members for more information.
User assigned trial size 1
User assigned trial size 2
User assigned trial size 3

IColumns
This interface represents a collection of columns associated with a story. This collection can be used to read data for columns at a
story. To add or delete columns, use the ILayoutColumns interface associated with a floor type.

Filter ([in] EColumnFilter eColumnFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of columns based on given criteria.

Parameters
eColumnFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IColumn** ppIColumn)


Gets an interface for a specific column by unique ID.
Parameters
lUID
ppIColumn

The unique ID of the requested column


Pointer to an IColumn interface that represents the requested column, or NULL if no column is found in the
collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IColumn** ppIColumn)


Gets an interface for a specific column by index.
Parameters
lIndex
ppIColumn

The index into the collection of the requested column


Pointer to an IColumn interface that represents the requested column, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of columns in the collection. When the collection is filtered, this function returns the number in the filtered collection, not
the total number of columns on the story. When the collection is unfiltered, this function returns the total number of columns on the story.
Parameters
plCount

Number of columns in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

IColumnStack
This interface represents a single column stack in the model.

GetBasePlate ( [out, retval] IBasePlate** ppIBasePlate)


Gets an interface for the baseplate for this column stack. Will return NULL if baseplate is not designed.

GetColumns ( [out, retval] IColumns** ppIColumns)


Gets a collection interface for all the columns in the column stack.

Properties
Type
long
BSTR

Property
lBasePlateColumnID
strGridLabel

Get
X
X

Set

Description
Unique ID of column at which the base plate occurs
Get the grid intersection label at this column stack

ICompDeckProp
This interface represents a single composite deck property.

Properties
Type
BOOL
double
double
double
double
double
double

Property
bShored
dEffectiveThickness
dElasticModulus
dFpc
dPoissonsRatio
dSelfWtDeck
dStudDiameter

Get
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X

Description
TRUE if the deck is shored.
The effective thickness of the deck.
The elastic modulus of the deck.
The concrete compression capacity (psi).
The Poissons Ratio of the deck.
The self-weight of the steel deck (psf).
The stud diameter.

double
double
double
double
long

dStudFu
dStudLength
dThickAboveFlutes
dUnitWeight
lUID

X
X
X
X
X

X
X
X
X

The ultimate strength of the stud (ksi).


The length of the studs.
Concrete thickness above top of flutes.
The unit weight of the concrete (ksi).
Unique ID of composite deck property.

Type
BSTR

Property
strDeckType

Get
X

Set
X

BSTR

strLabel

Description
Type of deck. This name must match the name in the deck table and
is limited to 19 characters.
Label for the composite deck property

ICompDeckProps
This interface represents a collection of composite deck properties defined in the model. Composite deck properties are defined
using this interface and then can be assigned to decks. In v9.0 of DataAccess, decks cannot yet be added. However, the composite
deck properties defined here can be assigned to decks that are laid out in the RAM Modeler.

Add ([in] BSTR bstDeckType, [in] double dThickAboveFlutes, [in] double dStudLength, [out, retval] ICompDeckProp **
ppICompDeckProp)
Adds a new composite deck property.
Parameters
bstDeckType
dThickAboveFlutes
dStudLength
ppICompDeckProp

Name of deck from deck table


Thickness of concrete above top of flutes
Length of the stud
Pointer to an ICompDeckProp interface that represents the newly added composite deck property.

Add2 ([in] BSTR bstLabel, [in] BSTR bstDeckType, [in] double dThickAboveFlutes, [in] double dStudLength, [out, retval]
ICompDeckProp ** ppICompDeckProp)
Adds a new composite deck property. 0.
Parameters
bstLabel
bstDeckType
dThickAboveFlutes
dStudLength
ppICompDeckProp

Name of the composite deck property


Name of deck from deck table
Thickness of concrete above top of flutes
Length of the stud
Pointer to an ICompDeckProp interface that represents the newly added composite deck property.

Delete ([in] long lUID, [out, retval] long *plRetVal)


Deletes the composite deck property with the given unique ID. A deck property that is currently assigned to a deck cannot be deleted.
Parameters

lUID
plRetval

Unique ID of composite deck property to delete


0 if composite deck property is deleted successfully
-1 if unique ID is not found in filtered list of composite deck properties or if composite deck property is currently
assigned to a deck polygon

Filter ([in] ECompDeckPropsFilter eCompDeckPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of composite deck properties based on given criteria.
Parameters
eCompDeckPropsFilter Indicates the type of filter to use on the collection
varFilterCriteria
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
plRetval
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ICompDeckProp ** ppICompDeckProp)


Gets an interface for a specific composite deck property by unique ID.
Parameters
lUID
ppICompDeckProp

The unique ID of the requested composite deck property


Pointer to an ICompDeckProp interface that represents the requested composite deck property, or NULL if no
composite deck property is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ICompDeckProp ** ppICompDeckProp)


Gets an interface for a specific composite deck property by index.
Parameters
lIndex
ppICompDeckProp

The index into the collection of the requested composite deck property
Pointer to an ICompDeckProp interface that represents the requested composite deck property, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of composite deck properties in the collection. When the collection is filtered, this function returns the number in the
filtered collection, not the total number of composite deck properties in the model. When the collection is unfiltered, this function returns the
total number of composite deck properties in the model.
Parameters

plCount

Number of composite deck properties in the collection

IConcreteCriteria
This interface provides access to all concrete design criteria, including the names of any tables used during the design.

Properties
Type
EDA_CONC_CODE
EDA_CONC_CODE
BSTR

Property
eConcreteDesignCode
eFoundationDesignCode
strPanJoistTable

Get
X
X
X

Set
X
X
X

BSTR

strReinforcementTable

Description
Design code for concrete beams and columns
Design code for foundations
Table of pans to use for laying out pan joists. File must have a .pnj extension. Maximum 19
characters allowed.
Rebar table to use when designing concrete beams and columns. File must have a .ren
extension. Maximum 32 characters allowed.

IConcreteMaterial
This interface represents a single concrete material property set. A members concrete material properties can be read and set
through this interface.

Properties
Type
double

Property
dAggregateSize

Get
X

Set
X

double

dElasticModulus

double

dFct

double
double
double
double

dFpc
dFyBoundary
dFyDistributed
dFyLongitudinal

X
X
X
X

X
X
X
X

double

dFyTiesLinks

double

dFyTransverse

double
double

dPoissonsRatio
dSelfWeight

X
X

X
X

Description
Aggregate size of concrete (Only applicable for British code and only
for beams and columns)
Elastic modulus. If -1, the program will calculate this value. (Only
applicable for beams and columns)
Concrete cracking stress capacity. Only used for ACI code design.
(Only applicable for beams and columns)
Concrete compressive strength (fc).
Yield strength of boundary steel reinforcing for concrete shear walls.
Yield strength of distributed steel reinforcing for concrete shear walls.
Yield strength of longitudinal steel reinforcing for concrete columns,
beams, horizontal braces and foundations.
Yield strength of steel reinforcing for ties and links for concrete shear
walls.
Yield strength of transverse steel reinforcing for concrete columns,
beams, horizontal braces and foundations.
Poissons Ratio.
Self-weight of member.

Type
double
EAggregateType

Property
dUnitWeight
eConcreteAggType

Get
X
X

Set
X
X

Description
Unit weight of member.
Aggregate type of concrete. (Only applicable for beams and columns)

IConcSectProp
This interface represents a single concrete section. Certain properties cannot be changed once a section is defined, such as the
shape or the type of member (beam, column, or brace) to which it can be assigned.
Note that pan joist sections, which can only be created in the RAM Structural System Modeler, will be treated as tee sections through
DataAccess, but the properties will not be editable.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

Properties
Type
double

Property
dCrackedAxialFactor

Get
X

Set
X

double
double

dCrackedFactor
dCrackedTorsionFactor

X
X

X
X

double
double

dDepth
dDiameter

X
X

X
X

Description
Cracked section factor for axial stiffness. It is the multiplier for the
axial stiffness.
Cracked factor of concrete section.
Cracked section factor for torsional stiffness. It is the multiplier for the
torsional stiffness.
Depth of section. Applies to rectangular and tee sections.
Diameter of section. Applies to round sections.

Type
double

Property
dFlangeOverhangLeft

Get
X

Set
X

double

dFlangeOverhangRight

double

dFlangeThickLeft

double

dFlangeThickRight

double
EUniqueMemberTypeID
ECONC_OTHER_SEC
long
BSTR

dWebWidth
eMemType
eShape
lUID
strLabel

X
X
X
X
X

Description
Left flange overhang. Applies to tee sections. If -1, program will
calculate this value.
Right flange overhang. Applies to tee sections. If -1, program will
calculate this value.
Left flange thickness. Applies to tee sections. If -1, program will
calculate this value based on slab thickness. Note that if the left or
right flange thickness is set, it will be applied to both sides.
Right flange thickness. Applies to tee sections. If -1, program will
calculate this value based on slab thickness. Note that if the left or
right flange thickness is set, it will be applied to both sides.
Web width of section. Applies to rectangular and tee sections.
Type of member to which this section can be assigned.
Shape of the section.
Unique ID of concrete section.
A label for this concrete section. Limited to 15 characters.

IConcSectProps
This interface represents a collection of all concrete section properties defined in the model. Concrete section properties are defined
using this interface and then can be assigned to members of material type concrete. Concrete sections are defined as sections for
beams, columns or vertical braces. A section defined as a concrete beam section can only be assigned to beams and horizontal
braces, and likewise for column and brace concrete sections.

AddRect ([in]BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dTotalBeamDepth, [in] double dWebWidth, [out,
retval] IConcSectProp** ppIConcSectProp)
Adds a new rectangular concrete section. Rectangular sections can be defined for beams, columns or vertical braces.
Parameters
bstName
eMemType
dTotalBeamDepth
dWebWidth
ppIConcSectProp

Label of concrete section. Limited to 15 characters.


Must specify if this is a rectangular section for a beam, column or brace
Total depth of section
Web thickness of section
Pointer to an IConcSectProp interface that represents the newly added concrete section.

AddRound ([in]BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dDiameter, [out, retval] IConcSectProp**
ppIConcSectProp)
Adds a new round concrete section. Round sections can be defined for columns or vertical braces.

Parameters
bstName
eMemType
dDiameter
ppIConcSectProp

Label of concrete section. Limited to 15 characters.


Must specify if this is a rectangular section for a beam, column or brace
Diameter of section
Pointer to an IConcSectProp interface that represents the newly added concrete section.

AddTee ([in]BSTR bstName, [in] double dFlangeLeftOverhang, [in] double dFlangeRtOverhang, [in] double dFlangeThick, [in]
double dTotalBeamDepth, [in] double dWebWidth, [out, retval] IConcSectProp** ppIConcSectProp)
Adds a new tee section. Assumed to be for a beam since concrete tee sections cannot be assigned to Other member types.
Parameters
bstName
dFlangeLeftOverhang
dFlangeRtOverhang
dFlangeThick
dTotalBeamDepth
dWebWidth
ppIConcSectProp

Label of concrete tee section. Limited to 15 characters.


Left flange overhang (-1 if program should calculate)
Right flange overhang (-1 if program should calculate)
Flange thickness (-1 if program should calculate based on slab thickness)
Total depth of beam section
Web thickness of section
Pointer to an IConcSectProp interface that represents the newly added concrete section.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the concrete section with the given unique ID. A section that is currently assigned to a member cannot be deleted.
Parameters
lUID
plRetval

Unique ID of concrete section to delete


0 if concrete section is deleted successfully
-1 if unique ID is not found in filtered list of concrete sections or if section is currently assigned to a member

Filter ([in] EConcSectPropsFilter eConcSectPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of concrete sections based on given criteria.
Parameters
eConcSectPropsFilter Indicates the type of filter to use on the collection
varFilterCriteria
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
plRetval
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IConcSectProp** ppIConcSectProp)


Gets an interface for a specific concrete section property by unique ID.
Parameters
lUID
ppIConcSectProp

The unique ID of the requested concrete section


Pointer to an IConcSectProp interface that represents the requested concrete section, or NULL if no concrete
section is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IConcSectProp** ppIConcSectProp)


Gets an interface for a specific concrete section property by index.
Parameters
lIndex
ppIConcSectProp

The index into the collection of the requested concrete section


Pointer to an IConcSectProp interface that represents the requested concrete section, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of concrete sections in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of concrete sections in the model. When the collection is unfiltered, this function returns the total number of
concrete sections in the model.
Parameters
plCount

Number of concrete sections in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IConcShearWallCriteria
This interface represents an object that remembers settings that have been used in RAM Concrete Shear Wall so that those settings
can be used as default values.

Properties
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
double
double

Property
bAutoGenSCOpeningCutAtBtm
bAutoGenSCOpeningCutAtSides
bAutoGenSCOpeningCutAtTop
bAutoGenSCOpeningCutsOutside
bAutoGenSCPanelCutAtBtm
bAutoGenSCPanelCutAtEnds
bAutoGenSCPanelCutAtTop
dAutoGenSCEdgeOffset
dAutoGenSCHorizMaxSpacing

Get
X
X
X
X
X
X
X
X
X

double

dAutoGenSCVertMaxSpacing

BSTR

strConcreteCode

Set

Description
Whether or not auto-generated section cuts include horizontal cuts above the bottoms of openings.
Whether or not auto-generated section cuts include vertical cuts inside openings.
Whether or not auto-generated section cuts include horizontal cuts below the tops of openings.
Whether or not auto-generated section cuts include cuts around the outside of openings.
Whether or not auto-generated section cuts include horizontal cuts at the bottoms of walls.
Whether or not auto-generated section cuts include vertical cuts at the edges of walls.
Whether or not auto-generated section cuts include horizontal cuts at the tops of walls.
The distance from the edges of walls and openings to offset auto-generated section cuts.
The maximum spacing between horizontal section cuts for auto-generated section cuts, or 0.0 if
there is no maximum.
The maximum spacing between vertical section cuts for auto-generated section cuts, or 0.0 if there
is no maximum.
The unique ID of this wall bar pattern template.

IConcSlabProp
This interface represents a single concrete slab property.

Properties
Type
BOOL

Property
bUseElasticModulus

Get
X

Set
X

double
double
double
double
double
double
double
double
long
BSTR

dBendingCrackedFactor
dDiaphragmCrackedFactor
dElasticModulus
dFpc
dPoissonsRatio
dSelfWeight
dThickness
dUnitWeight
lUID
strLabel

X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X

Description
If FALSE, uses the calculated elastic modulus for the slab. If TRUE,
uses the elastic modulus from the dElasticModulus property.
Bending cracked factor of the concrete slab.
Diaphragm cracked factor of the concrete slab.
Elastic modulus of the concrete slab if bUseElasticModulus is TRUE.
FPC of the concrete slab.
Poissons Ratio of the concrete slab.
Self-weight of concrete slab.
Thickness of concrete slab.
Unit weight of the concrete slab.
Unique ID of concrete slab property.
Label of concrete slab property. Limited to 19 characters.

IConcSlabProps
This interface represents a collection of concrete slab properties defined in the model. Concrete slab properties are defined using
this interface and then can be assigned to decks or mat foundations. In v9.0 of DataAccess, decks and mat foundations cannot yet
be added. However, the concrete slab properties defined here can be assigned to decks and mat foundations that are laid out in the
RAM Modeler.

Add ([in] BSTR bstSlabName, [in] double dThick, [in] double dSelfWeight, [out, retval] IConcSlabProp** ppIConcSlabProp)
Adds a new concrete slab property.
Parameters
bstSlabName
dThick
dSelfWeight
ppIConcSlabProp

Label for concrete slab property. Limited to 19 characters.


Thickness of concrete slab
Self-weight of concrete slab
Pointer to an IConcSlabProp interface that represents the newly added concrete slab property.

Delete ([in] long lUID, [out, retval] long *plRetVal)


Deletes the concrete slab property with the given unique ID. A concrete slab that is currently assigned to a deck or mat foundation cannot
be deleted.
Parameters
lUID
plRetval

Unique ID of concrete slab property to delete


0 if concrete slab property is deleted successfully
-1 if unique ID is not found in filtered list of concrete slab properties or if concrete slab property is currently assigned
to a deck or mat footing polygon

Get ([in] long lUID, [out, retval] IConcSlabProp** ppIConcSlabProp)


Gets an interface for a specific concrete slab property by unique ID.
Parameters
lUID
ppIConcSlabProp

The unique ID of the requested concrete slab property


Pointer to an IConcSlabProp interface that represents the requested concrete slab property, or NULL if no concrete
slab property is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IConcSlabProp** ppIConcSlabProp)


Gets an interface for a specific concrete slab property by index.

Parameters
lIndex
ppIConcSlabProp

The index into the collection of the requested concrete slab property
Pointer to an IConcSlabProp interface that represents the requested concrete slab property, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of concrete slab properties in the collection.
Parameters
plCount

Number of concrete slab properties in the collection

IContinuousFnd
This interface represents a single continuous foundation. This is a continuous foundation associated with a story, rather than a floor
type. This interface can be used to read data for a continuous foundation at a story. To change coordinates, use the
ILayoutContinuousFnd interface.

GetCoordinates ([out] SCoordinate* pStartCenterLinePoint, [out] SCoordinate* pEndCenterLinePoint, [out, retval] long* plRetval)
Gets the coordinates of the continuous foundation.
Parameters
pStartCenterLinePoint SCoordinate corresponding to the start center point of the foundation
pEndCenterLinePoint SCoordinate corresponding to the end center point of the foundation
plRetval
0 if successful
-1 if coordinates cannot be retrieved

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetReinforcement ([out, retval] SFND_CONT_REINF* pVal)


Gets reinforcement information for continuous foundation.
Parameters
pVal

Structure for continuous foundation reinforcement. See SFND_CONT_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)


Gets additional continuous foundation reinforcement information.
Parameters
pVal

Structure for additional continuous reinforcement. See SFND_REINF_OTHER_DATA.

Properties
Type
BOOL

Property
bDimensionsFromDesign

Get
X

Set

Description
Indicates whether or not the dimensions returned for the footing are from the design or not

double

dBottom

double
double
double
double
double
long
long

dLeft
dOrientation
dRight
dThickness
dTop
lLabel
lMaterialID

X
X
X
X
X
X
X

Dimension from center of foundation to bottom edge defined when footing major axis is parallel to global Xaxis
Dimension from center of foundation to left edge defined when footing major axis is parallel to global X-axis
Orientation of foundation
Dimension from center of foundation to right edge defined when footing major axis is parallel to global X-axis
Thickness of foundation
Dimension from center of foundation to top edge defined when footing major axis is parallel to global X-axis
Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.
Unique ID of material properties for this continuous foundation. Foundation is always concrete. See section
Getting material properties for a member for more information.

long

lUID

X
X
X

Unique ID of the continuous footing.

IContinuousFnds
This interface represents a collection of continuous foundations associated with a story. While continuous foundations are added to
the ILayoutContinuousFnds interface (which is associated with a floor type), they only are considered in the 3D model at the lowest
story used by that floor type. For example, if continuous foundations are defined on a floor type that is associated with 2 stories,
calling GetContinuousFnds from the IStory associated with the top story for that floor type will yield an empty IContinuousFnds
collection, but from the IStory associated with the bottom story, the IContinuousFnds collection will represent all the continuous
foundations at that story.

Get ([in] long lUID, [out, retval] IContinuousFnd** ppIContinuousFnd)


Gets an interface for a specific continuous foundation by unique ID.
Parameters
lUID
ppIContinuousFnd

The unique ID of the requested continuous foundation


Pointer to an IContinuousFnd interface that represents the requested continuous foundation, or NULL if no
continuous foundation is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IContinuousFnd** ppIContinuousFnd)


Gets an interface for a specific continuous foundation by index.
Parameters
lIndex
ppIContinuousFnd

The index into the collection of the requested continuous foundation


Pointer to an IContinuousFnd interface that represents the requested continuous foundation, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of continuous foundations in the collection.
Parameters
plCount

Number of continuous foundations in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
plCount

Leave blank for public properties or enter a valid user ID to get properties.

pplPropertyDefs

Pointer to an IPropertyDefinitions interface that represents a collection of


properties that can be associated with this member type.

ICouplingBeam
This interface represents a coupling beam.

GetPoints ([out,retval] IPoints **ppIPoints)


Gets an interface for the collection of points in the receiver.
Parameters
ppIPoints

Pointer to an IPoints interface for the points in the receiver.

GetWallBarSets ([out,retval] IWallBarSets **ppIWallBarSets)


Gets the collection of wall bar sets in the receiver.
Parameters
ppIWallBarSets

Pointer to an IWallBarSets interface that contains the wall bar sets in the receiver.

GetWallSectionDsnCuts ([out,retval] IWallSectionDsnCuts** ppIWallSectionDsnCuts)


Gets the collection of all design cuts in the coupling beam.
Parameters

ppIWallSectionDsnCuts Pointer to an IWallSectionDsnCuts collection interface that represents all design cuts in the coupling beam.

SetPoints ([in] IPoints *pIPoints , [out, retval] long* plRetval)


Sets an interface for the collection of points in the receiver.
Parameters
pIPoints
plRetVal

Properties

An IPoints interface to assign to the receiver.


0 if points were assigned successfully.
-1 if assignment failed.

Type
BOOL
BOOL
BOOL
BOOL
double
double
double
double
double
double
double
double
double
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long

Property
bDesigned
bFrozen
bUseBarPattern
bUseUniformLayout
dBotLongRowSpacing
dDiagElementHeight
dDiagElementWidth
dDiagTieSpacing
dLongBarSpacing
dSideBarSpacing
dStirrupSpacing
dTopLongRowSpacing
dTransBarSpacingUniform
lBotLongBarSize
lDiagReinfSize
lDiagTieSize
lLongBarSize
lNumBotLongBarRows
lNumBotLongBars
lNumDiagBarsSide
lNumDiagBarsTopAndBot
lNumLayers
lNumTopLongBarRows
lNumTopLongBars
lSideBarSize
lStirrupSize
lStirrupSizeUniform
lTopLongBarSize
lUID

Get
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Description
Indicates whether or not this coupling beam has been designed.
Indicates whether or not this coupling beam has been frozen by the user.
Indicates if the bar pattern option is selected in the uniform layout option
Indicates if the uniform layout option is selected
Spacing of the bottom longitudinal bars in the nonuniform layout option
Distance between outer edges of diagonal longitudinal bars
Distance between outer edges of diagonal longitudinal bars
Tie spacing for diagonal reinforcment
Spacing of the horizontal bars in the uniform layout option
Spacing of the side bars in the nonuniform layout option
Spacing of the transverse bars in the nonuniform layout option
Spacing of the top longitudinal bars in the nonuniform layout
Spacing of the transverse bars in the uniform layout option
Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option
Index of the bar size in the rebar table for the diagonal longitudinal bars
Index of the bar size in the rebar table for the diagonal tie bars
Index of the bar size in the rebar table for the horizontal bars in the uniform layout option
Number of bottom layers of reinforcing in the nonuniform layout option
Number of bottom bars in each layer of reinforcing in the nonuniform layout option
Number of diagonal longitudinal bars at sides
Number of diagonal longitudinal top and bottom bars
Number of layers of reinforcing in the uniform layout option
Number of top layers of reinforcing in the nonuniform layout option
Number of top bars in each layer of reinforcing in the nonuniform layout option
Index of the bar size in the rebar table for the side bars in the nonuniform layout option
Index of the bar size in the rebar table for the transverse bars in the nonuniform layout option
Index of the bar size in the rebar table for the vertical bars in the uniform layout option
Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option
The unique ID of the coupling beam

ICouplingBeamCriteria
This interface represents global coupling beam reinforcing criteria.

Properties
Type
BOOL
BOOL
DOUBLE
DOUBLE

Property
bUseBarPattern
bUseUniformLayout
dBotLayerSpacing
dDiagElementHeight

Get

Set

X
X
X

X
X
X

Description
Indicates if the bar pattern option is selected in the uniform layout option
Indicates if the uniform layout option is selected
Spacing of the bottom longitudinal bars in the nonuniform layout option
Distance between outer edges of diagonal longitudinal bars

Type
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG
LONG

Property
dDiagElementWidth
dDiagTieSpacing
dLongBarSpacing
dSideBarSpacing
dStirrupSpacing
dStirrupSpacingUniform
dTopLayerSpacing
lBotBarSize
lDiagLongBarSize
lDiagTieSize
lLongBarSize
lNumBotBars
lNumBotLayers
lNumDiagBarsSide
lNumDiagBarsTopBot
lNumLayers
lNumTopBars
lNumTopLayers
lSideBarSize
lStirrupSize
lStirrupSizeUniform
lTopBarSize

Get
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Description
Distance between outer edges of diagonal longitudinal bars
Tie spacing for diagonal reinforcment
Spacing of the horizontal bars in the uniform layout option
Spacing of the side bars in the nonuniform layout option
Spacing of the transverse bars in the nonuniform layout option
Spacing of the transverse bars in the uniform layout option
Spacing of the top longitudinal bars in the nonuniform layout
Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option
Index of the bar size in the rebar table for the diagonal longitudinal bars
Index of the bar size in the rebar table for the diagonal tie bars
Index of the bar size in the rebar table for the horizontal bars in the uniform layout option
Number of bottom bars in each layer of reinforcing in the nonuniform layout option
Number of bottom layers of reinforcing in the nonuniform layout option
Number of diagonal longitudinal bars at sides
Number of diagonal longitudinal top and bottom bars
Number of layers of reinforcing in the uniform layout option
Number of top bars in each layer of reinforcing in the nonuniform layout option
Number of top layers of reinforcing in the nonuniform layout option
Index of the bar size in the rebar table for the side bars in the nonuniform layout option
Index of the bar size in the rebar table for the transverse bars in the nonuniform layout option
Index of the bar size in the rebar table for the vertical bars in the uniform layout option
Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option

ICouplingBeams
This interface represents a collection of ICouplingBeam objects.

Add ([out,retval] ICouplingBeam** ppICouplingBeam)


Adds a new wall panel to the receiver.
Parameters
ppICouplingBeam

Pointer to an ICouplingBeam interface that represents the newly added coupling beam.

Clear ()
Deletes all coupling beams from the collection.

Delete ([in] long lUID)

Deletes a coupling beam for a specific unique ID from the collection.


Parameters
lUID

Unique ID of the coupling beam to delete.

DeleteAt ([in] long lIndex)


Deletes a coupling beam for a specific index from the collection.
Parameters
lPanelID

Index of the coupling beam to delete.

Get ([in] long lUID, [out, retval] IWallPanel ** ppIWallPanel)


Gets an interface for a specific coupling beam unique ID.
Parameters
lUID
ppICouplingBeam

The unique ID of the requested wall panel.


Pointer to an ICouplingBeam interface that represents the requested coupling beam, or NULL if no coupling beam is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ICouplingBeam ** ppICouplingBeam)


Gets an interface for a specific coupling beam by index.
Parameters
lIndex
ppICouplingBeam

The index into the collection of the requested coupling beam.


Pointer to an ICouplingBeam interface that represents the requested coupling beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall panels in the receiver.
Parameters
plCount

The number of IWallPanel objects in the collection.

IDB
Internal use only.

IDBRecord
Internal use only.

IDBRecords
Internal use only.

IDBTable
Internal use only.

IDBTables
Internal use only.

IDeck
This interface represents a specific deck on a floor type.

GetFinalPolygon ([in] LONG lStoryUID, [in] LONG lIndex, [out,retval] IPoints** ppIPoints)
Gets the specified final polygon for this deck. Note that exterior polygons are at the beginning of this list. The return value from
GetNumFinalDiaphragms (plCount) determines how many of these polygons are exterior polygons. The first plCount polygons in this list
are the exterior ones.
Parameters
lStoryUID
lIndex

The story ID of the story for which to get the polygon.


Index of the polygon to get.

plCount

Pointer to IPoints collection that represents the vertices of the specified polygon.

GetFinalShells ([in] LONG lStoryUID, [out] IShells **ppIShells)


Gets the collection of shells (quads) that make up this deck.
Parameters
lStoryUID
ppIShells

The story ID of the story for which to get the shells.


Pointer to IShells collection that represents the shells of the deck.

GetNumFinalDiaphragms ([in] LONG lStoryUID, [out,retval] LONG* plCount)


Gets the number of final exterior polygons needed to specify the outline of this deck.
Parameters
lStoryUID
plCount

The story ID of the story for which to get the polygon count.
Number of final exterior polygons.

GetNumFinalPolygons ([in] LONG lStoryUID, [out,retval] LONG* plCount)


Gets the number of final polygons needed to specify the outline of this deck. Note that this number includes both the interior and exterior
polygons. Interior polygons specify holes in the deck.
Parameters
lStoryUID
plCount

The story ID of the story for which to get the polygon count.
Number of final polygons.

GetPoints ([out, retval] IPoints** ppIPoints)


Gets the list of points, or vertices, that define the deck polygon. Changing these points does not affect the deck unless SetPoints() is
subsequently called.
Parameters
ppIPoints

Pointer to IPoints collection that represents the vertices of the deck polygon. Note that these are the points in the
logical deck polygon, prior to being intersected with slab edges or having overlying deck areas subtracted.
Additionally, the Z values are not populated with valid data.

SetPoints ([in] IPoints* pIPoints, [out, retval] long* plRetval)

Sets the list of points, or vertices, that define the deck polygon. The number of vertices cannot change. The first and last point must be
identical.
Parameters
pIPoints
plRetval

Pointer to IPoints collection that represents the vertices of the deck polygon.
0 if successful

Properties
Type
BOOL
double
EDeckType
ESlabActions
long
long
long

Property
bDropCap
dAngle
eDeckPropType
eSlabAction
lDropCapColumnID
lPropID
lUID

Get
X
X
X
X
X
X
X

Set
X
X

Description
Flag indicating whether or not this deck was modeled as a drop cap.
Orientation of deck
Type of deck, either composite, non-composite or concrete
The slab action for this deck (one-way or two-way).
The unique ID of the column associated with the drop cap
Unique ID of the deck property
Unique ID of deck polygon

IDecks
This interface represents a collection of all decks on a floor type.

Add ([in] long lDeckPropID, [in] long lNumPoints, [out, retval] IDeck** ppIDeck)
Adds a new deck to the collection of decks for the model.
Parameters
lDeckPropID
lNumPoints
ppIDeck

Unique ID of deck property used by this deck


Number of points in the deck polygon. The first and last points of the polygon must be the same point, so the
number of points should be the actual number in the polygon plus one.
Pointer to an IDeck interface that represents the new deck, or NULL if Add fails

AddDropCap ([in] long lDeckPropID, [in] long lNumPoints, [in] lColumnID, [out, retval] IDeck** ppIDeck)
Adds a new deck to the collection of decks for the model.
Parameters
lDeckPropID
lNumPoints

Unique ID of deck property used by this deck


Number of points in the deck polygon. The first and last points of the polygon must be the same point, so the
number of points should be the actual number in the polygon plus one.

lColumnID
ppIDeck

Unique ID of the column associated with the drop cap


Pointer to an IDeck interface that represents the new deck, or NULL if Add fails

Delete ([in] long lDeckUID, [out, retval] LONG *plRetval)


Deletes the deck with the given unique ID from the collection.
Parameters
lDeckUID
plRetval

Unique ID of the deck to delete


If deletion fails (lDeckUID not found) this is set to a value less than zero. Otherwise, it is set to 0.

DeleteAt ([in] long lIndex, [out, retval] LONG *plRetval)


Deletes the deck at the given index from the collection.
Parameters
lIndex

Index in the collection of the deck to delete

Filter ([in] EDeckFilter eFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval )
Filters the collection of decks based on given criteria.
Parameters
eFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IDeck** ppIDeck)


Gets an interface for a specific deck by unique ID.
Parameters
lUID
ppIDeck

The unique ID of the requested deck


Pointer to an IDeck interface that represents the requested deck, or NULL if no deck is found in the collection with
the given unique ID. If the collection is filtered, only the decks in the filtered collection are considered.

GetAt ([in] long lIndex, [out, retval] IDeck** ppIDeck)

Gets an interface for a specific deck by index.


Parameters
lIndex
ppIDeck

The index into the collection of the requested deck


Pointer to an IDeck interface that represents the requested deck, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of decks in the collection. When the collection is filtered, this function returns the number in the filtered collection, not the
total number of decks on the floor type. When the collection is unfiltered, this function returns the total number of decks on a floor type.
Parameters
plCount

Number of decks in the collection

IDeckTableEntries
This interface is used to hold a collection of IDeckTableEntry objects.

GetAt ([in] long lIndex, [out, retval] IDeckTableEntry** ppIDeckTableEntry)


Gets the IDeckTableEntry object at the specified index.
Parameters
lIndex
ppIDeckTableEntry

The index of the specified deck table entry.


The IDeckTableEntry object at the specified index.

GetCount ([out,retval] long** plCount)


Gets number of IDeckTableEntry objects in the collection.
Parameters
plCount

The number of IDeckTableEntry objects in the collection.

IDeckTableEntry
This interface is used represent an entry in the models composite decking table. Refer to the RAM Manager manual for a more
detailed description of the properties.

Properties
Type
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
BSTR

Property
dABD
dRSpac
dTD
dWR
dYBar2
strDeckName

Get
X
X
X
X
X
X

Set

Description
Area of concrete in the rib per unit deck width
Rib spacing
Nominal rib height
Average rib width
Distance from the bottom of the deck to the centroid of the concrete area dABD
The name of the decking.

IDiaphragm
This interface represents a single diaphragm. The diaphragm is defined by the slab edge and is a construct utilized in RAM Frame
and RAM Concrete to enforce nodal constraint for all nodes within the diaphragm.

GetPointLoads ([in] EAnalysisResultType eAnalysisType, [in] long lLoadCaseID, [out,retval] IPointLoads** ppIPointLoads)
Gets the collection of point loads on this diaphragm.
Parameters
eAnalysisType
lLoadCaseID
ppIPointLoads

The analysis type (As of v10 only RAMFRAMEResultType is supported)


Unique ID for the load case the diaphragm applied loads are associated with.
Pointer to an IPointLoads collection interface that represents the point loads on the diaphragm.
Collection will return a collection of 1 for typical generated story force on rigid diaphragm.

GetShells ([in] EAnalysisResultType eAnalysisType, [out, retval] IShells** ppIShells)


Gets the collection of shells (quads) for this diaphragm.
Parameters
eAnalysisType
lLoadCaseID
ppIPointLoads

The analysis type (As of v10 only RAMFRAMEResultType is supported)


Unique ID for the load case the diaphragm applied loads are associated with.
Pointer to an IPointLoads collection interface that represents the point loads on the diaphragm.
Collection will return a collection of 1 for typical generated story force on rigid diaphragm.

Properties
Type
BOOL

Property
bSkipSurfaceLoad

Get
X

Set
X

Description
Skip surface load polygon edges as constraints while meshing

Type
double

Property
dAdvMeshShapeQualValue

Get
X

Set
X

double

dAdvMeshSizeRatio

double

dAdvNormEdgeLengthRatio

double

dHardNodeDensityFactor

double

dMaxMeshLength

double

dMergeNodeTolerance

double

dMeshTolerance

EDiaphragmDeckDirTypes
long

eContainedDeckDirections
lAdvMeshOptimizationLevel

X
X

long

lPerimeterID

long

lUID

Description
This parameter controls the trade-off between shape optimization and
size optimization. It is the weight of the shape quality in the measure
of the global quality of an element. The default value (0.6) gives a
slight preference to the shape quality over the size quality.
This ratio is used to get a coarser mesh (for ratio > 1) or a finer mesh
(for ratio < 1) than what the mesher would normally produce. Default
value is 1.0.
This parameter is used to limit the length of the edges in the
generated mesh (normalized length). This is not a strict enforcement
however. Most of the edges will be shorter than this limit, but some
may remain somewhat longer. The default value of 1.414 gives the
optimal meshes with respect to the size qualities. With this default
value, the average edge length tends to be 1 (optimal edge quality on
average). Sometimes, it can be useful to limit the length of the edges
to a shorter value (usually between 1 and 1.414), and to accept an
average value smaller than 1 (sub-optimal edge qualities on average).
Factor for mesh density around a hard node, larger is less dense,
default 1.0.
It allows defining the maximum distance between two nodes along a
mesh edge. Note that the program may generate additional nodes
closer than user entered value, but it is never allowed to be larger
than that value.
Any two mesh nodes found to be smaller than this value, the program
treat these two nodes the same (only keeps one copy of the node)
It is used in geometry calculation as a threshold tolerance value. This
should not be confused with a merge (close) node tolerance.
Examples are as follows: it is used as a tolerance to check a node is
on a line or to check a point is inside a polygon, etc...
Snapshot of the different deck directions contained in the diaphragm.
From value 1 on, the optimizer algorithm uses several techniques to
improve both the shape quality and the size quality of the elements,
such as node smoothing, edge swapping, and node insertion. Default
value of 3 is usually a good compromise between quality and CPU
cost.
The perimeter ID of this diaphragm. Note: for diaphragms created
using eDSModelData as the value of eSource in
IStory::GetDiaphragms2, this will be the same as the unique ID.
Unique ID of diaphragm.

IDiaphragms
This interface represents a collection of all diaphragms associated with a story.

Get ([in] long lUID, [out, retval] IDiaphragm** ppIDiaphragm)


Gets an interface for a specific diaphragm by unique ID.
Parameters
lUID
ppIDiaphragm

The unique ID of the requested diaphragm


Pointer to an IDiaphragm interface that represents the requested diaphragm, or NULL if no diaphragm is found in
the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IDiaphragm** ppIDiaphragm)


Gets an interface for a specific diaphragm by index.
Parameters
lIndex
ppIDiaphragm

The index into the collection of the requested diaphragm ( 0 to Count -1 )


Pointer to an IDiaphragm interface that represents the requested diaphragm, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of diaphragms in the collection.
Parameters
plCount

IField
Internal use only.

IFields
Internal use only.

Number of diaphragms in the collection

IFinalWallOpening
This interface represents a single final wall opening, which is an opening clipped to a specific wall.

GetOpeningVertices ([out,retval] IPoints** ppIVertexCoordinates)


Gets the vertices of the opening clipped to the wall polygon.
Parameters
ppIVertexCoordinates Pointer to an IPoints collection interface which represents the locations of the
vertices of the opening in 3D coordinates.

Properties
Type
long
long

Property
lRawOpeningUID
lWallUID

Get
X
X

Set

Description
Unique ID of raw wall opening from which this this clipped opening originated
Unique ID of wall to which this final opening is clipped

IFinalWallOpenings
This interface represents a collection of final wall openings associated with a wall. Final openings are the collection of openings that
intersect a wall, regardless of which wall into the openings were initially modeled.

Get ([in] long lUID, [out, retval] IFinalWallOpening** ppIFinalWallOpening)


Gets an interface for a specific raw wall opening by unique ID.
Parameters
lUID
ppFinalWallOpening

The unique ID of the requested wall opening


Pointer to an IFinalWallOpening interface that represents the requested final wall opening, or NULL if no wall
opening is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IFinalWallOpening** ppIFinalWallOpening)


Gets an interface for a final wall opening by index.
Parameters
lIndex
ppIRawWallOpening

The index into the collection of the requested final wall opening
Pointer to an IFinalWallOpening interface that represents the requested final wall opening, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of wall openings in the collection.
Parameters
plCount

Number of final wall openings in the collection

IFloorType
This interface represents a single floor type in the model.

GetAllSlabEdges ([out, retval] ISlabEdges** ppISlabEdges)


Gets the collection of all slab edges for this floor-type. Unlike the edges returned from ISlabPerimeter::GetEdges, this collection is editable.
Parameters
ppISlabEdges

Pointer to an ISlabEdges collection interface that represents all the edges present on this floor type.
Note that some of them may not belong to any defined perimeter if they do not form complete closed
shapes.

GetAllSlabOpenings ([out, retval] ISlabEdges** ppISlabOpenings)


Gets the collection of all slab opening edges for this floor-type. Unlike the opening edges returned from ISlabOpening::GetEdges, this
collection is editable.
Parameters
ppISlabOpenings

Pointer to an ISlabEdges collection interface that represents all the opening edges present on this floor
type. Note that some of them may not belong to any defined opening if they do not form complete
closed shapes.

GetDecks ([out, retval] IDecks** ppIDecks)


Gets the collection of all decks for this floor type.
Parameters
ppIDecks

Pointer to an IDecks collection interface that represents all decks defined on this floor type

GetGridSystemIDArray ([out, retval] IDAArray** ppIDAArray)


Gets the collection of unique IDs of grid systems that are assigned to this floor type.
Parameters
ppIDAArray

Pointer to an IDAArray collection interface that represents the unique IDs of all grid systems assigned to this floor
type.

GetLayoutBeams ([out, retval] ILayoutBeams** ppILayoutBeams)


Gets the collection of all beams for this floor type.
Parameters
ppILayoutBeams

Pointer to an ILayoutBeams collection interface that represents all beams defined on this floor type

GetLayoutColumns ([out, retval] ILayoutColumns** ppILayoutColumns)


Gets the collection of all columns for this floor type.
Parameters
ppILayoutColumns

Pointer to an ILayoutColumns collection interface that represents all columns defined on this floor type

GetLayoutContinuousFnds ([out, retval] ILayoutContinuousFnds** ppILayoutContinuousFnds)


Gets the collection of all continuous foundations for this floor type.
Parameters
ppILayoutContinuousFnds Pointer to an ILayoutContinuousFnds collection interface that represents all continuous foundations defined on
this floor type

GetLayoutHorizBraces ([out, retval] ILayoutHorizBraces** ppILayoutHorizBraces)


Gets the collection of all horizontal braces for this floor type.
Parameters
ppILayoutHorizBraces Pointer to an ILayoutHorizBraces collection interface that represents all horizontal braces defined on this floor type

GetLayoutIsolatedFnds ([out, retval] ILayoutIsolatedFnds** ppILayoutIsolatedFnds)

Gets the collection of all isolated foundations for this floor type.
Parameters
ppILayoutIsolatedFnds Pointer to an ILayoutIsolatedFnds collection interface that represents all isolated foundations defined on this floor
type

GetLayoutWalls ([out, retval] ILayoutWalls** ppILayoutWalls)


Gets the collection of all walls for this floor type.
Parameters
ppILayoutWalls

Pointer to an ILayoutWalls collection interface that represents all walls defined on this floor type

GetLineLoadSets (ILineLoadSets ** ppLineLoadSets )


Gets the collection of all line load sets for this floor type.
Parameters
ppLineLoadSets

Pointer to an ILineLoadSets collection interface that represents all line load sets defined on this floor type

GetPointLoadSets (IPointLoadSets** ppPointLoadSets )


Gets the collection of all point load sets for this floor type.
Parameters
ppPointLoadSets

Pointer to an IPointLoadSets collection interface that represents all point load sets defined on this floor type

GetSlabOpenings ([out, retval] ISlabOpenings** ppISlabOpenings)


Gets the collection of all slab openings for this floor type.
Parameters
ppISlabOpenings

Pointer to an ISlabOpenings collection interface that represents all slab openings defined on this floor type

GetSlabPerimeters ([out, retval] ISlabPerimeters** ppISlabPerimeters)


Gets the collection of all slab perimeters for this floor type.
Parameters

ppISlabPerimeters

Pointer to an ISlabPerimeters collection interface that represents all slab perimeters defined on this floor type

GetSnowLoadSets ([out, retval] ISnowLoadSets **ppSnowLoadSets)


Gets the collection of all snow load sets for this floor type.
Parameters
ppSnowLoadSets Pointer to an ISnowLoadSets collection interface that represents all snow load sets defined on this floor type.

GetStories ([out, retval] IStories** ppIStories)


Gets the collection of all stories associated with this floor type. May be 0, 1 or many.
Parameters
ppIStories

Pointer to an IStories collection interface that represents all stories based on this floor type

GetSurfaceLoadSets (ISurfaceLoadSets **ppSurfaceLoadSets)


Gets the collection of all surface load sets for this floor type.
Parameters
ppSurfaceLoadSets Pointer to an ISurfaceLoadSets collection interface that represents all surface load sets defined on this floor type.

GetSurfaceLoadSets2 ([out, retval] ISurfaceLoadSets **ppSurfaceLoadSets)


Gets the collection of all surface load sets for this floor type. Note: this is the same as GetSurfaceLoadSets, but with the
ppSurfaceLoadSets argument set to be a retval.
Parameters

ppSurfaceLoadSets Pointer to an ISurfaceLoadSets collection interface that represents all surface load sets defined on this floor type.
SetGridSystemIDArray ([in] IDAArray * pIDAArray, [out, retval] long *plRetVal)
Sets the collection of unique IDs of grid systems that are assigned to this floor type.
Parameters
pIDAArray
plRetVal

Pointer to an IDAArray collection interface that represents the unique IDs of all grid systems assigned to this floor
type.
0 if collection is set

Properties
Type
long

Property
lUID

Get
X

Set

Description
Unique ID of floor type

BSTR

strLabel

Label of floor type. Maximum of 19 characters allowed.

IFloorTypes
This interface represents a collection of all floor types for the model. It can be used to add and delete floor types.

Add ([in] BSTR bstrFloorTypeName, [out, retval] IFloorType** ppFloorType)


Adds a new floor type to the collection of floor types for the model.
Parameters
bstrFloorTypeName
ppFloorType

A label for the floor type. Max 19 characters allowed.


Pointer to an IFloorType interface that represents the newly added floor type.

Copy ([in] long lSrcIndex, [in] BSTR strFloorTypeName, [in] DWORD dwWhatToCopy, [out, retval] IFloorType** ppFloorType)
Creates a duplicate copy of the specified floor type.
Parameters
lScrIndex
bstrFloorTypeName
dwWhatToCopy
ppFloorType

Index of the floor type to copy.


A label for the new floor type. Max 19 characters allowed.
Bitwise OR of members of the EFloorTypeElements enumeration indicating what portions of the floor type should
be copied.
Pointer to an IFloorType interface that represents the newly added floor type.

Copy2 ([in] long lSrcIndex, [in] BSTR strFloorTypeName, [in] LONG lWhatToCopy, [out, retval] IFloorType** ppFloorType)
Creates a duplicate copy of the specified floor type.
Parameters
lScrIndex
bstrFloorTypeName
lWhatToCopy
ppFloorType

Index of the floor type to copy.


A label for the new floor type. Max 19 characters allowed.
Bitwise OR of members of the EFloorTypeElements enumeration indicating what portions of the floor type should
be copied.
Pointer to an IFloorType interface that represents the newly added floor type.

Delete ([in] long lUID, [out, retval] long* plRetval )

Deletes a floor type from the collection. The floor type must be in the filtered collection to be deleted. Note that a floor type that is
associated with a story cannot be deleted. All stories associated with the floor type must be deleted first.
Parameters
lUID
plRetval

Unique ID of floor type to be deleted


0 if floor type is deleted successfully
-1 if the unique ID was not found in the filtered list and could not be deleted or if the floor type is associated with one
or more stories.

Filter ([in] EFloorTypeFilter eFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval )
Filters the collection of floor types based on given criteria.
Parameters
eFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IFloorType** ppFloorType )


Gets an interface for a specific floor type by unique ID.
Parameters
lUID
ppFloorType

The unique ID of the requested floor type


Pointer to an IFloorType interface that represents the requested floor type, or NULL if no floor type is found in the
collection with the given unique ID. If the collection is filtered, only the floor types in the filtered collection are considered.

GetAt ([in] long lIndex, [out, retval] IFloorType** ppFloorType )


Gets an interface for a specific floor type by index.
Parameters
lIndex
ppFloorType

The index into the collection of the requested floor type


Pointer to an IFloorType interface that represents the requested floor type, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount )

Gets the number of floor types in the collection. When the collection is filtered, this function returns the number in the filtered collection, not
the total number of floor types in the model. When the collection is unfiltered, this function returns the total number of floor types in the
model.
Parameters
plCount

Number of floor types in the collection

MSIWorkaround_EFloorTypeElements_DO_NOT_CALL ()
Internal use only.

IFrameAnalysisCriteria
This interface provides access to frame analysis criteria used during an analysis in RAM Frame. Replaced by IRAMFrameCriteria.

Properties
Type
BOOL

Property
bConsiderAdvancedMeshCriteria

Get
X

Set
X

BOOL
BOOL

bConsiderPDelta
bOutputForcesAtFace

X
X

X
X

double

dMeshMaxDistBetweenNodes

double
double

dMeshShapeQualityRatio
dPDeltaFactor

X
X

X
X

EDiaphragm

eDiaphragmType

long

lMeshOptimizationLevel

IGridSystem
This interface represents a single grid system.

GetGrids ([out, retval] IModelGrids ** ppIGrids)

Description
Indicates whether to consider advanced wall meshing criteria. If it is False, default mesh
criteria values are used.
TRUE if PDelta effect should be considered during analysis, FALSE if not
Same as option in RAM Frame Analysis Criteria Dialog. Indicates whether forces should
be provided at the face of the column/beam or at the centerline node
Maximum allowed distance between wall mesh nodes between nodes on walls when
walls are meshed. It controls the wall mesh density (ie., how coarse or fine the mesh is).
Advanced wall mesh shape quality ratio (between 0.1 and 1). The Default is 0.6.
Scale factor (between 0 and 10) to magnify the effect of PDelta during the analysis. The
Default is 1.
Type of diaphragms in model. Will be eNoDiaphragm if no stories have diaphragms. Will
be eRigidDiaphragm if some stories have rigid diaphragms
Advanced wall mesh optimization level (between 1 and 10). The Default is 3.

Gets the collection of grid lines for the grid system.


Parameters
ppIGrids

Pointer to an IModelGrids interface that represents the collection of grids for the grid system.

Properties
Type
double
double
double
SGridSysType
long
BSTR

Property
dRotation
dXoffset
dYoffset
eOrientationType
lUID
strLabel

Get
X
X
X
X
X
X

Set
X
X
X
X
X

Description
Rotation angle of grid system.
Offset of grid system from 0, along x-axis.
Offset of grid system from 0, along y-axis.
Orientation type of grid system.
Unique ID of grid system.
Label of grid system.

IGridSystems
This interface represents the collection of all grid systems defined in the model. Grid systems are defined once and then assigned to
one or more floor types.

Add ([in] BSTR bstGridSystemLabel, [out, retval] IGridSystem** ppIGridSystem )


Adds a grid system to the collection of grid systems for the model.
Parameters
bstGridSystemLabel
ppIGridSystem

Label for this grid system


Pointer to an IGridSystem interface that represents the newly added grid system.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the grid system with the given unique ID. Note that a grid system cannot be deleted if it is currently assigned to a floor type.
Parameters
lUID
plRetval

Unique ID of grid system to delete


0 if grid system is deleted successfully
-1 if unique ID is not found in filtered list of grid systems

Filter ([in] EGridSystemFilter eGridSystemFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of grid systems based on given criteria.

Parameters
eGridSystemFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IGridSystem** ppIGridSystem)


Gets an interface for a specific grid system by unique ID.
Parameters
lUID
ppIGridSystem

The unique ID of the requested grid system


Pointer to an IGridSystem interface that represents the requested grid system, or NULL if no grid system is found in
the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IGridSystem** ppIGridSystem)


Gets an interface for a specific grid system by index.
Parameters
lIndex
ppIGridSystem

The index into the collection of the requested grid system


Pointer to an IGridSystem interface that represents the requested grid system, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of grid systems in the collection. When the collection is filtered, this function returns the number in the filtered collection,
not the total number of layout grid systems in the model. When the collection is unfiltered, this function returns the total number of grid
systems in the model.
Parameters
plCount

Number of grid systems in the collection

IHorizBrace
This interface represents a single horizontal brace. This is a horizontal brace associated with a story, rather than a floor type. This
interface can be used to read data for a horizontal brace at a story. To change coordinates, use the ILayoutHorizBrace interface.

GetEndCoordinates ([out] SCoordinate* pStartPoint, [out] SCoordinate* pEndPoint, [out, retval] long* plRetval)

Gets the end coordinates for the horizontal brace.


Parameters
pStartPoint
pEndPoint
plRetval

SCoordinate corresponding to the start of the horizontal brace


SCoordinate corresponding to the end of the horizontal brace
0 if successful
-1 if coordinates cannot be retrieved

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

Properties
Note that some properties of horizontal braces cannot be changed through the IHorizBrace interface. Any properties which cannot
vary story-to-story when a floor type is used by multiple stories must be set through the ILayoutHorizBrace interface.
Type
BOOL

Property
bDblAngleLLBacktoBack

Get
X

Set
X

BOOL

bDblAngleSnugTightBolt

BOOL
BOOL
BOOL
BOOL

bMajAxisBendFixEnd
bMajAxisBendFixStart
bMinAxisBendFixedEnd
bMinAxisBendFixedStart

X
X
X
X

X
X
X
X

Description
Applies to a steel horizontal brace that has been assigned a double angle section.
If TRUE, long legs of double angle are back to back. If FALSE, short legs are
back to back.
Applies to a steel horizontal brace that has been assigned a double angle section.
TRUE indicates that only a snug tight connector will be used.
Major axis bending release at end of horizontal brace (j-end).
Major axis bending release at start of horizontal brace (i-end).
Minor axis bending release at end of horizontal brace (j-end).
Minor axis bending release at start of horizontal brace (i-end).

Type
BOOL

Property
bSglAngleLLHorizontal

Get
X

Set
X

BOOL
BOOL
double

bTorFixedEnd
bTorFixedStart
dDblAngleBackSpacing

X
X
X

X
X
X

double
double
double
ETensionCompressionMemType
EMATERIALTYPES

dUnbracedLengthAxialX
dUnbracedLengthAxialY
dUnbracedLengthFlexuralY
eAnalysisType
eMaterial

X
X
X
X
X

X
X
X
X

long

lFlangeBracing

long
long

lFrameNumber
lLabel

X
X

long

lMaterialID

long

lSectionID

long
long

lUID
lUnbracedLength

X
X

BSTR

strSectionLabel

Description
Applies to a steel horizontal brace that has been assigned a single angle section.
TRUE indicates that the long leg of the angle is horizontal. FALSE indicates that
the long leg is vertical.
Torsion release at end of horizontal brace (j-end).
Torsion release at start of horizontal brace (i-end).
Spacing distance between angles of double angle section. Applies to a steel
horizontal brace that has been assigned a double angle section.
Strong axis unbraced length for axial compression
Weak axis unbraced length for axial compression
Unbraced length for lateral torsional buckling
Indicates whether horizontal brace takes tension, compression, or both
Material type of horizontal brace. Valid options for horizontal braces are
ESteelMat, EConcreteMat, or EOtherMat.
Flange bracing flags. Sum the appropriate flags to determine the appropriate
value for the settings.
0 All global
1 Override global
2 Top flange braced
4 Bot flange braced
Frame number assigned
Numeric label of horizontal brace used for on-screen display in RAM Structural
System. It is unique per floor type.
Unique ID of material properties for this horizontal brace. Must correspond to
type of material. See section Getting material properties for a member for more
information.
Unique ID of concrete or Other section assigned to this horizontal brace. See
Assigning section properties to concrete members and Assigning section
properties to Other members for more information.
Unique ID of horizontal brace.
Unbraced length flags. Sum the appropriate flags to determine the appropriate
value for the settings.
0 All global
1 Override global UnbracedLengthAxialLX
2 Override global UnbracedLengthAxialLY
4 User defined UnbracedLengthAxialLX
8 User defined UnbracedLengthAxialLY
32 Override global UnbracedLengthFlexLY
128 User defined UnbracedLengthFlexLY
Label of the size or section property for this horizontal brace. Limited to 15
characters. See Assigning sizes to steel members, Assigning section properties
to concrete members, and Assigning section properties to Other members for
more information.

IHorizBraces
This interface represents a collection of horizontal braces associated with a story. This collection can be used to read data for
horizontal braces at a story. To add or delete horizontal braces, use the ILayoutHorizBraces interface associated with a floor type.

Filter ([in] EHorizBraceFilter eHorizBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout horizontal braces based on given criteria.
Parameters
eFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IHorizBrace** ppIHorizBrace)


Gets an interface for a specific horizontal brace by unique ID.
Parameters
lUID
ppIHorizBrace

The unique ID of the requested layout horizontal brace


Pointer to an IHorizBrace interface that represents the requested horizontal brace, or NULL if no horizontal brace is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IHorizBrace** ppIHorizBrace)


Gets an interface for a specific horizontal brace by index.
Parameters
lIndex
ppIHorizBrace

The index into the collection of the requested horizontal brace


Pointer to an IHorizBrace interface that represents the requested horizontal brace, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of horizontal braces in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of horizontal braces on the story. When the collection is unfiltered, this function returns the total number of
horizontal braces on the story.
Parameters
plCount

Number of horizontal braces in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IIsolatedFnd
This interface represents a single isolated foundation. This is an isolated foundation associated with a story, rather than a floor type.
This interface can be used to read data for an isolated foundation at a story. To change coordinates, use the ILayoutIsolatedFnd
interface.

GetCoordinate ([out] SCoordinate* pCenterPoint, [out, retval] long* plRetval)


Gets the coordinate of the isolated foundation.
Parameters
pCenterPoint
plRetval

SCoordinate corresponding to the center point of the isolated foundation


0 if successful
-1 if coordinate cannot be retrieved

GetPileLocations ([out, retval] IPoints** ppIPoints)


Applies to pile cap foundations. Gets a collection of points that represent the location of the piles relative to the center point of the footing.
Parameters
ppIPoints

Pointer to an IPoints interface that represents the location of the piles in the pile cap.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters

strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetReinforcement ([in] EFndReinfLoc eLoc, [out, retval] SFND_ISO_REINF* pVal)


Gets isolated foundation reinforcement for location.
Parameters
eLoc
pVal

Location of reinforcement. See EFndReinfLoc.


Structure containing reinforcement information. See SFND_ISO_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)


Gets additional reinforcement information.
Parameters
pVal

Structure for additional reinforcement information. See SFND_REINF_OTHER_DATA.

Properties
Type
BOOL
double

Property
bDimensionsFromDesign
dBottom

Get
X
X

Set

double

dLeft

double
double

dOrientation
dRight

X
X

X
X

double
double

dThickness
dTop

X
X

X
X

EIsolatedFndType

eType

Description
Indicates whether or not the dimensions returned for the footing are from the design or not
Dimension from center of foundation to bottom edge of footing when footing major axis is parallel
to global X-axis
Dimension from center of foundation to left edge of footing when footing major axis is parallel to
global X-axis
Orientation of foundation
Dimension from center of foundation to right edge of footing when footing major axis is parallel to
global X-axis
Thickness of foundation
Dimension from center of foundation to top edge of footing when footing major axis is parallel to
global X-axis
Type of isolated foundation (i.e. spread footing, pile cap)

Type
long

Property
lLabel

Get
X

Set

long

lMaterialID

long

lPileConfigurationID

long

lPileID

long

lUID

Description
Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per
floor type.
Unique ID of material properties for this isolated foundation. Foundation is always concrete. See
section Getting material properties for a member for more information.
ID of pile configuration assigned to this foundation; only applies if eType is EFndPileCap. From
the IModel interface, call GetPileConfiguration() using this ID to get the interface for the pile
configuration associated with this pile cap footing.
ID of pile type assigned to this foundation; only applies if eType is EFndPileCap. From the IModel
interface, call GetPile() using this ID to get the interface for the pile definition associated with this
pile cap footing.
Unique ID of isolated foundation.

IIsolatedFnds
This interface represents a collection of isolated foundations (foundations that sit under a single column) associated with a story.
While isolated foundations are added to the ILayoutIsolatedFnds interface (which is associated with a floor type), they only are
considered in the 3D model at the lowest story used by that floor type. For example, if isolated foundations are defined on a floor
type that is associated with 2 stories, calling GetIsolatedFnds() from the IStory associated with the top story for that floor type will
yield an empty IIsolatedFnds collection, but from the IStory associated with the bottom story, the IIsolatedFnds collection will
represent all the isolated foundations at that story.

Filter ([in] EIsolatedFndFilter eIsolatedFndFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of isolated foundations based on given criteria.
Parameters
eIsolatedFndFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IIsolatedFnd** ppIIsolatedFnd)


Gets an interface for a specific isolated foundation by unique ID.
Parameters
lUID
ppIIsolatedFnd

The unique ID of the requested isolated foundation


Pointer to an IIsolatedFnd interface that represents the requested isolated foundation, or NULL if no isolated

foundation is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IIsolatedFnd** ppIIsolatedFnd)


Gets an interface for a specific isolated foundation by index.
Parameters
lIndex
ppIIsolatedFnd

The index into the collection of the requested isolated foundation


Pointer to an IIsolatedFnd interface that represents the requested isolated foundation, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of isolated foundations in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of isolated foundations on the story. When the collection is unfiltered, this function returns the total number
of isolated foundations on the story.
Parameters
plCount

Number of isolated foundations in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

ILayoutBeam
This interface represents a single layout beam. A layout beam is a beam associated with a floor type. Since a floor type can be
associated with one or more stories, a layout beam may actually represent one or more beams. This interface can be used to modify
the coordinates and properties of a layout beam.
GetAssociatedStoryBeams ([out, retval] IBeams** ppIBeams)

Gets an interface for a collection of story beams associated with this layout beam. Collection may be empty if no stories are associated
with the floor type the layout beam is on.
Parameters
ppIBeams

Pointer to an IBeams interface that represents the collection of story beams associated with this layout beam.

GetEndRigidLink ([out] double *pdX, [out] *double pdY, [out] long *plMemberID)
Gets the support unique ID and coordinates for the rigid link at the end of the beam.
Parameters
pdX
pdY
plMemberID

X coordinate of the end of the rigid link on the supporting member at the end of the beam. Matches beam end
X coordinate if there is no rigid link.
Y coordinate of the end of the rigid link on the supporting member at the end of the beam. Matches beam end
Y coordinate if there is no rigid link.
Unique ID of the member that supports the rigid link at the end of the beam.

GetLayoutCoordinates ([out] double *pdStartSupportX, [out] double *pdStartSupportY, [out] double *pdStartSupportZOffset, [out]
double *pdEndSupportX, [out] double *pdEndSupportY, [out]double *pdEndSupportZOffset, [out, retval] long* plRetval)
Gets the coordinates of the layout beam. Note that it returns the coordinates of the support points of the beam. For the actual end
coordinates, use the IBeam interface.
Parameters
pdStartSupportX
pdStartSupportY
pdStartSupportZOffset
pdEndSupportX
pdEndSupportY
pdEndSupportZOffset
plRetval

X coordinate of the support point at the start of the beam (i-end).


Y coordinate of the support point at the start of the beam (i-end).
Z offset value from the story elevation for the support point at the start of the beam (i-end).
X coordinate of the support point at the end of the beam (j-end).
Y coordinate of the support point at the end of the beam (j-end).
Z offset value from the story elevation for the support point at the end of the beam (j-end).
0 if successful
-1 if coordinates cannot be retrieved

GetStartRigidLink ([out] double *pdX, [out] *double pdY, [out] long *plMemberID)
Gets the support unique ID and coordinates for the rigid link at the start of the beam.
Parameters
pdX
pdY

X coordinate of the end of the rigid link on the supporting member at the start of the beam. Matches beam start
X coordinate if there is no rigid link.
Y coordinate of the end of the rigid link on the supporting member at the start of the beam. Matches beam start

plMemberID

Y coordinate if there is no rigid link.


Unique ID of the member that supports the rigid link at the start of the beam.

GetStubCantileverCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdStartZOffset, [out] double
*pdEndtX, [out] double *pdEndY, [out] double *pdEndZOffset)
Gets the end coordinates of a stub cantilever layout beam. 1.
Parameters
pdStartX
pdStartY
pdStartZOffset
pdEndX
pdEndY
pdEndZOffset

X coordinate of the supported stub cantilever end.


Y coordinate of the supported stub cantilever end.
Z offset value from the story elevation of the supported stub cantilever end.
X coordinate of the free stub cantilever end.
Y coordinate of the free stub cantilever end.
Z offset value from the story elevation of the free stub cantilever end.

GetWebOpenings ([out, retval] IWebOpenings** ppIWebOpenings )


Gets an interface for a collection of web openings associated with this layout beam. Collection may be empty if no web openings are
defined on this beam.
Parameters
ppIWebOpenings

Pointer to an IWebOpenings interface that represents the collection of web openings defined on this layout beam.

IsStubCantilever ([out, retval] BOOL* bStubCantilever)


Determine if the layout beam is a stub cantilever or not. 1
Parameters
bStubCantilever

Returns 1 if the layout beam is a stub cantilever, 0 if not.

SetEndRigidLink ([in] double dX, [in] double dY)


Sets the end coordinates for the rigid link at the end of the beam. A support must exist before the link can be added.
Parameters
dX
dY

X coordinate of the end of the rigid link on the supporting member at the end of the beam.
Y coordinate of the end of the rigid link on the supporting member at the end of the beam.

SetLayoutCoordinates ([in] double dStartSupportX, [in] double dStartSupportY, [in] double dStartSupportZOffset, [in] double
dEndSupportX, [in] double dEndSupportY, [in] double dEndSupportZOffset, [out, retval] long* plRetval)
Sets the coordinates of the layout beam. Note that the coordinates being set are of the support points of the beam. Beams must be
defined from left-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, they
will be reversed.
Parameters
dStartSupportX
dStartSupportY
dStartSupportZOffset
dEndSupportX
dEndSupportY
dEndSupportZOffset
plRetval

X coordinate of the support point at the start of the beam (i-end).


Y coordinate of the support point at the start of the beam (i-end).
Z offset value from the story elevation for the support point at the start of the beam (i-end).
X coordinate of the support point at the end of the beam (j-end).
Y coordinate of the support point at the end of the beam (j-end).
Z offset value from the story elevation for the support point at the end of the beam (j-end).
0 if successful
-1 if coordinates cannot be set

SetStartRigidLink ([in] double dX, [in] double dY)


Sets the end coordinates for the rigid link at the start of the beam. A support must exist before the link can be added.
Parameters
dX
dY

X coordinate of the end of the rigid link on the supporting member at the start of the beam.
Y coordinate of the end of the rigid link on the supporting member at the start of the beam.

SetStubCantileverCoordinates ([in] double dStartX, [in] double dStartY, [in] double dStartZOffset, [in] double dEndtX, [in] double
dEndY, [in] double dEndZOffset)
Sets the end coordinates of a stub cantilever layout beam. 1.
Parameters
dStartX
dStartY
dStartZOffset
dEndX
dEndY
dEndZOffset

Properties

X coordinate of the supported stub cantilever end.


Y coordinate of the supported stub cantilever end.
Z offset value from the story elevation of the supported stub cantilever end.
X coordinate of the free stub cantilever end.
Y coordinate of the free stub cantilever end.
Z offset value from the story elevation of the free stub cantilever end.

Note that some properties that can be set through the ILayoutBeam interface cannot be retrieved. Any property of a beam that can
vary story-to-story (such as the section label, which corresponds to the beam size) cannot be retrieved through this interface
because the ILayoutBeam interface may represent more than one beam, not all of which will have the same assigned size. For
example, if a floor type is associated with 3 stories, the corresponding beams on those stories may have 3 different assigned sizes.
So the section label is one property that cannot be retrieved through the ILayoutBeam interface. To get the section label for a beam,
use the IBeam interface.
When a property is set through the ILayoutBeam interface, all beams represented by this interface will be updated.
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
double
double
double

Property
bComposite
bMajAxisBendFixedEnd
bMajAxisBendFixedStart
bMinAxisBendFixedEnd
bMinAxisBendFixedStart
bTorFixedEnd
bTorFixedStart
dCastellatedBottomDt
dCastellatedDt
dCastellatedE

Get
X

X
X
X

Set
X
X
X
X
X
X
X
X
X
X

double
double
double

dCastellatedMaxE
dCastellatedMinE
dCastellatedPhiBot

X
X
X

X
X
X

double

dCastellatedPhiTop

double
double
double
double
double

dCastellatedTopDt
dCellularDo
dCellularMaxS
dCellularMinS
dCellularS

X
X
X
X
X

X
X
X
X
X

double
double

dEndCantilever
dManufacturerSelfWeight

X
X

X
X

double
EAnalyzeFlag
EFRAMETYPE
EMATERIALTYPES

dStartCantilever
eAnalyzeFlag
eFramingType
eMaterial

X
X
X

X
X
X
X

EJoistType

eMemberJoistType

Description
If TRUE, beam is composite. If FALSE, beam is non-composite.
Major axis bending release at end of beam (j-end).
Major axis bending release at start of beam (i-end).
Minor axis bending release at end of beam (j-end).
Minor axis bending release at start of beam (i-end).
Torsion release at end of beam (j-end).
Torsion release at start of beam (i-end).
dt is the distance from the top of the beam to the top of a castellated beam opening.
e is the dimension of the top of the castellated opening, and the spacing between openings.
This is the maximum dimension in the case that a range was specified by the design.
Minimum space between holes in castellated beams.
Maximum space between holes in castellated beams.
Angle off the horizontal of the slant of the bottom two slanted portions of the holes in
castellated beams.
Angle off the horizontal of the slant of the top two slanted portions of the holes in castellated
beams.
Vertical distance from flange to hole for castellated beams.
Do is the hole diameter for cellular beams.
Minimum center-to-center spacing of holes in cellular beams.
Maximum center-to-center spacing of holes in cellular beams.
S is the spacing between openings for cellular beams. This is the maximum dimension in the
case that a range was specified by the design.
Length of cantilever at end of beam (j-end)
Self weight supplied by a custom beam manufacturer, used in place of self-weight calculation
for calculating reactions on other members only used in Ram Structural System if
lManufacturerID has been set. This value should be in pounds per linear foot.
Length of cantilever at start of beam (i-end)
Whether beam will be optimized or analyzed during design
Whether member is lateral or gravity
Material type of beam. Valid options for beams are ESteelMat, ESteelJoistMat,
ESmartbeamBeamMat, EConcreteMat, or EOtherMat.
Type of joist (if beam material type is ESteelJoistMat)

Type
ESMARTBEAMTYPE

Property
eSmartBeamSubType

Get
X

Set
X

EDefaultOrAlternate
long
long
long
long

eSteelTable
lBeamLineNumber
lDeckUID
lFrameNumber
lLabel

X
X

long

lManufacturerID

long

lMaterialID

long

lSectionID

long

lUID

BSTR

strSectionLabel

X
X
X
X

X
X

Description
Whether the beam is a castellated or cellular smartbeam. Only applicable if eMaterial is
ESmartbeamBeamMat.
Whether beam size will be found in default or alternate steel beam design table
Beam line that beam is part of (applicable only if this is a concrete beam).
Deck unique id on the left or right of the beam.
Frame number for lateral members. It must be positive number.
Numeric label of beam used for on-screen display in RAM Structural System. It is unique per
floor type.
0 if none assigned. Custom beam manufacturers may obtain a manufacturer ID from RAM
International. When set on a beam, the beam will be ignored during the Design All command
in RAM Steel Beam.
Unique ID of material properties for this beam. Must correspond to type of material. See
section Getting material properties for a member for more information.
Unique ID of concrete or Other section assigned to this beam. See Assigning section
properties to concrete members and Assigning section properties to Other members for more
information.
Unique ID of layout beam. This unique ID corresponds to the beam on the top story
associated with this floor type, if any.
Label of the size or section property for this beam. Limited to 15 characters. See Assigning
sizes to steel members, Assigning section properties to concrete members, and Assigning
section properties to Other members for more information.

ILayoutBeams
This interface represents a collection of beams associated with a floor type. This collection is used to add or delete beams on a floor
type. (Beams cannot be added or deleted for a story through the IBeams interface, so this is the only interface through which beams
can be added or deleted from the model.)

Add ([in] EMATERIALTYPES eMat, [in]double dStartSupportX, [in] double dStartSupportY, [in]double dZOffset1, [in]double
dEndSupportX, [in]double dEndSupportY, [in]double dZOffset2, [out, retval] ILayoutBeam** ppILayoutBeam)
Adds a new layout beam to the collection of layout beams for the floor type. A beam is defined by its support points, not its end points.
Beams must be defined from left-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM
Structural System, they will be reversed. If a beam is cantilevered, the cantilever length is added as a property of the ILayoutBeam
interface.
Parameters
eMat
dStartSupportX

Material type of beam to add (Valid options are ESteelMat, ESteelJoistMat, ESmartbeamBeamMat, EConcreteMat,
or EOtherMat)
X coordinate of the support point at the start of the beam (i-end).

dStartSupportY
dZOffset1
dEndSupportX
dEndSupportY
dZOffset2
ppILayoutBeam

Y coordinate of the support point at the start of the beam (i-end).


Z offset value from the story elevation for the support point at the start of the beam (i-end).
X coordinate of the support point at the end of the beam (j-end).
Y coordinate of the support point at the end of the beam (j-end).
Z offset value from the story elevation for the support point at the end of the beam (j-end).
Pointer to an ILayoutBeam interface that represents the newly added layout beam.

AddStubCantilever ([in] EMATERIALTYPES eMat, [in]double dStartX, [in] double dStartY, [in]double dZOffset1, [in]double dEndX,
[in]double dEndY, [in]double dZOffset2, [out, retval] ILayoutBeam** ppILayoutBeam)
Adds a new stub cantilever layout beam to the collection of layout beams for the floor type. 1
Parameters
eMat
dStartX
dStartY
dZOffset1
dEndX
dEndY
dZOffset2
ppILayoutBeam

Material type of beam to add (Valid options are ESteelMat, ESteelJoistMat, ESmartbeamBeamMat, EConcreteMat,
or EOtherMat)
X coordinate of the supported stub cantilever end.
Y coordinate of the supported stub cantilever end.
Z offset value from the story elevation of the supported stub cantilever end.
X coordinate of the free stub cantilever end.
Y coordinate of the free stub cantilever end.
Z offset value from the story elevation of the free stub cantilever end.
Pointer to an ILayoutBeam interface that represents the newly added layout beam.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the layout beam with the given unique ID, as well as all corresponding beams on stories associated with the floor type that the
layout beam is on.
Parameters
lUID
plRetval

Unique ID of layout beam to delete


0 if layout beam is deleted successfully
-1 if unique ID is not found in filtered list of layout beams

Filter ([in] EBeamFilter eFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout beams based on given criteria.
Parameters
eFilter
varFilterCriteria

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.

plRetval

0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILayoutBeam** ppILayoutBeam)


Gets an interface for a specific layout beam by unique ID.
Parameters
lUID
ppILayoutBeam

The unique ID of the requested layout beam


Pointer to an ILayoutBeam interface that represents the requested layout beam, or NULL if no layout beam is found
in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutBeam** ppILayoutBeam)


Gets an interface for a specific layout beam by index.
Parameters
lIndex
ppILayoutBeam

The index into the collection of the requested layout beam


Pointer to an ILayoutBeam interface that represents the requested layout beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout beams in the collection. When the collection is filtered, this function returns the number in the filtered collection,
not the total number of layout beams on the floor type. When the collection is unfiltered, this function returns the total number of layout
beams on the floor type.
Parameters
plCount

Number of layout beams in the collection

ILayoutColumn
This interface represents a single layout column. A layout column is a column associated with a floor type. Since a floor type can be
associated with one or more stories, a layout column may actually represent one or more columns. This interface can be used to
modify the coordinates and properties of a layout column.

GetAssociatedStoryColumns ([out, retval] IColumns** ppIColumns)

Gets an interface for a collection of story columns associated with this layout column. Collection may be empty if no stories are associated
with the floor type the layout column is on.
Parameters
ppIColumns

Pointer to an IColumns interface that represents the collection of story columns associated with this layout
column.

GetLayoutCoordinates ([out] double *pdX, [out] double *pdY, [out] double *pdZ1Offset, [out]double *pdZ2, [out, retval] long*
plRetval)
Gets the coordinates of the top of the layout column.
Parameters
pdX
pdY
pdZ1Offset
pdZ2Offset
plRetval

X coordinate of the column


Y coordinate of the column
Z offset value from the story elevation. This is the top of the standard
columns and the bottom of hanging columns.
Z offset value from the story elevation. This is the bottom of the standard
columns and the top of hanging columns.
0 if successful
-1 if coordinates cannot be retrieved

GetLayoutCoordinates2 ([out] double *pdX1, [out] double *pdY1, [out] double *pdZ1Offset, [out] double *pdX2, [out] double
*pdY2, [out]double *pdZ2Offset)
Gets the coordinates of the layout column.
Parameters
pdX1
pdY1
pdZ1Offset
pdX2
pdY2
pdZ2Offset

X coordinate of the column. This is the top of standard columns and the
bottom of hanging columns.
Y coordinate of the column. This is the top of standard columns and the
bottom of hanging columns.
Z offset value from the story elevation. This is the top of standard columns
and the bottom of hanging columns.
X coordinate of the column. This is the bottom of standard columns and the
top of hanging columns.
Y coordinate of the column. This is the bottom of standard columns and the
top of hanging columns.
Z offset value from the story elevation. This is the bottom of standard
columns and the top of hanging columns.

SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZ1Offset, [in] double dZ2Offset, [out, retval] long* plRetval)
Sets the coordinates of the layout column.
Parameters
dX
dY
dZTopOffset
dZBotOffset
plRetval

X coordinate of the column


Y coordinate of the column
Z offset value from the story elevation. This is the top of the standard
columns and the bottom of hanging columns.
Z offset value from the story elevation. This is the bottom of the standard
columns and the top of hanging columns.
0 if successful
-1 if coordinates cannot be set

SetLayoutCoordinates2 ([in] double dX1, [in] double dY1, [in] double dZ1Offset, [in] double dX2, [in] double dY2, [in] double
dZ2Offset)
Sets the coordinates of the layout column.
Parameters
dX1
dY1
dZ1Offset
dX2
dY2
dZ2Offset

X coordinate of the column. This is the top of standard columns and bottom of
hanging columns.
Y coordinate of the column. This is the top of standard columns and the
bottom of hanging columns.
Z offset value from the story elevation. This is the top of standard columns
and the bottom of hanging columns.
X coordinate of the column. This is the bottom of standard columns and the
top of hanging columns.
Y coordinate of the column. This is the bottom of standard columns and the
top of hanging columns.
Z offset value from the story elevation. This is the bottom of standard
columns and the top of hanging columns.

Properties
Note that some properties that can be set through the ILayoutColumn interface cannot be retrieved. Any property of a column that
can vary story-to-story (such as the section label, which corresponds to the column size) cannot be retrieved through this interface
because the ILayoutColumn interface may represent more than one column, not all of which will have the same assigned size. For
example, if a floor type is associated with 3 stories, the corresponding columns on those stories may have 3 different assigned sizes.

So the section label is one property that cannot be retrieved through the ILayoutColumn interface. To get the section label for a
column, use the IColumn interface.
When a property is set through the ILayoutColumn interface, all columns represented by this interface will be updated.
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
double
double
EFRAMETYPE
EMATERIALTYPES
long
long

Property
bDblAngleLLBackToBack
bDblAngleSnugTightBolt
bHanger
bMajAxisBendFixedBot
bMajAxisBendFixTop
bMinAxisBendFixedBot
bMinAxisBendFixedTop
bSglAngleMirrored
bTorFixedBot
bTorFixedTop
dDblAngleBackSpacing
dOrientation
eFramingType
eMaterial
lFrameNumber
lLabel

Get
X
X
X

long

lMaterialID

long

lSectionID

long

lUID

BSTR

strSectionLabel

Set
X
X
X
X
X
X
X
X
X

X
X

X
X
X
X

X
X

Description
True if double angles have long leg back to back
True if double angles are using the snug tight bolts for intermediate connectors
True if layout column is a hanging column
Major axis bending release at bottom of column (j-end)
Major axis bending release at top of column (i-end)
Minor axis bending release at bottom of column (j-end).
Minor axis bending release at top of column (i-end).
True if single angle layout column is mirrored.
Torsion release at bottom of column (j-end).
Torsion release at top of column (i-end).
The back to back spacing between angles in the double angle section
Orientation of column in degrees. Angle measured between web of column and x-axis.
Whether member is lateral or gravity
Material type of column. Valid options for columns are ESteelMat, EConcreteMat, or EOtherMat.
Frame number for lateral members. Must be positive number.
Numeric label of column used for on-screen display in RAM Structural System. It is unique per
floor type.
Unique ID of material properties for this column. Must correspond to type of material. See
section Getting material properties for a member for more information.
Unique ID of concrete or Other section assigned to this column. See Assigning section
properties to concrete members and Assigning section properties to Other members for more
information.
Unique ID of layout column. This unique ID corresponds to the column on the top story
associated with this floor type, if any.
Label of the size or section property for this column. Limited to 15 characters. See Assigning
sizes to steel members, Assigning section properties to concrete members, and Assigning
section properties to Other members for more information.

ILayoutColumns
This interface represents a collection of columns associated with a floor type. This collection is used to add or delete columns on a
floor type. (Columns cannot be added or deleted for a story through the IColumns interface, so this is the only interface through
which columns can be added or deleted from the model.)

Add ([in] EMATERIALTYPES eMat, [in]double dX, [in] double dY, [in]double dZ1Offset, [in]double dZ2Offset, [out, retval]
ILayoutColumn** ppILayoutColumn)
Adds a new (vertical) layout column to the collection of layout columns for the floor type. Since sloped columns are currently not handled in
the RAM Structural System, only one set of x,y coordinates are used in the definition of a new column.
Parameters
eMat
dX
dY
dZTopOffset
dZBotOffset
ppILayoutColumn

Material type of column to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat)
X coordinate of the column
Y coordinate of the column
Z offset value from the story elevation. This is the top of standard columns and the bottom of hanging columns.
Z offset value from the story elevation. This is the bottom of standard columns and the top of hanging columns.
Pointer to an ILayoutColumn interface that represents the newly added layout column.

Add2 ([in] EMATERIALTYPES eMat, [in]double dX1, [in]double dY1, [in]double dX2, [in] double dY2, [in]double dZ1Offset,
[in]double dZ2Offset, [out, retval] ILayoutColumn** ppILayoutColumn)
Adds a new (possibly sloping) layout column to the collection of layout columns for the floor type.
Parameters
eMat
dX1
dY1
dX2
dY2
dZ1Offset
dZ2Offset
ppILayoutColumn

Material type of column to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat)
X coordinate of the column. This is the top of standard columns.
Y coordinate of the column. This is the top of standard columns.
X coordinate of the column. This is the bottom of standard columns.
Y coordinate of the column. This is the bottom of standard columns.
Z offset value from the story elevation. This is the top of standard columns.
Z offset value from the story elevation. This is the bottom of standard columns.
Pointer to an ILayoutColumn interface that represents the newly added layout column.

Add3 ([in] EMATERIALTYPES eMat, [in]double dX1, [in]double dY1, [in]double dX2, [in] double dY2, [in]double dZ1Offset,
[in]double dZ2Offset, [in] BOOL bHanger, [out, retval] ILayoutColumn** ppILayoutColumn)
Adds a new (possibly sloping) layout column (standard or hanging) to the collection of layout columns for the floor type.
Parameters
eMat
dX1
dY1
dX2
dY2

Material type of column to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat)
X coordinate of the column. This is the top of standard columns and the bottom of hanging columns.
Y coordinate of the column. This is the top of standard columns and the bottom of hanging columns.
X coordinate of the column. This is the bottom of standard columns and the top of hanging columns.
Y coordinate of the column. This is the bottom of standard columns and the top of hanging columns.

dZ1Offset
dZ2Offset
bHanger
ppILayoutColumn

Z offset value from the story elevation. This is the top of standard columns and the bottom of hanging columns.
Z offset value from the story elevation. This is the bottom of standard columns and the top of hanging columns.
Enter 1 if the column is a hanger and 0 if it is not.
Pointer to an ILayoutColumn interface that represents the newly added layout column.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the layout column with the given unique ID, as well as all corresponding columns on stories associated with the floor type that the
layout column is on.
Parameters
lUID
plRetval

Unique ID of layout column to delete


0 if layout column is deleted successfully
-1 if unique ID is not found in filtered list of layout columns

Filter ([in] EColumnFilter eColumnFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout columns based on given criteria.
Parameters
eColumnFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILayoutColumn** ppILayoutColumn)


Gets an interface for a specific layout column by unique ID.
Parameters
lUID
ppILayoutColumn

The unique ID of the requested layout column


Pointer to an ILayoutColumn interface that represents the requested layout column, or NULL if no layout column is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutColumn** ppILayoutColumn)


Gets an interface for a specific layout column by index.
Parameters
lIndex

The index into the collection of the requested layout column

ppILayoutColumn

Pointer to an ILayoutColumn interface that represents the requested layout column, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout columns in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of layout columns on the floor type. When the collection is unfiltered, this function returns the total number
of layout columns on the floor type.
Parameters
plCount

Number of layout columns in the collection

ILayoutContinuousFnd
This interface represents a single layout continuous foundation. A layout continuous foundation is a continuous foundation
associated with a floor type. The continuous foundation will exist in the 3D model at the lowest story used by the floor type, unless
there is something below the foundation. If a column or wall is sitting below the continuous foundation, the foundation will be ignored
in the 3D model. This interface can be used to modify the coordinates and properties of a layout continuous foundation.

GetContinuousFnd ([out, retval] IContinuousFnd** ppIContinuousFnd)


Gets an interface for the continuous foundation associated with this layout continuous foundation.
Parameters
ppIContinuousFnd

Pointer to an IContinuousFnd interface that represents the continuous foundation at the lowest story associated
with this layout continuous foundation. If no stories are defined for the floor type associated with the layout
continuous foundation, this pointer will be NULL.

GetLayoutCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdEndX, [out] double *pdEndY, [out] double
*pdZOffset, [out, retval] long* plRetval)
Gets the coordinates of the layout continuous foundation.
Parameters
pdStartX
pdStartY
pdEndX
pdEndY
pdZOffset

X coordinate of the center of the start of the footing


Y coordinate of the center of the start of the footing
X coordinate of the center of the end of the footing
Y coordinate of the center of the end of the footing
Z offset value from the story elevation for the top of the footing applied to both the start and end of the footing

plRetval

0 if successful
-1 if coordinates cannot be retrieved

GetReinforcement ([out, retval] SFND_CONT_REINF* pVal)


Gets reinforcement information for continuous foundation.
Parameters
pVal

Structure for continuous foundation reinforcement information. See SFND_CONT_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)


Gets additional reinforcement information for continuous foundation.
Parameters
pVal

Structure for additional reinforcement information. See SFND_REINF_OTHER_DATA.

SetLayoutCoordinates ([in]double dStartX, [in] double dStartY, [in]double dEndX, [in] double dEndY, [in]double dZOffset, [out,
retval] long* plRetval)
Sets the coordinates of the layout continuous foundation.
Parameters
dStartX
dStartY
dEndX
dEndY
dZOffset
plRetval

X coordinate of the center of the start of the footing


Y coordinate of the center of the start of the footing
X coordinate of the center of the end of the footing
Y coordinate of the center of the end of the footing
Z offset value from the story elevation for the top of the footing applied to both the start and end of the footing
0 if successful
-1 if coordinates cannot be set

Properties
Type
BOOL
double

Property
bDimensionsFromDesign
dBottom

Get
X
X

Set

double
double
double
double

dLeft
dOrientation
dRight
dThickness

X
X
X
X

X
X

Description
Indicates whether or not the dimensions returned for the footing are from the design or not
Dimension from center of foundation to bottom edge defined when footing major axis is parallel to global Xaxis
Dimension from center of foundation to left edge defined when footing major axis is parallel to global X-axis
Orientation of foundation
Dimension from center of foundation to right edge defined when footing major axis is parallel to global X-axis
Thickness of foundation

Type
double
long
long

Property
dTop
lLabel
lMaterialID

Get
X
X
X

long

lUID

Set
X

Description
Dimension from center of foundation to top edge defined when footing major axis is parallel to global X-axis
Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.
Unique ID of material properties for this continuous foundation. Foundations are always concrete. See
section Getting material properties for a member for more information.
Unique ID of layout continuous foundation.

ILayoutContinuousFnds
This interface represents a collection of continuous foundations associated with a floor type. This collection is used to add or delete
continuous foundations on a floor type. (Foundations cannot be added or deleted for a story through the IContinuousFnds interface,
so this is the only interface through which continuous foundations can be added or deleted from the model.)

Add ([in]double dStartX, [in] double dStartY, [in]double dEndX, [in] double dEndY, [in]double dZOffset, [out, retval]
ILayoutContinuousFnd** ppILayoutContinuousFnd)
Adds a new layout continuous foundation to the collection of layout continuous foundations for the floor type.
Parameters
dStartX
dStartY
dEndX
dEndY
dZOffset
ppILayoutContinuousFnd

X coordinate of the center of the start of the footing


Y coordinate of the center of the start of the footing
X coordinate of the center of the end of the footing
Y coordinate of the center of the end of the footing
Z offset value from the story elevation for the top of the footing applied to both the start and end of the footing
Pointer to an ILayoutContinuousFnd interface that represents the newly added layout isolated foundation.

Delete ([in] long lUID, [out, retval] long* plRetval )


Deletes the layout continuous foundation with the given unique ID.
Parameters
lUID
plRetval

Unique ID of layout continuous foundation to delete


0 if layout continuous foundation is deleted successfully
-1 if unique ID is not found in filtered list of layout continuous foundations

Get ([in] long lUID, [out, retval] ILayoutContinuousFnd** ppILayoutContinuousFnd)


Gets an interface for a specific layout continuous foundation by unique ID.

Parameters
lUID
The unique ID of the requested layout continuous foundation
ppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation, or
NULL if no layout continuous foundation is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutContinuousFnd** ppILayoutContinuousFnd)


Gets an interface for a specific layout continuous foundation by index.
Parameters
lIndex
The index into the collection of the requested layout continuous foundation
ppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation, or
NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout continuous foundations in the collection.
Parameters
plCount

Number of layout continuous foundations in the collection

ILayoutHorizBrace
This interface represents a single layout horizontal brace. A layout horizontal brace is a horizontal brace associated with a floor type.
Since a floor type can be associated with one or more stories, a layout horizontal brace may actually represent one or more
horizontal braces. This interface can be used to modify the coordinates and properties of a layout horizontal brace.

GetAssociatedStoryHorizontalBraces ([out, retval] IHorizBraces** ppIHorizBraces)


Gets an interface for a collection of story horizontal braces associated with this layout horizontal brace. Collection may be empty if no
stories are associated with the floor type the layout horizontal brace is on.
Parameters
ppIHorizBraces

Pointer to an IHorizBraces interface that represents the collection of story horizontal braces associated with this
layout horizontal brace.

GetLayoutCoordinates ([out] double *pdStartSupportX, [out] double *pdStartSupportY, [out] double *pdStartSupportZOffset, [out]
double *pdEndSupportX, [out] double *pdEndSupportY, [out] double *pdEndSupportZOffset, [out, retval] long* plRetval)

Gets the coordinates of the layout horizontal brace.


Parameters
pdStartSupportX
pdStartSupportY
pdStartSupportZOffset
pdEndSupportX
pdEndSupportY
pdEndSupportZOffset
plRetval

X coordinate of the support point at the start of the beam (i-end).


Y coordinate of the support point at the start of the beam (i-end).
Z offset value from the story elevation for the support point at the start of the beam (i-end).
X coordinate of the support point at the end of the beam (j-end).
Y coordinate of the support point at the end of the beam (j-end).
Z offset value from the story elevation for the support point at the end of the beam (j-end).
0 if successful
-1 if coordinates cannot be retrieved

SetLayoutCoordinates ([in] double dStartSupportX, [in] double dStartSupportY, [in] double dStartSupportZOffset, [in] double
dEndSupportX, [in] double dEndSupportY, [in] double dEndSupportZOffset, [in] double dStartCantlLength, [in] double
dEndCantlLength, [out, retval] long* plRetval)
Sets the coordinates of the layout horizontal brace. Horizontal braces must be defined from left-to-right, top-to-bottom. If the coordinates
are sent in opposite of the convention used by the RAM Structural System, they will be reversed, as will the cantilevers that are specified if
any.
Parameters
dStartSupportX
dStartSupportY
dStartSupportZOffset
dEndSupportX
dEndSupportY
dEndSupportZOffset
dStartCantlLength
dEndCantlLength
plRetval

X coordinate of the support point at the start of the beam (i-end).


Y coordinate of the support point at the start of the beam (i-end).
Z offset value from the story elevation for the support point at the start of the beam (i-end).
X coordinate of the support point at the end of the beam (j-end).
Y coordinate of the support point at the end of the beam (j-end).
Z offset value from the story elevation for the support point at the end of the beam (j-end).
Cantilever length at the start end of the beam
Cantilever length at the end send of the beam.
0 if successful
-1 if coordinates cannot be set

Properties
Note that some properties that can be set through the ILayoutHorizBrace interface cannot be retrieved. Any property of a horizontal
brace that can vary story-to-story (such as the section label, which corresponds to the brace size) cannot be retrieved through this
interface because the ILayoutHorizBrace interface may represent more than one horizontal brace, not all of which will have the same
assigned size. For example, if a floor type is associated with 3 stories, the corresponding horizontal braces on those stories may
have 3 different assigned sizes. So the section label is one property that cannot be retrieved through the ILayoutHorizBrace
interface. To get the section label for a horizontal brace, use the IHorizBrace interface.

When a property is set through the ILayoutHorizBrace interface, all horizontal braces represented by this interface will be updated.
Type
BOOL

Property
bDblAngleLLBacktoBack

Get

Set
X

BOOL

bDblAngleSnugTightBolt

BOOL
BOOL
BOOL
BOOL

bMajAxisBendFixEnd
bMajAxisBendFixStart
bMinAxisBendFixedEnd
bMinAxisBendFixedStart

X
X
X
X

Description
Applies to a steel horizontal brace that has been assigned a double angle
section. If TRUE, long legs of double angle are back to back. If FALSE, short
legs are back to back.
Applies to a steel horizontal brace that has been assigned a double angle
section. TRUE indicates that only a snug tight connector will be used.
Major axis bending release at end of horizontal brace (j-end).
Major axis bending release at start of horizontal brace (i-end).
Minor axis bending release at end of horizontal brace (j-end).
Minor axis bending release at start of horizontal brace (i-end).

BOOL

bSglAngleLongLegHorizontal

BOOL

bTorFixedEnd

Applies to a steel horizontal brace that has been assigned a single angle
section. TRUE indicates that the long leg of the angle is horizontal. FALSE
indicates that the long leg is vertical.
Torsion release at end of horizontal brace (j-end).

BOOL
double

bTorFixedStart
dDblAngleBackSpacing

ETensionCompressionMemType

eAnalysisType

EMATERIALTYPES

eMaterial

long

lLabel

long

lMaterialID

long

lSectionID

long

lUID

BSTR

strSectionLabel

X
X

Torsion release at start of horizontal brace (i-end).


Spacing distance between angles of double angle section. Applies to a steel
horizontal brace that has been assigned a double angle section.
Indicates whether horizontal brace takes tension, compression, or both
Material type of horizontal brace. Valid options for horizontal braces are
ESteelMat, EConcreteMat, or EOtherMat.
Numeric label of horizontal brace used for on-screen display in RAM
Structural System. It is unique per floor type.
Unique ID of material properties for this horizontal brace. Must correspond to
type of material. See section Getting material properties for a member for
more information.
Unique ID of concrete or Other section assigned to this horizontal brace.
See Assigning section properties to concrete members and Assigning section
properties to Other members for more information.
Unique ID of layout horizontal brace. This unique ID corresponds to the beam
on the top story associated with this floor type, if any.
Label of the size or section property for this horizontal brace. Limited to 15
characters. See Assigning sizes to steel members, Assigning section
properties to concrete members, and Assigning section properties to Other
members for more information.

ILayoutHorizBraces
This interface represents a collection of horizontal braces associated with a floor type. This collection is used to add or delete
horizontal braces on a floor type. (Horizontal braces cannot be added or deleted for a story through the IHorizBraces interface, so
this is the only interface through which horizontal braces can be added or deleted from the model.)

Add ([in] EMATERIALTYPES eMat, [in]double dStartSupportX, [in] double dStartSupportY, [in]double dStartSupportZOffset,
[in]double dEndSupportX, [in]double dEndSupportY, [in]double dEndSupportZOffset, [out, retval] ILayoutHorizBrace**
ppILayoutHorizBrace)
Adds a new layout horizontal brace to the collection of layout horizontal braces for the floor type. Horizontal braces must be defined from
left-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, they will be
reversed.
Parameters
eMat
dStartSupportX
dStartSupportY
dStartSupportZOffset
dEndSupportX
dEndSupportY
dEndSupportZOffset
ppILayoutHorizBrace

Material type of horizontal brace to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat)
X coordinate of the support point at the start of the horizontal brace (i-end).
Y coordinate of the support point at the start of the horizontal brace (i-end).
Z offset value from the story elevation for the support point at the start of the horizontal brace (i-end).
X coordinate of the support point at the end of the horizontal brace (j-end).
Y coordinate of the support point at the end of the horizontal brace (j-end).
Z offset value from the story elevation for the support point at the end of the horizontal brace (j-end).
Pointer to an ILayoutHorizBrace interface that represents the newly added layout horizontal brace.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the layout horizontal brace with the given unique ID, as well as all corresponding horizontal braces on stories associated with the
floor type that the layout horizontal brace is on.
Parameters
lUID
plRetval

Unique ID of layout horizontal brace to delete


0 if layout horizontal brace is deleted successfully
-1 if unique ID is not found in filtered list of layout horizontal braces

Filter ([in] EHorizBraceFilter eHorizBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout horizontal braces based on given criteria.
Parameters
eFilter
varFilterCriteria

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.

plRetval

0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILayoutHorizBrace** ppILayoutHorizBrace)


Gets an interface for a specific layout horizontal brace by unique ID.
Parameters
lUID
ppILayoutHorizBrace

The unique ID of the requested layout horizontal brace


Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace, or NULL if no
layout horizontal brace is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutHorizBrace** ppILayoutHorizBrace)


Gets an interface for a specific layout horizontal brace by index.
Parameters
lIndex
ppILayoutHorizBrace

The index into the collection of the requested layout horizontal brace
Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout horizontal braces in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of layout horizontal braces on the floor type. When the collection is unfiltered, this function returns the total
number of layout horizontal braces on the floor type.
Parameters
plCount

Number of layout horizontal braces in the collection

ILayoutIsolatedFnd
This interface represents a single layout isolated foundation. A layout isolated foundation is an isolated foundation associated with a
floor type. The isolated foundation will exist in the 3D model at the lowest story used by the floor type, unless there is something
below the foundation. If a column or wall is sitting below the isolated foundation, the foundation will be ignored in the 3D model.
This interface can be used to modify the coordinates and properties of a layout isolated foundation.

GetIsolatedFnd ([out, retval] IIsolatedFnd** ppIIsolatedFnd)

Gets an interface for the isolated foundation associated with this layout isolated foundation.
Parameters
ppIIsolatedFnd

Pointer to an IIsolatedFnd interface that represents the isolated foundation at the lowest story associated with this
layout isolated foundation. If no stories are defined for the floor type associated with the layout isolated
foundation, this pointer will be NULL.

GetLayoutCoordinates ([out] double *pdX, [out] double *pdY, [out] double *pdZOffset, [out, retval] long* plRetval)
Gets the coordinates of the layout isolated foundation.
Parameters
pdX
pdY
pdZTopOffset
plRetval

X coordinate of the center of the footing


Y coordinate of the center of the footing
Z offset value from the story elevation for the top of the footing
0 if successful
-1 if coordinates cannot be retrieved

GetReinforcement ([out, retval] SFND_ISO_REINF* pVal)


Gets reinforcement information for isolated footing.
Parameters
pVal

Structure for islolated footing information. See SFND_ISO_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)


Information for isolated foundation reinforment.
Parameters
pVal

Structure for additional reinforment information. See SFND_REINF_OTHER_DATA.

SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZOffset, [out, retval] long* plRetval)
Sets the coordinates of the layout isolated foundation.
Parameters
dX
dY

X coordinate of the center of the footing


Y coordinate of the center of the footing

dZTopOffset
plRetval

Z offset value from the story elevation for the top of the footing
0 if successful
-1 if coordinates cannot be set

Properties
Type
BOOL
double

Property
bDimensionsFromDesign
dBottom

Get
X
X

Set

double

dLeft

double
double

dOrientation
dRight

X
X

X
X

double
double

dThickness
dTop

X
X

X
X

EIsolatedFndType
long

eType
lLabel

X
X

long

lMaterialID

long

lPileConfigurationID

long

lPileID

long

lUID

Description
Indicates whether or not the dimensions returned for the footing are from the design or not
Dimension from center of foundation to bottom edge of footing when footing major axis is parallel
to global X-axis
Dimension from center of foundation to left edge of footing when footing major axis is parallel to
global X-axis
Orientation of foundation
Dimension from center of foundation to right edge of footing when footing major axis is parallel to
global X-axis
Thickness of foundation
Dimension from center of foundation to top edge of footing when footing major axis is parallel to
global X-axis
Type of isolated foundation (i.e. spread footing, pile cap)
Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per
floor type.
Unique ID of material properties for this isolated foundation. Foundations are always concrete.
See section Getting material properties for a member for more information.
ID of pile configuration assigned to this foundation; only applies if eType is EFndPileCap. From
the IModel interface, call GetPileConfiguration() using this ID to get the interface for the pile
configuration associated with this pile cap footing.
ID of pile type assigned to this foundation; only applies if eType is EFndPileCap. From the IModel
interface, call GetPile() using this ID to get the interface for the pile definition associated with this
pile cap footing.
Unique ID of layout foundation.

ILayoutIsolatedFnds
This interface represents a collection of isolated foundations (foundations that sit under a single column) associated with a floor type.
This collection is used to add or delete isolated foundations on a floor type. (Foundations cannot be added or deleted for a story
through the IIsolatedFnds interface, so this is the only interface through which isolated foundations can be added or deleted from the
model.)

Add ([in] EIsolatedFndType eType, [in] double dX, [in] double dY, [in] double dZOffset, [out, retval] ILayoutIsolatedFnd**
ppILayoutIsolatedFnd)

Adds a new layout isolated foundation to the collection of layout isolated foundations for the floor type.
Parameters
eType
dX
dY
dZOffset
ppILayoutIsolatedFnd

Type of isolated foundation (i.e. spread footing, pile cap)


X coordinate of the center of the footing
Y coordinate of the center of the footing
Z offset value from the story elevation for the top of the footing
Pointer to an ILayoutIsolatedFnd interface that represents the newly added layout isolated foundation.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the layout isolated foundation with the given unique ID.
Parameters
lUID
plRetval

Unique ID of layout isolated foundation to delete


0 if layout isolated foundation is deleted successfully
-1 if unique ID is not found in filtered list of layout isolated foundations

Filter ([in] EIsolatedFndFilter eIsolatedFndFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout isolated foundations based on given criteria.
Parameters
eIsolatedFndFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILayoutIsolatedFnd** ppILayoutIsolatedFnd)


Gets an interface for a specific layout isolated foundation by unique ID.
Parameters
lUID
The unique ID of the requested layout isolated foundation
ppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the requested layout isolated foundation, or NULL if no
layout isolated foundation is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutIsolatedFnd** ppILayoutIsolatedFnd)


Gets an interface for a specific layout isolated foundation by index.

Parameters
lIndex
The index into the collection of the requested layout isolated foundation
ppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the requested layout isolated foundation, or NULL if
lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout isolated foundations in the collection. When the collection is filtered, this function returns the number in the
filtered collection, not the total number of layout isolated foundations on the floor type. When the collection is unfiltered, this function
returns the total number of layout isolated foundations on the floor type.
Parameters
plCount

Number of layout isolated foundations in the collection

ILayoutMatFndPerim
Future interface.

ILayoutMatFndPropPoly
Future interface.

ILayoutWall
This interface represents a single layout wall. A layout wall is a wall associated with a floor type. Since a floor type can be
associated with one or more stories, a layout wall may actually represent one or more walls. This interface can be used to modify
the coordinates and properties of a layout wall.

GetAssociatedStoryWalls ([out, retval] IWalls** ppIWalls)


Gets an interface for a collection of story walls associated with this layout wall. Collection may be empty if no stories are associated with
the floor type the layout wall is on.
Parameters

ppIWalls

Pointer to an IWalls interface that represents the collection of story walls associated with this layout wall.

GetLayoutCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdStartZTopOffset, [out]double
*pdStartZBotOffset, [out] double *pdEndX, [out] double *pdEndY, [out] double *pdEndZTopOffset, [out]double *pdEndZBotOffset,
[out, retval] long* plRetval)
Gets the coordinates of the layout wall.
Parameters
pdStartX
pdStartY
pdStartZTopOffset
pdStartZBotOffset
pdEndX
pdEndY
pdEndZTopOffset
pdEndZBotOffset
plRetval

X coordinate of start of the wall (i-end).


Y coordinate of start of the wall (i-end).
Z offset value from the story elevation for start of wall at top (i-end).
Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story
below).
X coordinate of end of the wall (j-end).
Y coordinate of end of the wall (j-end).
Z offset value from the story elevation for the end of the wall at top (j-end).
Z offset value from the story elevation for the end of the wall at bottom (j-end) (measured from the elevation of the
story below).
0 if successful
-1 if coordinates cannot be retrieved

SetLayoutCoordinates ([in] double dStartX, [in] double dStartY, [in] double dStartZTopOffset, [in] double dStartZBotOffset, [in]
double dEndX, [in] double dEndY, [in] double dEndZTopOffset, [in] double dEndZBotOffset, [out, retval] long* plRetval)
Sets the coordinates of the layout wall. Walls must be defined from left-to-right, top-to-bottom. If the coordinates are sent in opposite of the
convention used by the RAM Structural System, they will be reversed.
Parameters
dStartX
dStartY
dStartZTopOffset
dStartZBotOffset
dEndX
dEndY
dEndZTopOffset
dEndZBotOffset
plRetval

X coordinate of start of the wall (i-end).


Y coordinate of start of the wall (i-end).
Z offset value from the story elevation for start of wall at top (i-end).
Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story
below).
X coordinate of end of the wall (j-end).
Y coordinate of end of the wall (j-end).
Z offset value from the story elevation for the end of the wall at top (j-end).
Z offset value from the story elevation for the end of the wall at bottom (j-end) (measured from the elevation of the
story below).
0 if successful
-1 if coordinates cannot be set

Properties
When a property is set through the ILayoutWall interface, all columns represented by this interface will be updated.
Type
double
double
double
EFRAMETYPE
EMATERIALTYPES

Property
dCrackedFactor
dCrackedFactorForBending
dThickness
eFramingType
eMaterial

Get

long
long

lFrameNumber
lLabel

long

lMaterialID

long

lUID

X
X

Set
X
X
X
X
X
X

Description
Membrane cracked factor. Applies if wall is concrete.
Out-of-plane bending cracked factor. Applies if wall is concrete.
Thickness of wall.
Whether member is lateral or gravity
Material type of wall. Valid options for walls are EWallPropConcreteMat or
EWallPropOtherMat.
Frame number for lateral members. Must be positive number.
Numeric label of wall used for on-screen display in RAM Structural System. It is unique per
floor type.
Unique ID of material properties for this wall. Must correspond to type of material. See
section Getting material properties for a member for more information.
Unique ID of layout wall. This unique ID corresponds to the wall on the top story associated
with this floor type, if any.

ILayoutWalls
This interface represents a collection of walls associated with a floor type. This collection is used to add or delete walls on a floor
type. (Walls cannot be added or deleted for a story through the IWalls interface, so this is the only interface through which walls can
be added or deleted from the model.)

Add ([in] EMATERIALTYPES eMat, [in]double dStartX, [in] double dStartY, [in]double dStartZTopOffset, [in]double
dStartZBotOffset, [in]double dEndX, [in]double dEndY, [in]double dEndZTopOffset, [in]double dEndZBotOffset, [in]double
dThickness, [out, retval] ILayoutWall** ppILayoutWall)
Adds a new layout wall to the collection of layout walls for the floor type. Since sloped walls are currently not handled in the RAM Structural
System, only one set of x,y coordinates are used in the definition of each end of the wall. Walls must be defined from left-to-right, top-tobottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, they will be reversed.
Parameters
eMat
dStartX
dStartY
dStartZTopOffset
dStartZBotOffset

Material type of wall to add. (Valid options are EWallPropConcreteMat or EWallPropOtherMat).


X coordinate of start of the wall (i-end).
Y coordinate of start of the wall (i-end).
Z offset value from the story elevation for start of wall at top (i-end).
Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story
below).

dEndX
dEndY
dEndZTopOffset
dEndZBotOffset
dThickness
ppILayoutWall

X coordinate of end of the wall (j-end).


Y coordinate of end of the wall (j-end).
Z offset value from the story elevation for the end of the wall at top (j-end).
Z offset value from the story elevation for the end of the wall at bottom (j-end) (measured from the elevation of the
story below).
Thickness of the wall
Pointer to an ILayoutWall interface that represents the newly added layout wall.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the layout wall with the given unique ID, as well as all corresponding walls on stories associated with the floor type that the layout
wall is on.
Parameters
lUID
plRetval

Unique ID of layout wall to delete


0 if layout wall is deleted successfully
-1 if unique ID is not found in filtered list of layout walls

Filter ([in] EWallFilter eWallFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of layout walls based on given criteria.
Parameters
eWallFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILayoutWall** ppILayoutWall)


Gets an interface for a specific layout wall by unique ID.
Parameters
lUID
ppILayoutWall

The unique ID of the requested layout wall


Pointer to an ILayoutWall interface that represents the requested layout wall, or NULL if no layout wall is found in
the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILayoutWall** ppILayoutWall)


Gets an interface for a specific layout wall by index.

Parameters
lIndex
ppILayoutWall

The index into the collection of the requested layout wall


Pointer to an ILayoutWall interface that represents the requested layout wall, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of layout walls in the collection. When the collection is filtered, this function returns the number in the filtered collection,
not the total number of layout walls on the floor type. When the collection is unfiltered, this function returns the total number of layout walls
on the floor type.
Parameters
plCount

Number of layout walls in the collection

ILineLoadPropertySet
This interface represents a single line load property set as defined in the RAM Modeler.

Properties
Type
double
double
double
double
double
double
ELoadCaseType
long
BSTR

Property
dConstDeadLoad
dConstLiveLoad
dDeadLoad
dLiveLoad
dMassDeadLoad
dPartitionLoad
eLiveLoadType
lUID
strLabel

Get
X
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X

Description
Construction Dead load (positive is down)
Construction Liveload (positive is down)
Dead load magnitude (positive is down)
Live load magnitude (positive is down)
Mass dead load magnitude (positive is down)
Partion load magnitude (positive is down)
The live load case type (MUST BE A LIVE LOAD TYPE)
Unique ID of property set
Label of the property set. Limited to 19 characters.

ILineLoadPropertySets
This interface represents all the line load property sets as defined in the RAM Modeler.

Add ([in] BSTR bstrLabel, [out,retval] ILineLoadPropertySet** ppILineLoadPropSet )


Adds a new line load property set to the collection.

Parameters
bstrLabel
ppILineLoadPropSet

Unique label for the line load property set. Limited to 19 characters.
A pointer to an ILineLoadPropertySet that represents the newly added line load property set

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes a line load property set.
Parameters
lUID
plRetVal

Unique ID of line load property set to delete


0 if line load property set is deleted successfully
-1 if failed. Delete will fail if member is not found or if the line load property set is in use by a line load set.

Get ([in] long lUID, [out, retval] ILineLoadPropertySet** ppILineLoadPropSet)


Gets an interface for a specific line load property set by unique ID.
Parameters
lUID
ppILineLoadPropSet

Unique ID of the requested line load property set


Pointer to an ILineLoadPropertySet interface that represents the requested line load property set, or NULL if no
line load property set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILineLoadPropertySet** ppILineLoadPropSet)


Gets an interface for a specific line load property set by index.
Parameters
lIndex
ppILineLoadPropSet

Index of the requested line load property set


Pointer to an ILineLoadPropertySet interface that represents the requested line load property set, or NULL if
lIndex is invalid.

GetCount([out, retval] long *plCount)


Gets the number of line load property sets in the collection.
Parameters
plCount

Number of line load property sets in the collection

ILineLoadSet
This interface represents a single line load set associated with a floor type. Since a floor type can be associated with one or more
stories, a line load set may actually represent load sets on multiple stories. This interface can be used to modify the location and
properties of a line load set.

Properties
Type
long
long
SCoordinate
SCoordinate

Property
lPropertySetUID
lUID
sCoordinateEnd
sCoordinateStart

Get
X
X
X
X

Set
X
X
X

Description
The UID of the LineLoadPropertySet associated with the line load set
Unique ID of the Line Load Set
Location of end of the line load (only X and Y are used)
Location of start of the line load (only X and Y are used)

ILineLoadSets
This interface represents a collection of line load sets associated with a floor type. This collection is used to add or delete line load
sets on a floor type. A line load set consists of a location and a line load property set. This corresponds to a modeled line load in
RAM Modeler.

Add ([in] long lPropSetID, [in]double dStartX, [in] double dStartY, [in]double dEndX, [in]double dEndY, [out,retval] ILineLoadSet**
ppILineLoadSet )
Adds a new line load set to the collection of line load sets for the floor type.
Parameters
lPropSetID
dStartX
dStartY
dEndX
dEndY
ppILineLoadSet

Unique ID of point load property set associated with this point load set
X coordinate of the start of the line load set
Y coordinate of the start of the line load set
X coordinate of the end of the line load set
Y coordinate of the end of the line load set
Pointer to an ILineLoadSet interface that represents the newly added line load set.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the line load set with the given unique ID.
Parameters
lUID
plRetval

Unique ID of line load set to delete


0 if line load set is deleted successfully

-1 if unique ID is not found in list of point load sets

Get ([in] long lUID, [out, retval] ILineLoadSet** ppILineLoadSet);


Gets an interface for a specific point load set by index.
Parameters
lUID
ppILineLoadSet

Unique ID of the requested line load set


Pointer to an ILineLoadSet interface that represents the requested line load set, or NULL if no line load set is found in
the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ILineLoadSet** ppILineLoadSet);


Gets an interface for a specific line load set by index.
Parameters
lIndex
ppILineLoadSet

The index into the collection of the requested line load set
Pointer to an ILineLoadSet interface that represents the requested line load set, or NULL if lIndex is invalid.

GetCount([out, retval] long *plCount)


Gets the number of line load sets in the collection.
Parameters
plCount

Number of line load sets in the collection

ILoadCase
This interface represents a single load case definition.

GetPrimaryLoadCases ([out,retval] ILoadCases** ppILoadCases)


Gets the collection of load cases that comprise this load case.
Parameters
ppILoadCases

Properties

Pointer to an ILoadCases collection interface that represents the load cases that comprise this load case.

Type
BOOL

Property
bConcShearWallSelected

Get
X

BOOL
double

bReadOnly
dDirCoeffX

X
X

double

dDirCoeffY

double

dLoadCaseAngle

double
double

dRhomax
dUBCRho

X
X

EStateStatus
ECompoundLoadCaseState
EMergeState

eAnalyzedState
eCompoundState
eLdCaseMergeState

X
X
X

ELoadCaseType

eLoadType

ELoadCaseType
ESubLoadCaseType
long
long
long
long
long
long
BSTR

eNotionalLoadType
eSubLoadType
lAnalyzeNo
lDirCoeffX
lDirCoeffY
lLoadType
lSubLoadType
lUID
strLoadCaseGroupLabel

X
X
X
X
X
X
X
X
X

BSTR
BSTR

strSymbol
strTypeLabel

X
X

Set
X

Description
Whether the load case selected for use in concrete shear wall load
combinations. TRUE = selected.
Whether the properties of this load case can be modified
Directional coefficient of load case for x component of the force associated
with the load case. This is used by the load combo generator.
1.0 = force in the positive x direction.
0.0 = no force in the x direction.
-1.0 = force in the negative x direction.
Directional coefficient of load case for y component of the force associated
with the load case. This is used by the load combo generator.
1.0 = force in the positive y direction.
0.0 = no force in the y direction.
-1.0 = force in the negative y direction.
Angle of the shear force at the base level of the structure. This angle is used
to calculate the components of the notional load case when used in
combination in the direction of other lateral load cases.
r max associated with controlling rho
Redundancy factor calculated for the load case. This is only relevant for
seismic load cases.
Whether Load Case is analyzed/current
Whether this is merged/compound load case (made up of other load cases)
Flag describing the merged state of the load case (single, merged or
included in a merged case).
One of main load types: Gravity, Wind, Seismic, Dynamic Hyperstatic,
Virtual, Other
Notional load case type
Depending on load type defines more details of the actual type of load case.

Unique ID of load case


The label assigned to the load case at the top of the load case generator
dialog, applies to one or more load cases. Limited to 15 characters.
The load case symbol (1-3chars) for reports/combos
The generated name for the specific load case depending on user options
during generation. When used together with strLoadCaseGroupLabel it
uniquely identifies this load case.

ILoadCases
This interface represents a collection of load cases.

Filter ([in] ELoadCaseFilter eLoadCaseFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of load combinations based on given criteria.
Parameters
eLoadCaseFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] ILoadCase** ppILoadCase)


Gets an interface for a specific load case by unique ID.
Parameters
lUID
ppILoadCase

Unique ID of requested load case


Pointer to an ILoadCase interface that represents the requested load case, or NULL if no load case with given
unique ID is found in the collection.

GetAt ([in] long lIndex, [out, retval] ILoadCase** ppILoadCase)


Gets an interface for a specific load case by index.
Parameters
lIndex
ppILoadCase

The index into the collection of the requested load case


Pointer to an ILoadCase interface that represents the requested load case, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of load cases in the collection.
Parameters
plCount

Number of load cases in the collection

ILoadCombination
This interface represents a single load combination definition.

CalculateForce ([in] IMemberForces *pILoadCaseForces, [out,retval] IMemberForce** ppIMemberForce)


Calculates the combined force based on the terms in the receiving load combination and the given list of load case forces.
Parameters
pILoadCaseForces
ppIMemberForce

The list of load case force to combine based on the terms of the receiver.
The calculated combined member force.

GetLoadCombinationTerms ([out,retval] ILoadCombinationTerms** ppILoadComboTerms)


Gets the collection of load combination terms for the load combination.
Parameters
ppILoadComboTerms Pointer to an ILoadCombinationTerms collection interface that represents the load combination terms for this load
combination.

Properties
Type
BOOL
BOOL
EStateStatus
ECombinationSourceType
long
BSTR

Property
bReadOnly
bSelected
eStatus
eType
lLabelNo
strDisplayString

Get
X
X
X
X
X
X

Set
X

Description
Whether this load combination can be modified or not
User has selected this load combination to be considered
Combination is valid (all load cases/factors exist in analyzed state)
Custom or Generated
The label of the load combination as shown in the load combo dialog
The combination string formatted for display

ILoadCombinationParam
This interface provides access to the parameters used to generate a specific set of load combinations.

GetParamsForControl1 ([out,retval] ILoadComboParamsCntrl1** ppIParamsCntrl1)


Returns a pointer to an ILoadComboParamsCntrl1 interface.
Parameters
ppIParamsCntrl1

Pointer to an ILoadComboParamsCntrl1 interface that contains the control 1 parameters used to generate a specific

set of load combinations.

GetParamsForControl3 ([out,retval] ILoadComboParamsCntrl3** ppIParamsCntrl3)


Returns a pointer to an ILoadComboParamsCntrl1 interface.
Parameters
ppIParamsCntrl3

Pointer to an ILoadComboParamsCntrl3 interface that contains the control 3 parameters used to generate a specific
set of load combinations.

Properties
Type
BOOL
BOOL

Property
bCntl4LCaseSpcSetting
bCntl4UseOnly

Get
X
X

double
double
COMBO_MATERIAL_TYPE

dCntl4LCaseSpc1
dCntl4LCaseSpc2
eCombinationType

X
X
X

long
long
long
long
BSTR

nComboBox2Index
nComboBox5Index
nNumVarsFor2
nNumVarsFor5
strComboTemplateName

X
X
X
X
X

Set

Description
The radio button selection for control 4. TRUE = Use Calculated
Indicates whether the selected code has calculated values associated with it. If this
bCntrl4UseOnly = FALSE, the Use Calculated radio button selection is grayed out.
First value associated with control 4.
Second value associated with control 4.
The type of combination parameters are requested for. Note that parameters are only
saved for code generated combinations.
Index of the selection for control 2 (drop-down combo box)
Index of the selection for control 5 (drop-down combo box)
Number of possible variables associated with each drop-down selection in control 2.
Number of possible variables associated with each drop-down selection in control 5.
Name of the template for which combinations were generated. This string must match
the NAME: entry in the combo template.

ILoadCombinationParams
This interface represents a collection of ILoadCombinationParam objects.

Add ([in] BSTR bstrTemplateName, [in] long nComboBox2Index, [in] long nNumVarsFor2, [in] long nComboBox5Index, [in] long
nNumVarsFor5, [in] BOOL bCntl4UseOnly, [in] BOOL bCntl4LCaseSpcSetting, [in] double dCntl4LCaseSpc1, [in] double
dCntl4LCaseSpc2, [out,retval] ILoadCombinationParam** ppIComboParams)
Adds a new load combination param to the receiver.
Parameters
bstrTemplateName

Name of the template for which combinations were generated. This string must match the NAME: entry in
the combo template.

nComboBox2Index
nNumVarsFor2
nComboBox5Index
nNumVarsFor5
bCntl4UseOnly
bCntl4LCaseSpcSetting
dCntl4LCaseSpc1
dCntl4LCaseSpc2
ppIComboParams

Index of the selection for control 2 (drop-down combo box)


Number of possible variables associated with each drop-down selection in control 2.
Index of the selection for control 5 (drop-down combo box)
Number of possible variables associated with each drop-down selection in control 5.
Indicates whether the selected code has calculated values associated with it. If this bCntrl4UseOnly =
FALSE, the Use Calculated radio button selection is grayed out.
The radio button selection for control 4. TRUE = Use Calculated
First value associated with control 4.
Second value associated with control 4.
Pointer to an ILoadCombinationParam interface that represents the newly added load combination
param.

Clear ()
Deletes all load combination params from the collection.

Delete ([in] long lUID)


Delete a load combination param from the collection for the specified unique ID.
Parameters
lUID

Unique ID of the laod combination param being deleted

Get ([in] COMBO_MATERIAL_TYPE eCombinationType, [out,retval] ILoadCombinationParam** ppIComboParams)


Gets an interface for a specific load combination param by combination type.
Parameters
eCombinationType
ppIComboParams

The combination type of the requested load combination param.


Pointer to an ILoadCombinationParam interface that represents the requested load combination param, or NULL if
no load combination param is found in the collection with the given combination type.

GetAt ([in] long lIndex, [out, retval] ILoadCombinationParam ** ppIComboParams)


Gets an interface for a specific load combination param by index.
Parameters
lIndex
ppIComboParams

The index in the collection the requested load combination param.


Pointer to an ILoadCombinationParam interface that represents the requested load combination param, or
NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of load combination params in the receiver.
Parameters
plCount

The number of ILoadCombinationParam objects in the collection.

ILoadCombinations
This interface represents a collection of load combinations.

Add ( [out, retval] ILoadCombination** ppILoadCombination)


Adds a new load combination to the end of the collection.
Parameters
ppILoadCombination

A pointer to an ILoadCombination that represents the newly added load combination

Clear ()
Deletes all load combinations in the collection.

DeleteAt ([in] long lIndex, [out, retval] long *plRetVal)


Deletes a load combination in the collection at the specified index.
Parameters
lIndex
plRetVal

Index at which to delete term


0 if deleted successfully

Filter ([in] ELoadCombinationFilter eLoadCombinationFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of load combinations based on given criteria.
Parameters
eLoadCombinationFilter Indicates the type of filter to use on the collection (see table below for filter types)
varFilterCriteria
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.

plRetval

0 if successful
-1 if collection could not be filtered

GetAt ([in] long lIndex, [out, retval] ILoadCombination** ppILoadCombination)


Gets an interface for a specific load combination by index.
Parameters
lIndex
ppILoadCombination

The index into the collection of the requested load combination


Pointer to an ILoadCombination interface that represents the requested load combination, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of load combinations in the collection.
Parameters
plCount

Number of load combinations in the collection

MSIWorkaround_ILoadComboInternal_DO_NOT_CALL ()
Internal use only.

ILoadCombinationTerm
This interface represents a single load combination term.

Properties
Type
double
long
long

Property
dFactor
lLoadCaseID
lLoadCaseIndex

Get
X
X
X

Set

Description
Factor to apply to the load case
The Unique ID of the load case
Index of the load case into the load case array.

ILoadCombinationTerms
This interface represents a collection of load combination terms for a single load combination. As of v10, the program has a
limitation of 5 load combination terms per load combination.

Add ([in] double dFactor, [in] long lLoadCaseUID, [out, retval] ILoadCombinationTerm** ppILoadCombinationTerm)
Adds a new load combination term to the end of the collection.
Parameters
dFactor
Factor to apply to the load case
lLoadCaseUID
The Unique ID of the load case for this load combination term
ppILoadCombinationTerm A pointer to an ILoadCombinationTerm that represents the newly added load combination term

AddWithIndex ([in] double dFactor, [in] long lLoadCaseUID, [in] long lLoadCaseIndex, [out, retval] ILoadCombinationTerm**
ppILoadCombinationTerm)
Adds a new load combination term with the given load case index to the end of the collection.
Parameters
dFactor
Factor to apply to the load case
lLoadCaseUID
The Unique ID of the load case for this load combination term
ppILoadCombinationTerm A pointer to an ILoadCombinationTerm that represents the newly added load combination term

DeleteAt ([in] long lIndex, [out, retval] long *plRetVal)


Deletes a load combination term in the collection at the specified index.
Parameters
lIndex
plRetVal

Index at which to delete term


0 if deleted successfully

GetAt ([in] long lIndex, [out, retval] ILoadCombinationTerm** ppILoadCombinationTerm)


Gets an interface for a specific load combination term by index.
Parameters
lIndex
The index into the collection of the requested load combination term
ppILoadCombinationTerm Pointer to an ILoadCombinationTerm interface that represents the requested load combination term, or NULL if
lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of load combination terms in the collection.


Parameters
plCount

Number of load combination terms in the collection

InsertAt ([in] long lIndex, [in] double dFactor, [in] long lLoadCaseUID, [out, retval] ILoadCombinationTerm**
ppILoadCombinationTerm)
Adds a new load combination term to the collection at the specified index.
Parameters
lIndex
dFactor
lLoadCaseUID
ppILoadCombinationTerm

Index at which to add new term


Factor to apply to the load case
The Unique ID of the load case for this load combination term
A pointer to an ILoadCombinationTerm that represents the newly added load combination term

ILoadComboInternal
Internal use only.

ILoadComboParamCntrl1
Variable names and values associated with control 1 of the load combination generator. At this time, any set of generated load
combinations can have at most 10 control 1 parameters.

Properties
Type
double
long
BSTR

Property
dVarValue
lParamID
strVarName

Get
X
X
X

Set

Description
Value of the parameter.
ID that associates the control 1 parameter back to the ILoadCombinationParam
Variable name associated with this parameter value. This is the variable displayed by the load combo generator in the
control 1 grid.

ILoadComboParamCntrl3
Display strings and check box states associated with control 3 of the load combination generator. At this time, any set of generated
load combinations can have at most 10 control 3 parameters.

Properties
Type
BOOL
long
BSTR

Property
bVarValue
lParamID
strVarName

Get
X
X
X

Set
X
X

Description
State of the check box. TRUE = Checked.
ID that associates the control 1 parameter back to the ILoadCombinationParam
String displayed beside the check box in the load combo generator control 3 grid.

ILoadComboParamsCntrl1
This interface represents a collection of ILoadComboParamCntrl1 objects.

Add ([in]BSTR bstrVarName, [in]double dVarValue, [out, retval] ILoadComboParamCntrl1 **ppIParamCntrl1)


Adds a new control 1 load combination param to the receiver.
Parameters
bstrVarName
dVarValue
ppIParamCntrl1

Variable name associated with this parameter value. This is the variable displayed by the load combo
generator in the control 1 grid.
Value of the parameter.
Pointer to an ILoadComboParamCntrl1 interface that represents the newly added control 1 load
combination param.

Clear ()
Deletes all control 1 load combination params from the collection.

Delete ([in] long lIndex)


Deletes a control 1 load combination param from the collection at the specified index.
Parameters
lIndex

The index in the collection for the requested control 1 load combination param.

GetAt ([in] long lIndex, [out, retval] ILoadComboParamCntrl1** ppIParamCntrl1)


Gets an interface for a specific control 1 load combination param by index.
Parameters

lIndex
ppIParamCntrl1

The index in the collection the requested control 1 load combination param.
Pointer to an ILoadComboParamCntrl1 interface that represents the requested control 1 load combination
param, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of control 1 load combination params in the receiver.
Parameters
plCount

The number of ILoadComboParamCntrl1 objects in the collection.

ILoadComboParamsCntrl3
This interface represents a collection of ILoadComboParamCntrl3 objects.

Add ([in]BSTR bstrVarName, [in] BOOL bVarValue, [out, retval] ILoadComboParamCntrl3** ppIParamCntrl3)
Adds a new control 3 load combination param to the receiver.
Parameters
bstrVarName
bVarValue
ppIParamCntrl3

String displayed beside the check box in the load combo generator control 3 grid.
State of the check box. TRUE = Checked.
Pointer to an ILoadComboParamCntrl3 interface that represents the newly added control 3 load
combination param.

Clear ()
Deletes all control 3 load combination params from the collection.

Delete ([in] long lIndex)


Deletes a control 3 load combination param from the collection at the specified index.
Parameters
lIndex

The index in the collection for the requested control 3 load combination param.

GetAt ([in] long lIndex, [out, retval] ILoadComboParamCntrl3** ppIParamCntrl3)

Gets an interface for a specific control 3 load combination param by index.


Parameters
lIndex
ppIParamCntrl3

The index in the collection the requested control 1 load combination param.
Pointer to an ILoadComboParamCntrl3 interface that represents the requested control 3 load combination
param, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of control 3 load combination params in the receiver.
Parameters
plCount

The number of ILoadComboParamCntrl3 objects in the collection.

IMatFndPerim
Future interface.

IMatFndPropPoly
Future interface.

IMemberForce
This interface represents a single member force.

Properties
Type
double
double

Property
dAxial
dLocation

Get
X
X

double
double
double
double
double

dMomentMajor
dMomentMinor
dShearMajor
dShearMinor
dTorsion

X
X
X
X
X

Set

Description
Axial force (kip) Positive is compression. FZ for reactions.
Normalized location along member (0.0-1.0) where force is applied (N/A for section cuts and
reactions).
Moment about the minor axis (in direction of major axis)*. MXX for global reactions.
Moment about the major axis (in direction of minor axis)*. MYY for global reactions.
Shear in direction of Major axis of member*. FX for reactions.
Shear in direction of Minor axis of member*. FY for reactions.
Torsion about the longitudinal axis of the member*. MZZ for reactions.

Type
long

Property
lLoadCaseID

Get
X

Set

Description
Unique ID analysis load case responsible for this force

* For sign convention refer to the RAM SS manual or the documentation for IForces later in this document.

IMemberForces
This interface represents the collection of forces in a member.

Get ([in] long lLoadCaseID, [out, retval] IMemberForce** ppIMemberForce)


Gets an interface for a specific member force by load case ID.
Parameters
lLoadCaseID
ppIMemberForce

The load case ID of the requested member force (0 to Count -1 )


Pointer to an IMemberForce interface that represents the requested member force, or NULL if lIndex is
invalid.

GetAt ([in] long lIndex, [out, retval] IMemberForces** ppIMemberForces)


Gets an interface for a specific member force by index.
Parameters
lIndex
ppIMemberForce

The index into the collection of the requested member force (0 to Count -1 )
Pointer to an IMemberForce interface that represents the requested member force, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of member forces in the collection.
Parameters
plCount

Number of member forces in the collection

IModel
The IModel interface is the highest level in the hierarchy of interfaces. It represents the RAM Structural System model. Entities such
as section definitions and floor types that are global to the model can be accessed through this interface. Other entities, such as
decks or beams, which belong to a specific floor type, can be accessed through this interface using the entitys unique ID.

ClearOldSWResults ([in] BOOL bClearForces, [in] BOOL bClearResults)


Deletes Shear Wall results. This is designed to be used after a model is converted, and is called automatically by RAM Structural System; it
should not be called by external programs.
Parameters
bClearForces
bClearResults

Flag that indicates whether Shear Wall forces should be cleared.


Flag that indicates whether other Shear Wall results should be clear.

ClearSWData ([in] BOOL bIncludeSettings)


Clear all RAM Concrete Shear Wall-releated data from the model. You must call this (with bIncludeSettings set to FALSE) any time you
modify the geometry of the model using RAM Data Access. (This requirement will go away in a future release.)
Parameters
bIncludeSettings

Flag that indicates whether settings (criteria) should also be cleared.

GetBeam ([in] long lUID, [out, retval] IBeam** ppIBeam )


Gets an interface for a beam.
Parameters
lUID
ppIBeam

Unique ID of beam to retrieve


Pointer to an IBeam interface that represents the requested beam

GetColumn ([in] long lUID, [out, retval] IColumn** ppIColumn )


Gets an interface for a column.
Parameters
lUID
ppIColumn

Unique ID of column to retrieve


Pointer to an IColumn interface that represents the requested column

GetColumnStack ([in] long lColumnID, [out, retval] IColumnStack** ppIColumnStack)

Gets an interface for a column stack given the unique ID of any column in the stack.
Parameters
lColumnID
ppIColumnStack

Unique ID of column for which to retrieve column stack


Pointer to an IColumnStack interface that represents the requested column stack

GetCompositeDeckProp ([in] long lUID, [out, retval] ICompDeckProp** ppICompDeckProp)


Gets an interface for a specific composite deck property.
Parameters
lUID
ppICompDeckProp

Unique ID of composite deck property to retrieve


Pointer to an ICompDeckProp interface that represents the requested composite deck property

GetCompositeDeckProps ([out, retval] ICompDeckProps** ppICompDeckProps)


Gets the collection of all composite deck properties defined for this model.
Parameters
ppICompDeckProps Pointer to an ICompDeckProps collection interface that represents all composite deck properties defined in the
model

GetConcreteCriteria ([out, retval] IConcreteCriteria** ppIConcreteCriteria )


Gets an interface for the concrete criteria applied to the model.
Parameters
ppIConcreteCriteria

Pointer to an IConcreteCriteria interface that represents all concrete criteria for the model

GetConcreteMaterial ([in] long lUID, [out, retval] IConcreteMaterial** ppIConcreteMaterial)


Gets an interface for a specific concrete material property set.
Parameters
lUID
ppIConcreteMaterial

Unique ID of concrete material property set to retrieve


Pointer to an IConcreteMaterial interface that represents the requested concrete material property set

GetConcreteSectionProp ([in] long lUID, [out, retval] IConcSectProp** ppIConcSectProp)


Gets an interface for a specific concrete section property.

Parameters
lUID
ppIConcSectProp

Unique ID of concrete section property to retrieve


Pointer to an IConcSectProp interface that represents the requested concrete section property

GetConcreteSectionProps ([out, retval] IConcSectProps** ppIConcSectProps)


Gets the collection of all concrete section properties for this model.
Parameters
ppIConcSectProps

Pointer to an IConcSectProps collection interface that represents all concrete section properties defined in the model

GetConcreteSlabProp ([in] long lUID, [out, retval] IConcSlabProp** ppIConcSlabProp)


Gets an interface for a specific concrete slab property.
Parameters
lUID
ppIConcSlabProp

Unique ID of concrete deck property to retrieve


Pointer to an IConcSlabProp interface that represents the requested concrete slab property

GetConcreteSlabProps ([out, retval] IConcSlabProps** ppIConcreteSlabProps)


Gets the collection of all concrete slab properties defined for this model.
Parameters
ppIConcSlabProps

Pointer to an IConcSlabProps collection interface that represents all concrete slab properties defined in the model

GetConcShearWallCriteria ([out,retval] IConcShearWallCriteria** ppIConcShearWallCriteria)


Gets an interface for Shear Wall criteria in the model.
Parameters
ppIConcShearWallCriteria Pointer to an IConcShearWallCriteria interface that represents the RAM Concrete Shear Wall criteria for the
model.

GetContinuousFnd ([in] long lUID, [out, retval] IContinuousFnd** ppIContinuousFnd )


Gets an interface for a continuous foundation.
Parameters
lUID

Unique ID of continuous foundation to retrieve

ppIContinuousFnd

Pointer to an IContinuousFnd interface that represents the requested continuous foundation

GetCouplingBeamCriteria ([out, retval] ICouplingBeamCriteria** ppICouplingBeamCriteria)


Gets an interface to the the global coupling beam criteria.
Parameters
ppICouplingBeamCriteria Pointer to an ICouplingBeamCriteria interface that represents the global coupling beam criteria.

GetDeck ([in] long lUID, [out, retval] IDeck** ppIDeck)


Gets an interface for a deck definition.
Parameters
lUID
ppIDeck

Unique ID of deck definition to retrieve


Pointer to an IDeck interface that represents the requested deck definition

GetFloorType ([in] long lUID, [out, retval] IFloortype** ppIFloorType)


Gets an interface for a specific floor type.
Parameters
lUID
ppIFloorType

Unique ID of floor type to retrieve


Pointer to an IFloortype interface that represents requested floor type

GetFloorTypes ([out, retval] IFloorTypes** ppIFloorTypes)


Gets the collection of all floor types in the model, even those that may not be used by any stories.
Parameters
ppIFloorTypes

Pointer to an IFloorTypes collection interface that represents all floor types in the model

GetFrameAnalysisCriteria ([out, retval] IFrameAnalysisCriteria** ppIFrameAnalysisCriteria)


Gets an interface for the frame analysis criteria applied to the model.
Parameters
ppIFrameAnalysisCriteria Pointer to an IFrameAnalysisCriteria interface that represents the frame analysis criteria for the model

GetGenericTable ([in] BSTR bstrTableName, [out, retval] ITable **ppITable)

Gets an interface to a generic data table. Generic tables can be used to hold any arbitrary data.
Parameters
bstrTableName
ppITable

The name of the data table.


Pointer to an ITable interface that represents the generic table.

GetGridSystem ([in] long lUID, [out, retval] IGridSystem** ppIGridSystem )


Gets an interface for a grid system.
Parameters
lUID
ppIGridSystem

Unique ID of grid system to retrieve


Pointer to an IGridSystem interface that represents the requested grid system

GetGridSystems ([out, retval] IGridSystems** ppIGridSystems)


Gets the collection of all grid systems defined for this model.
Parameters
ppIGridSystems

Pointer to an IGridSystems collection interface that represents all grid systems defined in the model

GetHorizBrace ([in] long lUID, [out, retval] IHorizBrace** ppIHorizBrace)


Gets an interface for a horizontal brace.
Parameters
lUID
ppIHorizBrace

Unique ID of horizontal brace to retrieve


Pointer to an IHorizBrace interface that represents the requested horizontal brace

GetIsolatedFnd ([in] long lUID, [out, retval] IIsolatedFnd** ppIIsolatedFnd )


Gets an interface for an isolated foundation.
Parameters
lUID
ppIIsolatedFnd

Unique ID of isolated foundation to retrieve


Pointer to an IIsolatedFnd interface that represents the requested isolated foundation

GetLayoutBeam ([in] long lUID, [out, retval] ILayoutBeam** ppILayoutBeam )

Gets an interface for a layout beam.


Parameters
lUID
ppILayoutBeam

Unique ID of layout beam to retrieve


Pointer to an ILayoutBeam interface that represents the requested layout beam

GetLayoutColumn ([in] long lUID, [out, retval] ILayoutColumn** ppILayoutColumn)


Gets an interface for a layout column.
Parameters
lUID
ppILayoutColumn

Unique ID of layout column to retrieve


Pointer to an ILayoutColumn interface that represents the requested layout column

GetLayoutContinuousFnd ([in] long lUID, [out, retval] ILayoutContinuousFnd** ppILayoutContinuousFnd)


Gets an interface for a layout continuous foundation.
Parameters
lUID
Unique ID of layout continuous foundation to retrieve
ppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation

GetLayoutHorizBrace ([in] long lUID, [out, retval] ILayoutHorizBrace** ppILayoutHorizBrace)


Gets an interface for a layout horizontal brace.
Parameters
lUID
ppILayoutHorizBrace

Unique ID of layout horizontal brace to retrieve


Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace

GetLayoutIsolatedFnd ([in] long lUID, [out, retval] ILayoutIsolatedFnd** ppILayoutIsolatedFnd)


Gets an interface for a layout isolated foundation.
Parameters
lUID
Unique ID of layout isolated foundation to retrieve
ppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the requested layout isolated foundation

GetLayoutMatFndPerim ([in] long lUID, [out, retval] ILayoutMatFndPerim** ppILayoutMatFndPerim)

Gets an interface for a layout mat foundation perimeter.


Parameters
lUID
Unique ID of the mat foundation perimeter to retrieve
ppILayoutMatFndPerim Pointer to an ILayoutMatFndPerim interface that represents the requested layout mat foundation
perimeter

GetLayoutMatFndPropPolygon ([in] long lUID, [out, retval] ILayoutMatFndPropPolygon** ppILayoutMatFndPropPolygon)


Gets an interface for a layout mat foundation property polygon.
Parameters
lUID
Unique ID of the mat foundation property polygon to retrieve
ppILayoutMatFndPropPolygon Pointer to an ILayoutMatFndPropPolygon interface that represents the requested layout
mat foundation property polygon

GetLayoutWall ([in] long lUID, [out, retval] ILayoutWall** ppILayoutWall)


Gets an interface for a layout wall.
Parameters
lUID
ppILayoutWall

Unique ID of layout wall to retrieve


Pointer to an ILayoutWall interface that represents the requested layout wall

GetLineLoadPropertySets ([out, retval] ILineLoadPropertySets** ppLineLoadPropertySets)


Gets the collection of all line load property sets for this model. Line load property sets are associated with line load sets.
Parameters
ppLineLoadPropertySets Pointer to an ILineLoadPropertySets collection interface that represents all line load property sets defined in the
model

GetLoadCases ([in] EAnalysisResultType eAnalysisType, [out, retval] ILoadCases** ppILoadCases)


Gets a collection interface of all load cases for a specific analysis type.
Parameters
eAnalysisType
ppILoadCases

Type of anlaysis for which to get load cases. As of v10.0, only implemented for RAMFrameResultType
Pointer to an ILoadCases collection interface that represents load cases for specified analysis type

GetLoadCombinations ([in] COMBO_MATERIAL_TYPE eCombinationsType, [out, retval] ILoadCombinations**


ppILoadCombinations)
Gets a collection interface of all load combinations for a specific load combo type.
Parameters
eCombinationsType
Type of load combinations to get
ppILoadCombinations Pointer to an ILoadCombinations collection interface that represents load combinations for specified combo type

GetLoadComboParameters [in] COMBO_MATERIAL_TYPE eCombinationsType, [out,retval] ILoadCombinationParams**


ppILoadComboParams)
Gets an interface load combination parameters in the model.
Parameters
eCombinationsType

Indicates the load combination type (generated soil, custom concrete). See COMBO_MATERIAL_TYPE for list
of options.
ppILoadComboParams Pointer to an ILoadCombinationParams interface that represents the load combinations parameters for the model.

GetMatFndPerimeter ([in] long lUID, [out, retval] IMatFndPerim** ppIMatFndPerim)


Gets an interface for a mat foundation perimeter.
Parameters
lUID
ppIMatFndPerim

Unique ID of the mat foundation perimeter to retrieve


Pointer to an IMatFndPerim interface that represents the requested mat foundation perimeter

GetMatFndPropPolygon ([in] long lUID, [out, retval] IMatFndPropPolygon** ppIMatFndPropPolygon)


Gets an interface for a layout mat foundation property polygon.
Parameters
lUID
Unique ID of the mat foundation property polygon to retrieve
ppItMatFndPropPolygon Pointer to an IMatFndPropPolygon interface that represents the requested mat foundation
property polygon

GetNonCompDeckProp ([in] long lUID, [out, retval] INonCompDeckProp** ppINonCompDeckProps)


Gets an interface for a specific non-composite deck property.

Parameters
lUID
Unique ID of non-composite deck property to retrieve
ppINonCompDeckProps Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property

GetNonCompDeckProps ([out, retval] INonCompDeckProps** ppINonCompDeckProps)


Gets the collection of all non-composite deck properties defined for this model.
Parameters
ppINonCompDeckProps Pointer to an INonCompDeckProps collection interface that represents all non-composite deck properties defined
in the model

GetOldSWResultsDeletedFlag ()
Internal use only.

GetOtherMaterial ([in] long lUID, [out, retval] IOtherMaterial** ppIOtherMaterial)


Gets an interface for a specific Other material property set.
Parameters
lUID
ppIOtherMaterial

Unique ID of Other material property set to retrieve


Pointer to an IOtherMaterial interface that represents the requested Other material property set

GetOtherSectionProp ([in] long lUID, [out, retval] IOtherSectProp** ppIOtherSectProp)


Gets an interface for a specific Other section property.
Parameters
lUID
ppIOtherSectProp

Unique ID of Other section property to retrieve


Pointer to an IOtherSectProp interface that represents the requested Other section property

GetOtherSectionProps ([out, retval] IOtherSecProps** ppIOtherSectProps)


Gets the collection of all section properties of material type Other for this model.
Parameters
ppIOtherSectProps Pointer to an IOtherSectionProps collection interface that represents all Other section properties defined in the model

GetPile ([in] long lUID, [out, retval] IPile** ppIPile)

Gets an interface for a pile definition.


Parameters
lUID
ppIPile

Unique ID of pile definition to retrieve


Pointer to an IPile interface that represents the requested pile

GetPileConfiguration ([in] long lUID, [out, retval] IPileConfiguration** ppIPileConfiguration)


Gets an interface for a pile configuration definition.
Parameters
lUID
ppIPileConfiguration

Unique ID of pile configuration definition to retrieve


Pointer to an IPileConfiguration interface that represents the requested pile configuration

GetPileConfigurations ([out, retval] IPileConfigurations** ppIPileConfigurations)


Gets the collection of all pile configuration definitions for this model. Pile configurations can be associated with pile caps.
Parameters
ppIPileConfigurations Pointer to an IPileConfigurations collection interface that represents all pile configurations defined in the model

GetPiles ([out, retval] IPiles** ppIPiles)


Gets the collection of all pile definitions for this model. Piles can be associated with pile caps.
Parameters
ppIPiles

Pointer to an IPiles collection interface that represents all piles defined in the model

GetPointLoadPropertySets ([out,retval] IPointLoadPropertySets** ppPointLoadPropertySets)


Gets the collection of all point load property sets for this model. Point load property sets are associated with point load sets.
Parameters
ppPointLoadPropertySets Pointer to an IPointLoadPropertySets collection interface that represents all point load property sets defined in
the model

GetRAMFrameCriteria ([out,retval] IRAMFrameCriteria** ppIRAMFrameCriteria)


Gets the RAM Frame criteria for the model. 5.03.

Parameters
ppIRAMFrameCritieria Pointer to an IRAMFrameCriteria interface that represents the RAM Frame criteria defined in the model

GetRawWallOpening ([in] long lUID, [out, retval] IRawWallOpening** ppIRawWallOpening)


Gets an interface for a raw wall opening.
Parameters
lUID
ppIRawWallOpening

Unique ID of wall opening to retrieve


Pointer to an IRawWallOpening interface that represents the requested wall opening

GetRawWallSectionCut ([in] long lUID, [out, retval] IRawWallSectionCut** ppIRawWallSectionCut)


Gets an interface for a raw wall section cut.
Parameters
lUID
Unique ID of wall section cut to retrieve
ppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested wall section cut

GetRawWallSectionCuts ([out, retval] IRawWallSectionCuts** ppIRawWallSectionCuts)


Gets a collection interface of all raw wall section cuts for the model, not just for an individual wall.
Parameters
ppIRawWallSectionCuts Pointer to an IRawWallSectionCuts collection interface that represents all raw wall section cuts in the model.

GetSlabOpening ([in] long lUID, [out, retval] ISlabOpening** ppISlabOpening)


Gets an interface for a slab opening.
Parameters
lUID
ppISlabOpening

Unique ID of slab opening to retrieve


Pointer to an ISlabOpening interface that represents the requested slab opening

GetSlabPerimeter ([in] long lUID, [out, retval] ISlabPerimeter** ppISlabPerimeter)


Gets an interface for a slab perimeter.
Parameters
lUID
ppISlabPerimeter

Unique ID of slab perimeter to retrieve


Pointer to an ISlabPerimeter interface that represents the requested slab perimeter

GetSnowLoadPropertySet ([in] LONG lUID, [out, retval] ISnowLoadPropertySet **ppISnowLoadPropertySet)


Gets an interface to the collection of steel column trial groups.
Parameters
lUID
Unique ID for the snow load property
ppISnowLoadPropertySet Pointer to an ISnowLoadPropertySet interface that represents the snow load property

GetSnowLoadPropertySets [out, retval] ISnowLoadPropertySets **ppISnowLoadPropertySets)


Gets an interface to the collection of snow load property sets in the model.
Parameters
ppISnowLoadPropertySets Pointer to an ISnowLoadPropertySets interface that represents the snow load property
sets in the model.

GetSteelColumnTrialGroups ([in] BOOL bHangingColumn, [out, retval] ITrialGroups** ppITrialGroups)


Gets an interface to the collection of steel column trial groups.
Parameters
bHangingColumn
1 for hanging column trial groups and 0 for standard columns
ppILoadComboParams Pointer to an ITrialGroups interface that represents the steel column trial groups in the model.

GetSteelCriteria ([out, retval] ISteelCriteria** ppISteelCriteria )


Gets an interface for the steel criteria applied to the model.
Parameters
ppISteelCriteria

Pointer to an ISteelCriteria interface that represents all steel criteria for the model

GetSteelMaterial ([in] long lUID, [out, retval] ISteelMaterial** ppISteelMaterial)


Gets an interface for a specific steel material property set.
Parameters
lUID
ppISteelMaterial

Unique ID of steel material property set to retrieve


Pointer to an ISteelMaterial interface that represents the requested steel material property set

GetStories ([out, retval] IStories** ppIStories)


Gets the collection of all stories in the model.
Parameters
ppIStories

Pointer to an IStories collection interface that represents all stories in the model

GetStory ([in] long lUID, [out, retval] IStory** ppIStory)


Gets an interface for a specific story.
Parameters
lUID
ppIStory

Unique ID of story to retrieve


Pointer to an IStory interface that represents requested story

GetSurfaceLoadPropertySets ([out,retval] ISurfaceLoadPropertySets **ppSurfaceLoadPropertySets)


Gets an interface to the surface load property sets in the model. These are the surface load properties defined in RAM Modeler.
Parameters
ppSurfaceLoadPropertySets Pointer to an ISurfaceLoadPropertySets interface that represents the surface load property sets for the
model.

GetVerticalBrace ([in] long lUID, [out, retval] IVerticalBrace** ppIVerticalBrace)


Gets an interface for a vertical brace.
Parameters
lUID
ppIVerticalBrace

Unique ID of vertical brace to retrieve


Pointer to an IVerticalBrace interface that represents the requested vertical brace

GetVerticalBraces ([out, retval] IVerticalBraces** ppIVerticalBraces)


Gets the collection of all vertical braces in the model.
Parameters
ppIVerticalBraces

Pointer to an IVerticalBraces collection interface that represents all vertical braces in the model

GetWall ([in] long lUID, [out, retval] IWall** ppIWall )


Gets an interface for a wall.

Parameters
lUID
ppIWall

Unique ID of wall to retrieve


Pointer to an IWall interface that represents the requested wall

GetWallBarPatternTemplates ( [out, retval] WallBarPatternTemplates** ppWallBarPatternTempaltes )


Gets an interface for the collection of wall bar pattern templates.
Parameters
ppWallBarPatternTemplates Pointer to a WallBarPatternTemplates interface that represents the
collection of wall bar patterns in the model

GetWallDesignGroups ([out,retval] IWallDesignGroups** ppIWallDesignGroups)


Gets a collection of all Wall Design Groups in the model.
Parameters
ppIWallDesignGroups Pointer to an IWallDesignGroups interface that represents the wall design groups for the model.

MSIWorkaround_IStringValue_DO_NO_CALL ()
Internal use only.

SetOrigin ([in] dX, [in] dY, [in] dZ)


Alternate mechanism for setting the sOrigin property, for use in languages that cannot set that property directly. 1
Parameters
dX
dY
dZ

X Coordinate
Y Coordinate
Z Coordinate

Properties
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL

Property
bCombineLoads
bIncludeBeamSelfWeight
bIncludeColSelfWeight
bIncludeSlabSelfWeight
bIncludeWallSelfWeight
bLLRedStoriesInclRoof

Get
X
X
X
X
X
X

Set
X
X
X
X
X

Description
If TRUE, loads on beams were combined during gravity analysis.
Beam self weight will automatically be considered if TRUE
Column self weight will automatically be considered if TRUE
Slab and deck self weight will automatically be considered if TRUE
Wall self weight will automatically be considered if TRUE
If TRUE, roof levels will be included when determining number of stories

Type
BOOL
BOOL
BOOL

Property
bLLRedStoriesInclStorLevels
bLLRedStoriesInclUnredLevels
bSkipMeshInGE

Get
X
X
X

Set
X
X
X

BOOL

bSkipMeshInGEAsked

double

dOriginAngle

double
ECANImportanceCategory

dVersion
eCANImpCategory

X
X

EBuildingCode
EUnits

eCodeSelection
eDisplayUnits

X
X

X
X

ERoofLLType
EStateStatus
EStateStatus
EStateStatus
EStateStatus
long
long
SCoordinate

eRoofLiveLoadType
eStatusConcGravForces
eStatusDataCheck
eStatusGravForces
eStatusLatForces
lDataTimeStamp
lGroundLevel
sOrigin

X
X
X
X
X
X
X
X

BSTR

strJobName

X
X

Description
If TRUE, storage levels will be included when determining number of stories
If TRUE, unreducible levels will be included when determining number of stories
Flag that determines whether or not to skip loading of the deck and slab meshes
when loading the model into RAM Container. Setting this to TRUE will cause these
meshes not to be loaded during startup, and consequently will hide them.
Flag that indicates whether or not the user has been asked if mesh loading should
be skipped.
Property designed to be used purely by 3rd-party import/export routines to record
the models origin rotation angle. This value is not used by the RAM Structural
System, but is stored with the model.
Version of the Ram Structural System model
Importance Category for Live Load Reduction when NBC of Canada is selected as
the Live Load Reduction code.
Building code by which Live Load Reduction will be calculated
Units (English, SI or Metric) to use when displaying model data in the RAM
Structural System. All values passed through interfaces are assumed to be English
units. This is only to set units for display.
Indicates whether roof live loads are reducible or whether they are snow
Status of the Concrete analysis
Status of data check
Status of RAM Gravity
Status of the Frame analysis
Time stamp
Unique ID of story that is at ground level,
Property designed to be used purely by 3rd-party import/export routines to record
the models origin point. This value is not used by the RAM Structural System, but
is stored with the model.
Text description of model that can be up to 71 characters

IModelGrid
This interface represents a single grid line.

Properties
Type
BOOL
BOOL
BOOL
BOOL
double

Property
bApplyMaxLimit
bApplyMinLimit
bDisplayLabelAtI
bDisplayLabelAtJ
dCoordinate_Angle

Get
X
X
X
X
X

Set
X
X
X
X
X

Description
If TRUE, this grid maximum will be drawn limited to user coordinate.
If TRUE, this grid minimum will be drawn limited to user coordinate.
If TRUE, the grid label bubble will be displayed at the I-end of the grid line.
If TRUE, the grid label bubble will be displayed at the J-end of the grid line.
The grid coordinate or angle.

Type
double

Property
dMaxLimitValue

Get
X

Set
X

double

dMinLimitValue

EGridAxis
long
BSTR

eAxis
lUID
strLabel

X
X
X

Description
If bApplyMaxLimit is TRUE, this is the maximum limit specified by user to which grid line will be drawn.
If bApplyMaxLimit is FALSE, this property will return -1.
If bApplyMinLimit is TRUE, this is the minimum limit specified by user to which grid line will be drawn.
If bApplyMinLimit is FALSE, this property will return -1.
The grid axis (X/Radial or Y/Circular).
Unique ID of grid line.
Grid label.

IModelGrids
This interface represents a collection of grid lines from a grid system.

Add ([in]BSTR bstGridLabel, [in] EGridAxis eGridAxis, [in] double dGridCoord_Angle, [out, retval] IModelGrid** ppIGrid)
Adds a grid to the collection of grids for a grid system.
Parameters
bstGridLabel
eGridAxis
dGridCoord_Angle
ppIGrid

Label for this grid


The grid axis (i.e. x or y for an orthogonal grid system, Radial or Circular for radial grid systems)
The grid coordinate or grid angle (for radial grid system)
Pointer to an IModelGrid interface that represents the newly added grid.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the grid with the given unique ID.
Parameters
lUID
plRetval

Unique ID of grid to delete


0 if grid is deleted successfully
-1 if unique ID is not found in filtered list of grids

Filter ([in] EGridFilter eGridFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of grids based on given criteria.
Parameters
eGridFilter
varFilterCriteria

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.

plRetval

0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IModelGrid ** ppIGrid)


Gets an interface for a specific grid by unique ID.
Parameters
lUID
ppIGrid

The unique ID of the requested grid line


Pointer to an IModelGrid interface that represents the requested grid, or NULL if no grid is found in the collection
with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IModelGrid ** ppIGrid)


Gets an interface for a specific grid by index.
Parameters
lIndex
ppIGrid

The index into the collection of the requested grid


Pointer to an IModelGrid interface that represents the requested grid, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of grids in the collection. When the collection is filtered, this function returns the number in the filtered collection, not the
total number of grids in the grid system. When the collection is unfiltered, this function returns the total number of grids in the grid system.
Parameters
plCount

Number of grids in the collection

INode
This interface is used represent a finite element node.

Properties
Type
LONG
LONG
SCoordinate

Property
lIndex
lUniqueID
sLocation

Get
X
X
X

Set

Description
The index of the node in the global node list.
The unique ID for the node.
The location of the node in global model coordinates.

INodes
This interface is used to hold a collection of INode objects.

GetCount ([out,retval] long** plCount)


Gets number of INode objects in the collection.
Parameters
plCount

The number of INode objects in the collection.

GetAt ([in] long lIndex, [out, retval] INode** ppINode)


Gets the INode object at the specified index.
Parameters
lIndex
ppINode

The index of the specified Wall FE.


The INode object at the specified index.

INonCompDeckProp
This interface represents a single non-composite deck property.

Properties
Type
double
double
double
double
long
BSTR

Property
dEffectiveThickness
dElasticModulus
dPoissonsRatio
dSelfWeight
lUid
strLabel

Get
X
X
X
X
X
X

Set
X
X
X
X
X

Description
The effective thickness of the deck
The elastic modulus of the deck
The Poissons Ratio of the deck
The self-weight of the deck
The unique ID of the deck.
The label of the deck

INonCompDeckProps
This interface represents a collection of non-composite deck properties defined in the model.

Add ([in] BSTR strLabel, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)


Creates a new non-composite deck property, adds it to the collection, and returns an interface to the newly created property.
Parameters
strLable
The label for the new non-composite deck property
ppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the newly added non-composite deck property.

Get ([in] long lUID, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)


Gets an interface for a specific non-composite deck property by unique ID.
Parameters
lUID
The unique ID of the requested non-composite deck property
ppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property, or NULL
if no non-composite deck property is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)


Gets an interface for a specific non-composite deck property by index.
Parameters
lIndex
The index into the collection of the requested non-composite deck property
ppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property, or NULL
if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of non-composite deck properties in the collection.
Parameters
plCount

Number of non-composite deck properties in the collection

IOtherMaterial
This interface represents a single Other material property set. A members Other material properties can be read and set through
this interface.

Properties
Type
double
double
double

Property
dE
dPoissonsRatio
dSelfWeight

Get
X
X
X

Set
X
X
X

Description
Youngs modulus, modulus of elasticity (E).
Poissons Ratio.
Self weight of member.

IOtherSectProp
This interface represents a single Other section. Note that the type of member (beam, column, or brace) to which it can be
assigned cannot be changed after a section is defined.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

Properties
Type
double
double
double
double
double
double
double
double

Property
dArea
dDepth
dMomInertiaMajor
dMomInertiaMinor
dShearAreaMajor
dShearAreaMinor
dTorsionConstant
dWidth

Get
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X

Description
Area of section.
Depth of section measured in direction of major axis.
Moment of inertia in major direction (Ix).
Moment of inertia in minor direction (Iy).
Shear area in major direction.
Shear area in minor direction.
Torsion Constant (J).
Width of section.

Type
EUniqueMemberTypeID
long
BSTR

Property
eMemType
lUID
strLabel

Get
X
X
X

Set

Description
Type of member to which this section can be assigned.
Unique ID of Other section.
A label for this Other section. Limited to 15 characters.

IOtherSectProps
This interface represents a collection of Other section properties defined in the model. Other section properties are defined using
this interface and then can be assigned to members of material type Other. Other sections are defined as sections for beams,
columns, or vertical braces. A section defined as an Other beam section can only be assigned to beams and horizontal braces, and
likewise for column and brace Other sections.

Add ([in] BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dWidth, [in] double dDepth, [in] double dArea, [in]
double dMomInertiaMajor, [in] double dMomInertiaMinor, [in] double dTorsionConstant, [in] double dMajorShearArea, [in] double
dMinorShearArea, [out, retval] IOtherSectProp** ppIOtherSectProp)
Adds a new Other section.
Parameters
bstName
eMemType
dWidth
dDepth
dArea
dMomInertiaMajor
dMomInertiaMinor
dTorsionConstant
dMajorShearArea
dMinorShearArea
ppIOtherSectProp

Label of Other section. Limited to 15 characters.


Must specify if this is a section for a beam, column or brace
Total width of section
Depth of section
Area of section
Moment of inertia in major direction (Ix).
Moment of inertia in minor direction (Iy).
Torsion Constant (J).
Shear area in major direction.
Shear area in minor direction.
Pointer to an IOtherSectProp interface that represents the newly added Other section.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the Other section with the given unique ID. A section that is currently assigned to a member cannot be deleted.
Parameters
lUID
plRetval

Unique ID of Other section to delete


0 if Other section is deleted successfully
-1 if unique ID is not found in filtered list of Other sections or if section is currently assigned to a member

Filter ([in] EOtherSectPropsFilter eOtherSectPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of concrete sections based on given criteria.
Parameters
eOtherSectPropsFilter Indicates the type of filter to use on the collection (see table below for filter types)
varFilterCriteria
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
plRetval
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IOtherSectProp** ppIOtherSectProp)


Gets an interface for a specific Other section property by unique ID.
Parameters
lUID
ppIOtherSectProp

The unique ID of the requested Other section


Pointer to an IOtherSectProp interface that represents the requested Other section, or NULL if no Other section is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IOtherSectProp** ppIOtherSectProp)


Gets an interface for a specific Other section property by index.
Parameters
lIndex
ppIOtherSectProp

The index into the collection of the requested Other section


Pointer to an IOtherSectProp interface that represents the requested Other section, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of Other sections in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of Other sections in the model. When the collection is unfiltered, this function returns the total number of
Other sections in the model.
Parameters
plCount

Number of Other sections in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type.


Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IPile
This interface represents a single pile.

Properties
Type
double
double
double
double
long
BSTR

Property
dCompressionCap
dDiameter
dShearCap
dTensionCap
lUID
strLabel

Get
X
X
X
X
X
X

Set
X
X
X
X
X

Description
Compression capacity of pile
Diameter of pile
Shear capacity of pile
Tension capacity of pile
Unique ID of pile.
Label for this pile

IPileConfiguration
This interface represents a single pile configuration.

Properties
Type
EPileConfiguration
long

Property
eConfiguration
lNumHorizRows

Get
X
X

Set
X
X

long

lNumVertRows

long
BSTR

lUID
strLabel

X
X

Description
Configuration of pile group
Number of rows of pile running parallel to the major axis of the footing. Applies to rectangular pile
configurations
Number of rows of pile running perpendicular to the major axis of the footing. Applies to rectangular pile
configurations
Unique ID of pile configuration.
Label for this pile configuration

IPileConfigurations
This interface represents a collection of all pile configurations defined in the model. Pile configurations are assigned to pile cap
foundations (a type of isolated foundation).

AddRectangular ([in] BSTR bstrName, [in] long lNumVertRows, [in] long lNumHorizRows, [out, retval] IPileConfiguration**
ppIPileConfiguration)
Adds a new rectangular pile configuration to the collection of pile configurations for the model.
Parameters
bstrName
lNumVertRows
lNumHorizRows
ppIPileConfiguration

A label for the pile configuration


Number of rows of piles perpendicular to the major axis
Number of rows of piles parallel to the major axis
Pointer to an IPileConfiguration interface that represents the newly added pile configuration.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes a pile configuration with the given unique ID from the collection.
Parameters
lUID
plRetval

Unique ID of pile configuration to delete


0 if pile configuration is deleted successfully
-1 if unique ID is not found in collection of pile configuration

Get ([in] long lUID, [out, retval] IPileConfiguration** ppIPileConfiguration)


Gets an interface for a specific pile configuration by unique ID.
Parameters
lUID
ppIPileConfiguration

The unique ID of the requested pile configuration


Pointer to an IPileConfiguration interface that represents the requested pile configuration, or NULL if no pile
configuration is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IPileConfiguration** ppIPileConfiguration)


Gets an interface for a specific pile configuration by index.
Parameters
lIndex

The index into the collection of the requested pile configuration

ppIPileConfiguration

Pointer to an IPileConfiguration interface that represents the requested pile configuration, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of pile configurations in the collection.
Parameters
plCount

Number of pile configurations in the collection

IPiles
This interface represents a collection of all piles defined for the model.

Add ([in] BSTR bstrName, [in] double dDiameter, [in] double dCompressionCap, [in] double dTensionCap, [in] double dShearCap,
[out, retval] IPile** ppIPile)
Adds a new pile definition to the collection of piles for the model.
Parameters
bstrName
dDiameter
dCompressionCap
dTensionCap
dShearCap
ppIPile

A label for the pile


The diameter of the pile
The compression capacity of the pile
The tension capacity of the pile
The shear capacity of the pile
Pointer to an IPile interface that represents the newly added pile.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes a pile with the given unique ID from the collection.
Parameters
lUID
plRetval

Unique ID of pile to delete


0 if pile is deleted successfully
-1 if unique ID is not found in collection of pile

Get ([in] long lUID, [out, retval] IPile** ppIPile)

Gets an interface for a specific pile by unique ID.


Parameters
lUID
ppIPile

The unique ID of the requested pile


Pointer to an IPile interface that represents the requested pile, or NULL if no pile is found in the collection with the
given unique ID.

GetAt ([in] long lIndex, [out, retval] IPile** ppIPile)


Gets an interface for a specific pile by index.
Parameters
lIndex
ppIPile

The index into the collection of the requested pile


Pointer to an IPile interface that represents the requested pile, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of piles in the collection.
Parameters
plCount

Number of piles in the collection

IPoint
This interface represents a single point.

GetCoordinate ([out] SCoordinate *pPoint, [out, retval] long *plRetval)


Gets the coordinate of the point.
Parameters
pPoint
plRetval

The coordinate of the point


0 if coordinate is retrieved successfully

SetCoordinate ([in] SCoordinate Point, [out, retval] long *plRetval)


Sets the coordinate of the point.

Parameters
Point
plRetval

The coordinate of the point


0 if coordinate is set successfully

SetCoordinate2 ([in] double dX, [in] double dY, [in] double dZ, [out, retval] long *plRetval)
Sets the coordinate of the point.
Parameters
dX
dY
dZ
plRetval

(Note: this was added because SetCoordinate isnt compatible with Visual Basic.)

The X coordinate of the point


The Y coordinate of the point
The Z coordinate of the point
0 if coordinate is set successfully

IPointLoad
This interface represents a single point load.

GetCoordinate ([out] SCoordinate* pLocation, [out, retval] long* plRetval)


Gets the number of point loads in the collection.
Parameters
pLocation
plRetval

Location of the point load in global X,Y,Z coordinates


Error code

Properties
Sign of force is positive in direction of global axes and right hand rule for moments (thumb in global axis direction). Coordinate
system is based on context in which the force is obtained (default is global coordinate system).
Type
double
double
double
double
double
double

Property
dFx
dFy
dFz
dMxx
dMyy
dMzz

Get
X
X
X
X
X
X

Set

Description
Horizontal force magnitude (kip) in X axis
Horizontal force magnitude (kip) in Y axis
Vertical force magnitude (kip) in Z axis
Moment about the XX axis
Moment about the YY axis
Moment about the ZZ Axis

IPointLoadPropertySet
This interface represents a single point load property set as defined in the modeler.

Properties
Type
double
double
double
double
double
double
ELoadCaseType
long
BSTR

Property
dConstDeadLoad
dConstLiveLoad
dDeadLoad
dLiveLoad
dMassDeadLoad
dPartitionLoad
eLiveLoadType
lUID
strLabel

Get
X
X
X
X
X
X
X
X
X

Set
X
X
X
X
X
X
X
X

Description
Construction Dead load (positive is down)
Construction Live load (positive is down)
Dead load magnitude (positive is down)
Live load magnitude (positive is down)
Mass dead load magnitude (positive is down)
Partion load magnitude (positive is down)
The live load case type (MUST BE A LIVE LOAD TYPE)
Unique ID of the property set
Label of the property set. Limited to 19 characters.

IPointLoadPropertySets
This interface represents all the point load property sets as defined in the RAM Modeler.

Add ([in] BSTR bstrLabel, [out,retval] IPointLoadPropertySet**ppIPointLoadPropSet);


Adds a new point load property set to the collection.
Parameters
bstrLabel
ppIPointLoadPropSet

Unique label for the line load property set. Limited to 19 characters.
A pointer to an IPointLoadPropertySet that represents the newly added point load property set

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes a point load property set.
Parameters
lUID
plRetVal

Unique ID of point load property set to delete


0 if point load property set is deleted successfully
-1 if failed. Delete will fail if member is not found or if the point load property set is in use by a point load set.

Get ([in] long lUID, [out, retval] IPointLoadPropertySet** ppIPointLoadPropSet);

Gets an interface for a specific point load property set by unique ID.
Parameters
lUID
ppIPointLoadPropSet

Unique ID of the requested point load property set


Pointer to an IPointLoadPropertySet interface that represents the requested point load property set, or NULL if no
line load property set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IPointLoadPropertySet**ppIPointLoadPropSet);


Gets an interface for a specific point load property set by index.
Parameters
lIndex
ppIPointLoadPropSet

Index of the requested point load property set


Pointer to an IPointLoadPropertySet interface that represents the requested point load property set, or NULL if
lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of point load property sets in the collection.
Parameters
plCount

Number of point load property sets in the collection

IPointLoads
This interface represents a collection of individual point load objects.

GetAt ([in] long lIndex, [out, retval] IPointLoad** ppIPointLoad)


Gets an interface for a specific point load by index (zero based).
Parameters
lIndex
ppIPointLoad

The index into the collection of the requested point load (0 to Count-1)
Pointer to an IPointLoad interface that represents the requested point load, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of point loads in the collection.

Parameters
plCount

Number of point loads in the collection

IPointLoadSet
This interface represents a single point load set associated with a floor type. Since a floor type can be associated with one or more
stories, a point load set may actually represent load sets on multiple stories. This interface can be used to modify the location and
properties of a point load set.

Properties
Type
long
long
SCoordinate

Property
lPropertySetUID
lUID
sCoordinate

Get
X
X
X

Set
X
X

Description
The UID of the PointLoadPropertySet associated with the point load
Unique ID of the Point Load Set
Location of the point load (only X and Y are used)

IPointLoadSets
This interface represents a collection of point load sets associated with a floor type. This collection is used to add or delete point
load sets on a floor type. A point load set consists of a location and a point load property set. This corresponds to a modeled point
load in RAM Modeler.

Add ([in] long lPropSetID, [in] double dX, [in] double dY, [out,retval] IPointLoadSet** ppIPointLoadSet )
Adds a new point load set to the collection of point load sets for the floor type.
Parameters
lPropSetID
dX
dY
ppIPointLoadSet

Unique ID of point load property set associated with this point load set
X coordinate of the point load set
Y coordinate of the point load set
Pointer to an IPointLoadSet interface that represents the newly added point load set.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the point load set with the given unique ID.
Parameters
lUID

Unique ID of point load set to delete

plRetval

0 if point load set is deleted successfully


-1 if unique ID is not found in list of point load sets

Get ([in] long lUID, [out, retval] IPointLoadSet** ppIPointLoadSet)


Gets an interface for a specific point load set by index.
Parameters
lUID
ppIPointLoadSet

Unique ID of the requested point load set


Pointer to an IPointLoadSet interface that represents the requested point load set, or NULL if no point load set is found
in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IPointLoadSet** ppIPointLoadSet)


Gets an interface for a specific point load set by index.
Parameters
lIndex
ppIPointLoadSet

The index into the collection of the requested point load set
Pointer to an IPointLoadSet interface that represents the requested point load set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of point load sets in the collection.
Parameters
plCount

Number of point load sets in the collection

IPoints
This interface represents a collection of points.

Add ([in] SCoordinate Point, [out, retval] IPoint** ppIPoint)


Adds a point to the collection.
Parameters
Point
ppIPoint

Coordinate of this point


Pointer to an IPoint interface that represents the newly added point.

Add2 ([in] double dX, [in] double dY, [in] double dZ, [out, retval] IPoint** ppIPoint)
Adds a point to the collection.
Parameters
dX
dY
dZ
ppIPoint

(Note: this was added because Add isnt compatible with Visual Basic.)

The X coordinate of the point


The Y coordinate of the point
The Z coordinate of the point
Pointer to an IPoint interface that represents the newly added point.

Delete ([in] long lIndex, [out, retval] long* plRetval)


Deletes the point at the given index.
Parameters
lIndex
plRetval

Index of point to delete.


0 if point is deleted successfully
-1 if index is invalid

GetAt ([in] long lIndex, [out, retval] IPoint** ppIPoint)


Gets an interface for a specific point by index.
Parameters
lIndex
ppIPoint

The index into the collection of the requested point


Pointer to an IPoint interface that represents the requested point, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of points in the collection.
Parameters
plCount

Number of points in the collection

InsertAt ([in] long lIndex, [in] SCoordinate Point, [out, retval] IPoint** ppIPoint)
Adds a point to the collection at the given index, growing the list of points if needed. This function is provided for when the order of the
points in the collection matters, such as for the definition of a polygon.

Parameters
lIndex
Point
ppIPoint

The index at which to add the point


Coordinate of this point
Pointer to an IPoint interface that represents the newly added point.

InsertAt2 ([in] long lIndex, [in] double dX, [in] double dY, [in] double dZ, [out, retval] IPoint** ppIPoint)
Adds a point to the collection at the given index, growing the list of points if needed. This function is provided for when the order of the
points in the collection matters, such as for the definition of a polygon. (Note: this was added because InsertAt isnt compatible with Visual
Basic.)

Parameters
lIndex
dX
dY
dZ
ppIPoint

The index at which to add the point


The X coordinate of the point
The Y coordinate of the point
The Z coordinate of the point
Pointer to an IPoint interface that represents the newly added point.

IProperties
This interface represents a collection of properties associated with a member. This collection is used to add or delete properties to a
member.

Get ([in] BSTR bstrPropName, [out, retval], IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetAt ([in] long lIndex, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by index.

GetCount ([out, retval] long* plCount)


Gets the number of properties in the collection.
Parameters
plCount

Number of properties in the collection

Parameters
lIndex
ppIProperty

The index into the collection of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if lIndex is invalid.

IProperty
This interface represents a single property for a member.

GetValueAsBool ([out] BOOL *pbValue, [out, retval] long* plRetval)


Gets the value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.
Parameters
pbValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetValueAsDouble ([out] double *pdValue, [out, retval] long* plRetval)


Gets the value of the property as a double. An error is returned if this is not the appropriate type for this property.
Parameters
pdValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetValueAsLong ([out] long *plValue, [out, retval] long* plRetval)


Gets the value of the property as a long. An error is returned if this is not the appropriate type for this property.

Parameters
plValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetValueAsString ([out] BSTR *pstrValue, [out, retval] long* plRetval)


Gets the value of the property as a string. This function works for any data type.
Parameters
pstrValue
plRetval

Value of the property


Should always be zero since any data type can be
returned as a string.

SetValueAsBool ([in] BOOL bValue, [out, retval] long* plRetval)


Sets the value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.
Parameters
bValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetValueAsDouble ([in] double dValue, [out, retval] long* plRetval)


Sets the value of the property as a double. An error is returned if this is not the appropriate type for this property.
Parameters
dValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetValueAsLong ([in] long lValue, [out, retval] long* plRetval)


Sets the value of the property as a long. An error is returned if this is not the appropriate type for this property.
Parameters
lValue
plRetval

Value of the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetValueAsString ([in] BSTR strValue, [out, retval] long* plRetval)


Sets the value of the property as a string. This function works for any data type.
Parameters
strValue
plRetval

Value of the property


Should always be zero since any data type can be
returned as a string.

Properties
Type
BSTR
EDBFieldType

Property
strPropName
eType

Get
X
X

Set
X

Description
Case insensitive name of property
The type of value for this property

IPropertyDefinition
This interface represents a single property definition for a member type.

GetDefaultAsBool ([out] BOOL *pbDefault, [out, retval] long* plRetval)


Gets the default value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.
Parameters
pbDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetDefaultAsDouble ([out] double *pdDefault, [out, retval] long* plRetval)


Gets the default value for this property as a double. An error is returned if this is not the appropriate type for this property.
Parameters
pdDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetDefaultAsLong ([out] long *plDefault, [out, retval] long* plRetval)

Gets the default value of the property as a long. An error is returned if this is not the appropriate type for this property.
Parameters
plDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

GetDefaultAsString ([out] BSTR *pstrDefault, [out, retval] long* plRetval)


Gets the default value of the property as a string. An error is returned if this is not the appropriate type for this property.
Parameters
pstrDefault
plRetval

Default value for the property


Should always be zero since any data type can be
returned as a string.

SetDefaultAsBool ([in] BOOL bDefault, [out, retval] long* plRetval)


Sets the default value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.
Parameters
bDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetDefaultAsDouble ([in] double dDefault, [out, retval] long* plRetval)


Sets the default value for this property as a double. An error is returned if this is not the appropriate type for this property.
Parameters
dDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetDefaultAsLong ([in] long lDefault, [out, retval] long* plRetval)


Sets the default value of the property as a long. An error is returned if this is not the appropriate type for this property.

Parameters
lDefault
plRetval

Default value for the property


0 if value retrieved successfully
-1 if no appropriate type for this property.

SetDefaultAsString ([in] BSTR strDefault, [out, retval] long* plRetval)


Sets the default value of the property as a string. An error is returned if this is not the appropriate type for this property.
Parameters
strDefault
plRetval

Default value for the property


Should always be zero since any data type can be
returned as a string.

Properties
Type
EDBFieldType
BSTR
BSTR

Property
eType
strPropDescription
strPropName

Get
X
X
X

Set
X
X

Description
The type of value for this property
Description of the property
Case insensitive name of property

IPropertyDefinitions
This interface represents a collection of property definitions associated with a type of member. This collection is used to add or
delete properties associated with a member type.

AddPropBool ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] BOOL bDefaultValue, [out, retval]
IPropertyDefinition** ppIPropertyDef)
Adds a new property to the collection of properties for the member.
Parameters
bstrPropName
bstrPropDescription
bDefaultValue
ppIPropertyDef

Name of the property


Description of the property (can be left blank)
Default value for this property when not set for a member
Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropDouble ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] double dDefaultValue, [out, retval]
IPropertyDefinition** ppIPropertyDef)

Adds a new property definition to the collection of property definitions for the member type.
Parameters
bstrPropName
bstrPropDescription
dDefaultValue
ppIPropertyDef

Name of the property


Description of the property (can be left blank)
Default value for this property when not set for a member
Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropLong ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] long lDefaultValue, [out, retval] IPropertyDefinition**
ppIPropertyDef)
Adds a new property to the collection of properties for the member.
Parameters
bstrPropName
bstrPropDescription
lDefaultValue
ppIPropertyDef

Name of the property


Description of the property (can be left blank)
Default value for this property when not set for a member
Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropString ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] BSTR strDefaultValue, [out, retval]
IPropertyDefinition** ppIPropertyDef)
Adds a new property to the collection of properties for the member.
Parameters
bstrPropName
bstrPropDescription
strDefaultValue
ppIPropertyDef

Name of the property


Description of the property (can be left blank)
Default value for this property when not set for a member
Pointer to an IPropertyDefinition interface that represents the newly added property definition.

Delete ([in] BSTR bstrPropName, [out, retval] long* plRetval)


Deletes the property definition with the given name. Use with caution as this will delete the value for each instance of the member type.
Parameters
bstrPropName
plRetval

Name of property to delete


0 if property is deleted successfully
-1 if no property is found with given name

Get ([in] BSTR bstrPropName, [out, retval], IPropertyDefinition** ppIPropertyDef)


Gets an interface for a specific property definition by property name.
Parameters
bstrPropName
ppIPropertyDef

The name of the requested property


Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if no property
is found with given name.

GetAt ([in] long lIndex, [out, retval] IPropertyDefinition** ppIPropertyDef)


Gets an interface for a specific property definition by index.
Parameters
lIndex
ppIPropertyDef

The index into the collection of the requested property definition


Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of property definitions in the collection.
Parameters
plCount

Number of property definitions in the collection

IRAMFrameCriteria
This interface represents the criteria in RAM Frame. 5.03.

GetFrame_SolverSettings ( [out] BOOL* pbDirectSolver, [out] BOOL* pbInCore, [out] BOOL* pbUseSingleCPU )
Gets solver settings in RAM Frame Criteria - General. 5.03.
Parameters
pbDirectSolver
pbInCore
pbUseSingleCPU

1 if the Direct Solver is selected


1 if In Core is selected
1 if Use Single CPU is selected

SetFrame_SolverSettings ( [in] BOOL bDirectSolver, [in] BOOL bInCore, [in] BOOL bUseSingleCPU )
Sets solver settings in RAM Frame Criteria - General. 5.03.
Parameters
bDirectSolver
bInCore
bUseSingleCPU

1 if the Direct Solver is selected


1 if In Core is selected
1 if Use Single CPU is selected

Properties
Type
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
BOOL
double
double
double
double
double
double
double
double
double
double
long

Property
bAISC360_UseReducedStiff
bAISC360_UseTau1
bMemberForceOutputAtFaceOfJoint
bPDelta
bPDelta_UseMassLoad
bResponseSpectra_ConsiderSign
bResponseSpectra_IncludeMassinZDir
bRigidEndZones_IgnoreEffects
bSidePlate_HighSeismicDesign
bWallElement_IncludeOOPStif
bWallElement_ReleaseRotFixity
bWallElement_StoreStress
dAISC360_UserEnteredTau
dAnalyticalModel_GeometryTol
dAnalyticalModel_MaxDistance
dAnalyticalModel_MergeTol
dPDelta_DeadLoadScaleFactor
dPDelta_LiveLoadScaleFactor
dPDelta_MassLoadScaleFactor
dPDelta_RoofLoadScaleFactor
dPDelta_SnowLoadScaleFactor
dRigidEndZones_Reduction
lGroundLevel

Get
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X

Set

IRawWallOpening
This interface represents a single raw wall opening.

Description
1 if Use Reduced Stiffness is selected
1 if Tau = 1.0 is selected
1 if member force output at joint face is selected
1 if P Delta is set to Yes
1 if P Delta Use Mass is selected
1 if Consider Sign is selected
1 if Include Z Mass is selected
1 if Ignore Effects is selected
1 if High Seismic Design is selected
1 if include out of plane stiffness is selected
1 if release rotational fixity is selected
1 if store wall stresses is selected
Value of the user defined Tau
Geometric tolerance
Maximum distance between nodes
Merge node tolerance
P Delta scale factor
P Delta scale factor
P Delta scale factor
P Delta scale factor
P Delta scale factor
Rigid end zone reduction percentage
Index to the ground level story. -1 if base.

GetOpeningVertices ([out,retval] IPoints** ppIVertexCoordinates)


Gets the vertices of the opening.
Parameters
ppIVertexCoordinates Pointer to an IPoints collection interface which represents the locations of the
vertices of the opening in 3D coordinates.

Properties
Type
double
double
double
double
EDA_MEMBER_LOC
long
long
long

Property
dHorizontalLoc
dOpeningHeight
dOpeningWidth
dVerticalLoc
eWallRefCorner
lLabel
lUID
lWallUID

Get
X
X
X
X
X
X
X
X

Set
X
X
X
X
X

Description
Horizontal location along wall, measured from eWallRefCorner
Height of opening
Width of opening
Vertical location along wall, measured from eWallRefCorner
Reference corner from which opening location is measured
Generated label for display of wall opening
Unique ID of wall opening
Unique id of wall that opening was modeled in

IRawWallOpenings
This interface represents a collection of raw wall openings associated with a wall.

Add ([in] EDA_MEMBER_LOC eRefCorner, [in] double dHorizontalLoc, [in] double dVerticalLoc, [in] double dOpeningWidth, [in]
double dOpeningHeight, [out, retval] IRawWallOpening** ppIRawWallOpening)
Adds a raw wall opening to the collection of openings for the wall.
Parameters
eRefCorner
dHorizontalLoc
dVerticalLoc
dOpeningWidth
dOpeningHeight
ppIRawWallOpening

Indicates the reference corner of the wall from which the opening location is measured
Horizontal location along the wall, measured from eRefCorner
Vertical location along the wall, measured from eRefCorner
Width of opening
Height of opening
Pointer to an IRawWallOpening interface that represents the newly added raw wall opening

Delete ([in] long lUID, [out, retval] long* plRetval )


Deletes the raw wall opening with the given unique ID.

Parameters
lUID
plRetval

Unique ID of raw wall opening to delete


0 if opening is deleted successfully
-1 if lIndex is invalid

Get ([in] long lUID, [out, retval] IRawWallOpening** ppIRawWallOpening)


Gets an interface for a specific raw wall opening by unique ID.

Parameters
lUID
ppIRawWallOpening

The unique ID of the requested wall opening


Pointer to an IRawWallOpening interface that represents the requested raw wall opening, or NULL if no wall
opening is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IRawWallOpening** ppIRawWallOpening)


Gets an interface for a raw wall opening by index.
Parameters
lIndex
ppIRawWallOpening

The index into the collection of the requested raw wall opening
Pointer to an IRawWallOpening interface that represents the requested raw wall opening, or NULL if lIndex is
invalid.

GetCount ([out, retval] long* plCount)


Gets the number of wall openings in the collection.
Parameters
plCount

Number of raw wall openings in the collection

IRawWallSectionCut
This interface represents a single raw wall section cut. Raw indicates it may span over multiple walls.

ClearComboForceSets ()

Deletes all load combination-based force sets in the collection.

ClearForceSets ()
Deletes all force sets in the collection.

GetCoordinates ([out] SCoordinate *pStartPoint, [out] SCoordinate *pEndPoint, [out, retval] long* plRetval)
Gets the section cut ends, global coordinates.
Parameters
pStartPoint
pEndPoint

Start coordinate of section cut


End coordinate of section cut

GetCutBars ([in] BOOL bCompound, [out,retval] IWallBarPlacements** ppIWallBarPlacements)


Gets an array of bar placements cut by this section cut.
Parameters
bCompound

ppIWallBarPlacements

If TRUE, and the section cut is part of a compound section cut, this will return the bar placements for all cuts in the
compound section cut.
If FALSE, only returns the bar placements for the current raw section cut.
The bars cut by this section cut.

GetCutMembers ([out, retval] IDAArray** ppICutMembersArray)


Gets an array of members cut by this section cut.
Parameters
ppICutMembersArray

Array of unique IDs of walls, beams, columns, that are cut by this section cut

GetForce ([in] EAnalysisResultType eAnalysisType, [in] long lAnalysisLoadCaseID, [out,retval] IMemberForce** ppIMemberForce)
Gets the force at this section cut for the given analysis type and load case ID.
Parameters
eAnalysisType
lAnalysisLoadCaseID
ppIMemberForce

Type of analysis for which to get force (As of v10, only RAMFrameResultType supported)
Analysis load case ID for which to get force
Pointer to an IMemberForce interface that represents the force at this section cut.

GetForces ([in] EAnalysisResultType eAnalysisType, [out, retval] IMemberForces** ppIMemberForces)


Gets the force at this section cut for the given analysis type.
Parameters
eAnalysisType
ppIMemberForces

Type of analysis for which to get force (As of v10, only RAMFrameResultType supported)
Pointer to an IMemberForces collection interface that represents the forces at this section cut.

GetForceSets ([out, retval] IWallSectionDsnCutForceSets ** ppIWallSectionDsnCutForceSets)


Gets the collection force sets for the section cut.
Parameters
ppIWallSectionDsnCutForceSets Pointer to an IWallSectionDsnCutForceSets collection interface that represents all force sets in the wall
section design cut.

GetForcesForLoadCases ([in] EAnalysisResultType eAnalysisType, [in] DAArray aAnalysisLoadCaseIDs, [out, retval]


IMemberForces** ppIMemberForces)
Gets the force at this section cut for the given analysis type and load case ID.
Parameters
eAnalysisType
Type of analysis for which to get force (As of v10, only RAMFrameResultType supported)
aAnalysisLoadCaseIDs Array of analysis load case IDs for which to get force
ppIMemberForces
Pointer to an IMemberForces collection interface that represents the forces at this section cut for the given load
case IDs.

GetForcesOnHorizontalPlane ([in] long lLoadCaseUID, [in] long lNumWallUIDs, [in] long* palWallUIDs, [in] long
lNumBeamUIDs, [in] long* palBeamUIDs, [in] long lNumColumnUIDs, [in] long* palColumnUIDs, [in] double dCutStartX, [in] double
dCutStartY, [in] double dCutEndX, [in] double dCutEndY, [in] double dCutZ, [out] double* pdFX_g, [out] double* pdFY_g, [out]
double* pdFZ_g, [out] double* pdMX_g, [out] double* pdMY_g, [out] double* pdMZ_g, [out] double* pdCenterX, [out] double*
pdCenterY, [out] double* pdCenterZ, [out, retval] long *plRetVal)
Returns the resultant force on a horizontal plane through the specified members.
Parameters
lLoadCaseUID
lNumWallUIDs

Unique id of the load case for which forces are requested.


Number of wall unique ids in the palWallUIDs array.

palWallUIDs
lNumBeamUIDs
palBeamUIDs
lNumColumnUIDs
palColumnUIDs
dCutStartX
dCutStartY
dCutEndX
dCutEndY
dCutZ
pdFX_g
pdFY_g
pdFZ_g
pdMX_g
pdMY_g
pdMZ_g
pdCenterX
pdCenterY
pdCenterZ
plRetVal

Array of wall unique ids for which forces are requested.


Number of beam unique ids in the palBeamUIDs array.
Array of beam unique ids for which forces are requested.
Number of column unique ids in the palColumnUIDs array.
Array of column unique ids for which forces are requested.
Global X coordinate of start point of section cut.
Global Y coordinate of start point of section cut.
Global X coordinate of end point of section cut.
Global Y coordinate of end point of section cut.
Global Z coordinate of section cut.
Resultant force in X direction
Resultant force in Y direction
Resultant force in Z direction
Resultant moment about X axis
Resultant moment about Y axis
Resultant moment about Z axis
X coordinate of point where resultant force is acting on combined members
Y coordinate of point where resultant force is acting on combined members
Z coordinate of point where resultant force is acting on combined members
0 if successful
-1 failed

GetForcesOnVerticalPlane ([in] long lLoadCaseUID, [in] long lWallUID, [in] double dX1, [in] double dY1, [in] double dZ1, [in]
double dX2, [in] double dY2, [in] double dZ2, [out] double* pdFX, [out] double* pdFY, [out] double* pdFZ, [out] double* pdMX, [out]
double* pdMY, [out] double* pdMZ, [out, retval] long *plRetVal)
Gets resultant force on a vertical cut (plane) across the thickness of the give wall member. The cut is defined by a line throught the midplane of the wall.
Parameters
lLoadCaseUID
lWallUID
dX1
dY1
dZ1
dX2
dY2
dZ2
pdFX
pdFY
pdFZ

Unique id of the load case for which forces are requested.


Unique id of the wall for which forces are requested.
X coordinate of start point of section cut.
Y coordinate of start point of section cut.
Z coordinate of start point of section cut.
X coordinate of end point of section cut.
Y coordinate of end point of section cut.
Z coordinate of end point of section cut.
Resultant force in X direction.
Resultant force in Y direction.
Resultant force in Z direction.

pdMX
pdMY
pdMZ
plRetVal

Resultant moment about X axis.


Resultant moment about Y axis.
Resultant moment about Z axis.
0 if successful
-1 failed

GetPolygonPoints ([in] BOOL bCompound, [out, retval] IPoints** ppIPoints)


Gets a collection of points that form the polygon of the section cut in 3D space.
Parameters
bCompound

ppIWallBarPlacements

If TRUE, and the section cut is part of a compound section cut, this will return the points for the polygon formed by
all cuts in the compound section cut.
If FALSE, only returns the polygon for the current raw section cut.
Collection of points that make up the 3D polygon for this section cut.

Properties
Type
BOOL
BOOL
BOOL

Property
bAutoGenerated
bFullModule
bIncBoundaryElements

Get
X
X
X

Set
X
X
X

double
double
EMemberOrientation
EStatusState
long

dEndOffset
dStartOffset
eOrientation
eStatus
lEndEdgeIndex

X
X
X
X
X

X
X
X

long
long
long

lEndMemberUID
lSectionCutWDGID
lStartEdgeIndex

X
X
X

X
X
X

long

lStartMemberOwnerUID

long
long
long
BSTR

lStartMemberUID
lUID
lWallDesignGroup
strLabel

X
X
X
X

X
X

Description
Indicates whether the section cut was autocreated by the module
Indicates whether the section cut was created in the full shear wall module
Indicates whether or not to include the forces from the boundary elements (such as a column
attached to a wall) when getting the forces for the section cut
Offset from bottom of wall or opening at which section cut terminates
Offset from bottom of wall or opening from which section cut originates
Orientation of section cut
Section cut design status
Index of edge of wall or opening at which section cut terminates, 0 being the bottom edge and
continuing counter-clockwise (0-3 only valid indices at this time)
Unique ID of wall or wall opening at which section cut terminates
Section Cut Group ID within the Wall Design Group
Index of edge of wall or opening from which section cut originates, 0 being the bottom edge and
continuing counter-clockwise (0-3 only valid indices at this time)
If the start member is an opening, this contains the member ID of the wall that the opening is in.
If the start member is a wall, this is the same as lStartMemberUID.
Unique ID of wall or wall opening from which section cut originates
Unique ID of section cut
Wall Design Group number this section cut is part of or -1
User-defined label for section cut

IRawWallSectionCuts
This interface represents a collection of raw wall section cuts associated with a wall.

Add ([in] BSTR bstrLabel, [in] ESectionCutOrientation eOrientation, [in] long lStartMemberUID, [in] long lStartEdgeIndex, [in] double
dStartOffset, [in] long lEndMemberUID, [in] long lEndEdgeIndex, [in] double dEndOffset, [out, retval] ] IRawWallSectionCut**
ppIRawWallSectionCut)
Adds a raw section cut to the collection of section cuts for the wall.
Parameters
bstrLabel
eOrientation
lStartMemberUID
lStartEdgeIndex
dStartOffset
lEndMemberUID
lEndEdgeIndex
dEndOffset

Display label for the section cut


Orienation of section cut
Unique ID of member at which section cut starts (will be a wall or wall opening)
Index of edge of wall or opening at which section cut starts
Offset from start member edge
Unique ID of member at which section cut terminates (wioll be a wall or wall opening)
Index of edge of wall or opening at which section cut terminates
Offset from end member edge

AddRaw ([in] SCoordinate sStartPoint, [in] SCoordinate sEndPoint, [out, retval] ] IRawWallSectionCut** ppIRawWallSectionCut)
Adds a raw section cut to the collection of section cuts.
Parameters
sStartPoint
sEndPoint

Start coordinates of the raw section cut


End coordinates of the raw section cuts

Clear ([in] BOOL bClearAutoGenOnly)


Deletes raw wall section cuts in the receivers collection.
Parameters
bClearAutoGenOnly

1: Only delete auto-generated section cuts from collection.


0: Delete all section cuts from collection.

Delete ([in] long lUID, [out, retval] long* plRetval )


Deletes the raw wall section cut with the given unique ID.

Parameters
lUID
plRetval

Unique ID of raw wall section cut to delete


0 if opening is deleted successfully
-1 if lIndex is invalid

Filter ([in] ERawWallSectionCutFilter eSectionCutFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of raw wall section cuts based on given criteria.
Parameters
eSectionCutFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IRawWallSectionCut** ppIRawWallSectionCut)


Gets an interface for a specific raw wall section cut by unique ID.

Parameters
lUID
The unique ID of the requested wall section cut
ppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested raw wall section cut, or NULL if no wall
section cut is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IRawWallSectionCut** ppIRawWallSectionCut)


Gets an interface for a raw wall section cut by index.
Parameters
lIndex
The index into the collection of the requested raw wall section cut
ppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested raw wall section cut, or NULL if
lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of wall section cuts in the collection.
Parameters
plCount

Number of raw wall section cuts in the collection

IRBSPropertySet
Interface with reduced beam property set values. Obtained from a specific IBeam.

Properties
Type
double
double
double

Property
d_a
d_b
d_c

Get
X
X
X

Set

Description
The distance from the column face to the start of the RBS.
The length of the reduced beam section.
The amount of flange removed on each side of the beam.

IReactionNode
This interface represents a single reaction node.

GetMembersAtReactionNode ([out,retval] DAArray** ppDAArray)


Gets an array of members at the reaction node.
Parameters
ppDAArray

Pointer to an DAArray interface that represents the members at this reaction node.

GetReaction ([in] EFrameMemberForceSource eFrameMemForceSource, [in] long lAnalysisCaseID, [out, retval] IPointLoad**
ppIPointLoad)
Gets an IPointLoad interface for a reaction at a node.
Parameters
eFrameMemForceSource EFrameMemberForceSource
lAnalysisCaseID
Unique ID of the analysis case
ppIPointLoad
Pointer to an IPointLoad interface

GetReactions ([in] EFrameMemberForceSource eFrameMemForceSource, [out, retval] IPointLoads** ppIPointLoads)


Gets an IPointLoads interface for a collection of reactions at a node.
Parameters

eFrameMemForceSource EFrameMemberForceSource
ppIPointLoads
Pointer to an IPointLoads interface

Properties
Type
SCoordinate

Property
SCoordinate

Get
X

Set

Description
The coordinates of the reaction node.

IReactionNodes
This interface represents a collection of reaction nodes.

Filter ([in] EReactionNodeFilter EReactionNodeFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plCount)
Gets the number of wall section cuts in the collection.
Parameters
EReactionNodeFilter
varFilterCriteria
plCount

EReationNodeFilter
Criteria used to filter the collection, based on the filter type. In some cases,
this parameter is not applicable
Number reaction nodes in the filtered collection

GetAt ([in] long lIndex, [out, retval] IReactionNode** ppIReactionNode)


Gets an interface for a reaction node by index.
Parameters
lIndex
ppIReactionNode

The index into the collection of the requested raw wall section cut
Pointer to an IReactionNode interface that represents the requested reaction node, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of reaction nodes in the collection.
Parameters
plCount

Number of reaction nodes in the collection

IRecord
This interface is used in conjunction with ITable to represent the data in a single record in a generic table. Please note: unlike most
properties in RAM Data Access, all properties in this table are indexed by the field name. In languages that support it, this field name
is specified in the same way as an array offset.

IRecord Properties
Type
BOOL
double
long
BSTR
VARIANT

Property
bValue
dValue
lValue
strValue
varValue

Get
X
X
X
X
X

Set
X
X
X
X
X

Description
The value of the field specified by bstrName.
The value of the field specified by bstrName.
The value of the field specified by bstrName.
The value of the field specified by bstrName.
The value of the field specified by bstrName.
field.

The specified field must have an eType setting of eFTBool.


The specified field must have an eType setting of eFTDouble.
The specified field must have an eType setting of eFTLong.
The specified field must have an eType setting of eFTString.
The type of data returned depends on the eType setting of the specified

IRecords
This interface is use to represent the records in a generic table.

Add ([out,retval] IRecord **ppINewRecord)


Adds a new long field to the receiver.
Parameters
ppINewRecord

Pointer to an IRecord interface that represents the newly added record.

DeleteAt (long lIndex)


Deletes the record at the given index.
Parameters
lIndex

The index of the record to be deleted.

GetAt ([in] long lIndex, [out,retval] IRecord **ppIRecord)


Gets an interface for a specific record by index. Note: while the order of the records in an IRecords instance will not change, the order is
not recorded, so subsequent loading of the records could result in the records being returned in a different order.
Parameters

lIndex
ppIRecord

The index in the collection the requested record.


Pointer to an IRecord interface that represents the requested record, or NULL if lIndex is invalid.

Properties
Type
long

Property
lCount

Get
X

Set

Description
The number of records in the collection.

IShell
This interface is used represent a finite element shell element (quad).

GetNodeResolvedAppliedLoads ([in] ELoadCaseType eLoadcaseType, [out, retval] IPointLoads** ppIPointLoads)


This method gets the resolved point load at the shell nodes due to surface, line and point load on the shell for a given load case type.
Parameters
eLoadcaseType
ppIPointLoads

Load case type


Resolved point loads at the
nodes of the shell

GetPoints ([out,retval] IPoints** ppIPoints)


Gets the collection of points for this shell.
Parameters
ppIPoints

Pointer to an IPoints interface that represents the points in the shell.

Properties
Type
EUniqueMemberTypeID
LONG
LONG

Property
eMemberType
lMemberID
lUID

Get
X
X
X

Set

Description
The member type of the member this shell was calculated from.
The member ID of the member this shell was calculated from. This could be a wall ID or a deck ID.
The unique ID for this shell.

IShells
This interface is used to hold a collection of IShell objects.

GetAt ([in] long lIndex, [out, retval] IShell** ppIShell)


Gets the IShell object at the specified index.
Parameters
lIndex
ppIShell

The index of the specified shell.


The IShell object at the specified index.

GetCount ([out,retval] long** plCount)


Gets number of IShell objects in the collection.
Parameters
plCount

The number of IShell objects in the collection.

ISlabEdge
This interface represents a specific slab edge corresponding to a slab perimeter or slab opening.

GetCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdEndX, [out] double *pdEndY, [out, retval] long*
plRetval)
Gets the coordinates for the slab edge in 2-dimensions.
Parameters
pdStartX
pdStartY
pdEndX
pdEndY
plRetval

The x coordinate at the start of the slab edge


The y coordinate at the start of the slab edge
The x coordinate at the end of the slab edge
The y coordinate at the end of the slab edge
0 if successful, -1 if coordinates cannot be retrieved

SetCoordinates ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [out, retval] long* plRetval)
Gets the coordinates for the slab edge in 2-dimensions.
Parameters
dStartX
dStartY

The x coordinate at the start of the slab edge


The y coordinate at the start of the slab edge

dEndX
dEndY
plRetval

The x coordinate at the end of the slab edge


The y coordinate at the end of the slab edge
0 if successful, -1 if coordinates cannot be set

Properties
Type
double

Property
dOffset

Get
X

Set
X

Description
Offset of slab edge from centerline of beam. In the RAM Structural System, slab edges are laid out along beams.
The coordinates along the beams are saved along with the offset from the beam to the edge of the slab.

ISlabEdges
This interface represents a collection of slab edges. Slab edges are associated with either a slab perimeter or a slab opening.

Add ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [in] double dOffset, [out, retval] ISlabEdge**
ppISlabEdge)
Adds a new slab edge or opening edge to the collection. Only works if the receiver was created using IFloorType::GetAllSlabEdges or
IFloorType::GetAllSlabOpenings.
Parameters
double dStartX
double dStartY
double dEndX
double dEndX
double dOffset
ppISlabEdge

The X coordinate of the beginning of the slab/opening edge.


The Y coordinate of the beginning of the slab/opening edge.
The X coordinate of the end of the slab/opening edge.
The X coordinate of the end of the slab/opening edge.
The offset of the actual edge from the given points.
Pointer to an ISlabEdge interface that represents the requested slab edge, or NULL if lIndex is invalid.

Delete ([in] long lIndex, [out, retval] long *plRetval)


Deletes the given slab edge or opening edge from the collection. Only works if the receiver was created using
IFloorType::GetAllSlabEdges or IFloorType::GetAllSlabOpenings.
Parameters
lIndex
plRetval

The index into the collection of the requested slab/opening edge


If less than zero, the deletion failed. Otherwise, the deletion was successful.

GetAt ([in] long lIndex, [out, retval] ISlabEdge** ppISlabEdge)

Gets an interface for a specific slab edge by index.


Parameters
lIndex
ppISlabEdge

The index into the collection of the requested slab edge


Pointer to an ISlabEdge interface that represents the requested slab edge, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of slab edges in the collection.
Parameters
plCount

Number of slab edges in the collection

ISlabOpening
This interface represents a specific slab opening on a floor type.

GetEdges ([out, retval] ISlabEdges** ppISlabEdges)


Gets the collection of edges for this slab opening.
Parameters
ppISlabEdges

Pointer to an ISlabEdges collection interface that represents the edges that define this slab opening.

GetOpeningVertices ([out, retval] IPoints** ppIVertexCoordinates)


Gets the collection of vertices for this slab opening.
Parameters
ppIVertexCoordinats Pointer to an IPoints collection interface that represents the vertices that define this slab opening.

Properties
Type
long

Property
lUID

Get
X

Set

Description
Unique ID of slab opening

ISlabOpenings
This interface represents a collection of all slab openings on a floor type.

Get ([in] long lUID, [out, retval] ISlabOpening** ppISlabOpening)


Gets an interface for a specific slab opening by unique ID.
Parameters
lUID
ppISlabOpening

The unique ID of the requested slab perimeter


Pointer to an ppISlabOpening interface that represents the requested slab opening, or NULL if no slab opening is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISlabOpening** ppISlabOpening)


Gets an interface for a specific slab opening by index.
Parameters
lIndex
ppISlabOpening

The index into the collection of the requested slab opening


Pointer to an ISlabOpening interface that represents the requested slab opening, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of slab openings in the collection.
Parameters
plCount

Number of slab openings in the collection

ISlabPerimeter
This interface represents a specific slab perimeter on a floor type.

GetEdges ([out, retval] ISlabEdges** ppISlabEdges)


Gets the collection of edges for this slab perimeter.
Parameters

ppISlabEdges

Pointer to an ISlabEdges collection interface that represents the edges that define this slab perimeter.

GetPerimeterVertices ([out, retval] IPoints **ppIVertexCoordinates)


Gets the collection of vertices for this slab perimeter.
Parameters
ppIVertexCoordinates Pointer to an IPoints collection interface that represents the vertices for this slab perimeter.

Properties
Type
long

Property
lUID

Get
X

Set

Description
Unique ID of slab perimeter

ISlabPerimeters
This interface represents the collection of slab perimeters on a floor type.

Get ([in] long lUID, [out, retval] ISlabPerimeter** ppISlabPerimeter)


Gets an interface for a specific slab perimeter by unique ID.
Parameters
lUID
ppISlabPerimeter

The unique ID of the requested slab perimeter


Pointer to an ISlabPerimeter interface that represents the requested slab perimeter, or NULL if no slab perimeter
is found in the collection with the given unique ID. If the collection is filtered, only the slab perimeters in the
filtered collection are considered.

GetAt ([in] long lIndex, [out, retval] ISlabPerimeter** ppISlabPerimeter)


Gets an interface for a specific slab perimeter by index.
Parameters
lIndex
ppISlabPerimeter

The index into the collection of the requested slab perimeter


Pointer to an ISlabPerimeter interface that represents the requested slab perimeter, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of slab perimeters in the collection. When the collection is filtered, this function returns the number in the filtered
collection, not the total number of slab perimeters on the floor type. When the collection is unfiltered, this function returns the total number
of slab perimeters on a floor type.
Parameters
plCount

Number of slab perimeters in the collection

ISnowLoadPropertySet
This interface defines the surface load properties.

Properties
Type
double
double
double
ESnowLoadType
long
string

Property
dMagnitude1
dMagnitude2
dMagnitude3
eType
lUID
strLabel

Get
X
X
X
X
X
X

Set
X
X
X
X
X

Description
Drift snow load magnitude at first point or constant snow load magnitude
Drift snow load magnitude at second point
Drift snow load magnitude at third point
Enumerator for snow load type
Unique ID of the snow load property
Snow load property label

ISnowLoadPropertySets
This interface represents a collection if ISnowLoadPropertySet objects.

Add ([in] BSTR bstrLabel, [out,retval] ISnowLoadPropertySet **ppISnowLoadPropertySet)


Adds a new snow load property set to the receiver.
Parameters
bstrLabel
The label for the new surface load set.
ppISurfaceLoadPropSet Pointer to an ISnowLoadPropertySet interface that represents the newly added surface load set.

Delete ([in] long lUID)


Deletes a snow load property set from the collection. Returns 0 if the snow load set was deleted successfully or -1 if the unique ID was not
found in the receiver.

Parameters
lUID

Unique ID of snow load property to be deleted

Get ([in] long lUID, [out, retval] ISnowLoadPropertySet **ppISnowLoadProperySet)


Gets an interface for a specific snow load property load set by unique ID.
Parameters
lUID
The unique ID of the requested snow load property set
ppISnowLoadPropertySet Pointer to an ISnowLoadPropertySet interface that represents the requested snow load set or NULL if no snow
load property set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISnowLoadPropertySet **ppISnowLoadPropertySet)


Gets an interface for a specific surface load set by index.
Parameters
lIndex
The index into the collection of the requested snow load property set
ppISnowLoadPropertySetSet Pointer to an ISnowLoadPropertySet that represents the requested snow load property set or NULL if lIndex
is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of surface load sets in the receiver.
Parameters
plCount

The number of ISnowLoadPropertySet objects in the collection.

ISnowLoadSet
This interface defines the points of the polygon that define the limits in which a single ISnowLoadPropertySet is applied.

GetControlPointIndex ([in] long IWhichPoint , [out, retval] long* plIndex)


Gets the index for the polygon point associated with the drift control point.
Parameters
IWhichPoint

Point 1, 2, or 3 which is associated with drift magnitude 1, 2, or 3.

plIndex

Index of the drift control point in the polygon.

GetPoints ([out,retval] IPoints **ppIPoints)


Gets an interface for the collection of points in the receiver.
Parameters
ppIPoints

Pointer to an IPoints interface for the points in the receiver.

SetControlPointIndex ([in] long IWhichPoint , [in] long lIndex)


Sets the index for the polygon point associated with the drift control point.
Parameters
IWhichPoint
lIndex

Point 1, 2, or 3 which is associated with drift magnitude 1, 2, or 3.


Index of the drift control point in the polygon.

SetPoints ([in] IPoints *pIPoints , [out, retval] long* plRetval)


Sets an interface for the collection of points in the receiver.
Parameters
pIPoints
plRetVal

An IPoints interface to assign to the receiver.


0 if points were assigned successfully.
-1 if assignment failed.

Properties
Type
long
long

Property
lPropertySetUID
lUID

Get
X
X

Set
X

Description
Unique ID of the snow load property set assigned to this surface load set.
Unique ID of this snow load set.

ISnowLoadSets
This interface provides a collection of ISnowLoadSets, obtained from a single Floor Layout type typically.

Add ([in] BSTR bstrLabel, [out,retval] ISnowLoadSet **ppISnowLoadSet)


Adds a new snow load set to the receiver.

Parameters
bstrLabel
ppISnowLoadSet

The label for the new snow load set.


Pointer to an ISnowLoadSet interface that represents the newly added snow load set.

Delete ([in] long lUID)


Deletes a snow load set from the collection. Returns 0 if the snow load set was deleted successfully or -1 if the unique ID was not found in
the receiver.
Parameters
lUID

Unique ID of snow load set to be deleted

Get ([in] long lUID, [out, retval] ISnowLoadSet **ppISnowLoadSet)


Gets an interface for a specific snow load set by unique ID.
Parameters
lUID
The unique ID of the requested snow load set.
ppISurfaceLoadPropSet Pointer to an ISnowLoadSet interface that represents the requested snow load set, or NULL if no surface load
set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISnowLoadSet **ppISnowLoadSet)


Gets an interface for a specific snow load set by index.
Parameters
lIndex
ppISnowLoadSet

The index into the collection of the requested snow load set
Pointer to an ISnowLoadSet interface that represents the requested snow load set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of snow load sets in the receiver.
Parameters
plCount

The number of ISnowLoadSet objects in the collection.

ISteelBeamDesignResult
This interface represents the steel beam design results for an individual steel beam.

GetNumStudsInSegments ([out, retval] DAArray** ppaINumStudsinSegments)


Gets the collection of stud segments for the steel beam as an array of longs. Use the size of the array to determine the number of stud
segments. Each value in the array represents the number of studs in that segment.
Parameters
ppaINumStudsDAArray Array of longs that represent the number of studs in each segment
plRetval
0 if successful, -1 if failed to set studs

SetNumStudsInSegments ([in] DAArray* paINumStudsInSegments, [out, retval] long* plRetval)


Sets the collection of stud segments for the steel beam as an array of longs. Each value in the array represents the number of studs in that
segment. Note that the number of stud segments for the beam is determined at design time. The number of segments should not be
changed unless to change it to uniformly distributed studs (1 stud segment).
Parameters
paINumStudsDAArray Array of longs that represent the number of studs in each segment
plRetval
0 if successful, -1 if failed to set studs

ISteelCriteria
This interface provides access to all steel design criteria, including the names of the steel design tables used during the design.
Note that all tables must be located in the Tables directory on the target computer.

GetDeckTableEntries ([out, retval] IDeckTableEntries** ppIDeckTableEntries)


Gets the deck table entries.
Parameters
ppIDeckTableEntries

Pointer to an IDeckTableEntries interface that represents the entries in the models deck table.

Properties
Type

Property

Get

Set

Description

Type
BOOL

Property
bUseModelAltBeamSteelTable

Get
X

Set

BOOL

bUseModelMasterTable

BOOL

bWOAllowStiffenerOneSide

BOOL

bWOAllowStiffenerTwoSide

double
double

dJstAllowableStressRatio
dJstDefMaxConcentratedLoads

X
X

X
X

double

dJstDefUniformTolerance

double

dJstDefVariationTolerance

double
double

dWOStiffenerFy
dWOStiffenerLengthInc

X
X

X
X

double

dWOStiffenerMinThickness

double

dWOStiffenerMinWidth

double

dWOStiffenerThicknessInc

double

dWOStiffenerWidthInc

ESteelDesignCode
EJstNonUniformLoadOption
EJstUniformLoadOption
ESteelDesignCode
ESteelDesignCode
BSTR

eBasePlateDesignCode
eJstDefNonUniformLoadOption
eJstDefUniformLoadOption
eSteelBeamDesignCode
eSteelColumnDesignCode
strAltCastellatedTable

X
X
X
X
X
X

X
X
X
X
X
X

BSTR

strAltCellularTable

BSTR

strAltSteelBeamTable

BSTR

strDeckTable

Description
Whether the alternate beam design table used by the model is stored with the
model (TRUE), rather than from the Tables directory (FALSE). No longer
applicable in v14.06.00 and later.
Whether the master table used by the model is stored with the model (TRUE),
rather than from the Tables directory (FALSE). No longer applicable in v14.06.00
and later.
Allow stiffeners on one side of web (used during design of steel beams when
stiffeners are required for web openings)
Allow stiffeners on both sides of web (used during design of steel beams when
stiffeners are required for web openings)
Allowable stress ratio for joists
Maximum concentrated loads in kips (default criteria, applies when
eStlJstNonUniUseEquivalentMethod is specified for
eJstDefNonUniformLoadOption)
Tolerance for variation for uniform load (0-100%) (Default criteria for joists with
uniform load, when eStlJstUniSelectFromStdTable is specified for
eJstDefUniformLoadOption)
Tolerance for variation of loads (default criteria, applies when
eStlJstNonUniUseEquivalentMethod is specified for
eJstDefNonUniformLoadOption)
Fy of stiffeners for web openings
Increment for stiffener length (used during design of steel beams when stiffeners
are required for web openings)
Minimum thickness of stiffeners (used during design of steel beams when
stiffeners are required for web openings)
Minimum width of stiffeners (used during design of steel beams when stiffeners
are required for web openings)
Increment for stiffener thickness (used during design of steel beams when
stiffeners are required for web openings)
Increment for stiffener width (used during design of steel beams when stiffeners
are required for web openings)
Design code to use for design of base plates
Default criteria for joists with non-uniform load
Default criteria for joists with uniform load
Design code to use for design of steel beams
Design code to use for design of steel columns
Alternate castellated beam section table to use when designing cellular beams.
File must have a .cas extension. Maximum 39 characters allowed.
Alternate cellular beam section table to use when designing cellular beams. File
must have a .cel extension. Maximum 39 characters allowed.
Alternate section table to use when designing steel beams. File must have a .bms
extension. Maximum 32 characters allowed.
Deck table to use for composite deck properties. File must have a .dck extension.
Maximum 32 characters allowed.

Type
BSTR

Property
strDefCastellatedTable

Get
X

Set
X

BSTR

strDefCellularTable

BSTR

strDefSteelBeamTable

BSTR

strJstDefCustomLabel

BSTR

strJstDefNonUniCSJstTable

BSTR

strJstDefUniformCSJstTable

BSTR

strJstDefUniformStdJstTable

BSTR

strMasterSteelTable

BSTR

strSteelColumnTable

Description
Default castellated beam section table to use when designing cellular beams. File
must have a .cas extension. Maximum 39 characters allowed.
Default cellular beam section table to use when designing cellular beams. File
must have a .cel extension. Maximum 39 characters allowed.
Default section table to use when designing steel beams. File must have a .bms
extension. Maximum 32 characters allowed.
Custom label for joists with uniform loads (default criteria, applies if
eStlJstUniUseCustomLabel is specified for eJstDefUniformLoadOption). Max 4
characters allowed.
Default constant shear table to use when designing joists with non-uniform loads
(applies if eStlJstNonUniSelectFromCSTable is specified for
eJstDefNonUniformLoadOption). File must have a .csj extension. Maximum 32
characters allowed.
Default constant shear table to use when designing joists with uniform loads
(applies if eStlJstUniSelectFromCSTable is specified for
eJstDefUniformLoadOption). File must have a .csj extension. Maximum 32
characters allowed.
Default standard joist table to use when designing joists with uniform loads
(applies if eStlJstUniSelectFromStdTable is specified for
eJstDefUniformLoadOption). File must have a .jst extension. Maximum 32
characters allowed.
Master section table that lists all sections to be used during design. File must
have a .tab extension. Maximum 32 characters allowed.
Section table to use when designing steel columns. File must have a .col
extension. Maximum 32 characters allowed.

ISteelMaterial
This interface represents a single steel material property set. A members steel material properties can be read and set through this
interface.

Properties
Type
double

Property
dFy

Get
X

Set
X

Description
Yield strength (Fy) of the steel.

IStories
This interface represents a collection of all stories in the model. It can be used to add and delete stories.

Add ([in] long lFlrTypeID, [in] BSTR bstrStoryName, [in] double dFloorHeight, [out, retval] IStory** ppIStory)
Adds a new story to the collection of stories for the model.
Parameters
lFlrTypeID
bstrStoryName
dFloorHeight
ppIStory

The unique ID of the floor type to associate with this story


A label for the story. Limited to 19 characters.
The height of this story (not the elevation, but the distance from floor to ceiling)
Pointer to an IStory interface that represents the newly added story.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes a story with the given unique ID from the collection.
Parameters
lUID
plRetval

Unique ID of story to delete


0 if story is deleted successfully
-1 if unique ID is not found in collection of story

Get ([in] long lUID, [out, retval] IStory** ppIStory)


Gets an interface for a specific story by unique ID.
Parameters
lUID
ppIStory

The unique ID of the requested story


Pointer to an IStory interface that represents the requested story, or NULL if no story is found in the collection with
the given unique ID.

GetAt ([in] long lIndex, [out, retval] IStory** ppIStory)


Gets an interface for a specific story by index.
Parameters
lIndex
ppIStory

The index into the collection of the requested story


Pointer to an IStory interface that represents the requested story, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of stories in the collection.

Parameters
plCount

Number of stories in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for stories.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with
stories

InsertAt ([in] long lIndex, [in] long lFlrTypeID, BSTR bstrStoryName, [in] double dFloorHeight, [out, retval] IStory** ppIStory)
Inserts a story at the specified index. For example, if 0 is the new story index, a new story is added at the lowest level and all other stories
are pushed up one level.
Parameters
lIndex
lFlrTypeID
dFloorHeight
ppIStory

Index where the story is added


Unique ID of the floor type
Story height between the inserted story and the story (or base) below
Pointer to an IStory interface that represents the inserted story.

IStory
This interface represents a single story in the model.

DeleteVerticalBrace ([in] long lBraceID, [out, retval] long* plRetval)


Deletes the vertical brace with the given unique ID.
Parameters
lBraceID
plRetval

Unique ID of vertical brace to delete


0 if vertical brace is deleted successfully
-1 if unique ID is not found in list of vertical braces on this story

GetBeams ([out, retval] IBeams** ppIBeams)

Gets the collection of all beams for this story.


Parameters
ppIBeams

Pointer to an IBeams collection interface that represents all beams associated with this story

GetColumns ([out, retval] IColumns** ppIColumns)


Gets the collection of all columns for this story.
Parameters
ppIColumns

Pointer to an IColumns collection interface that represents all columns associated with this story

GetContinuousFnds ([out, retval] IContinuousFnds** ppIContinuousFnds)


Gets the collection of all continuous foundations for this story.
Parameters
ppIContinuousFnds Pointer to an IContinuousFnds collection interface that represents all continuous foundations associated with this
story

GetDiaphragms ([out, retval] IDiaphragms** ppIDiaphragms)


Gets the collection of all diaphragms for this story. Note that this is equivalent to calling GetDiaphragms2 with eSource set to
eDSFrameAnalysis.
Parameters
ppIDiaphragms

Pointer to an IDiaphragms collection interface that represents all diaphragms associated with this story

GetDiaphragms2 ([in] EDiaphragmSource eSource, [out, retval] IDiaphragms** ppIDiaphragms)


Gets the collection of all diaphragms for this story from the given source.
Parameters
eSource
ppIDiaphragms

The source from which to fetch the diaphragm data. Note that the behavior of the IDiaphragms object is affected
by the source from which it was loaded.
Pointer to an IDiaphragms collection interface that represents all diaphragms associated with this story, populated
from the given source.

GetFloorType ([out, retval] IFloorType** ppIFloorType)

Gets the floor type associated with this story.


Parameters
ppIFloorType

Pointer to an IFloorType interface that represents the floor type associated with this story

GetHorizontalBraces ([out, retval] IHorizBraces** ppIHorizBraces)


Gets the collection of all horizontal braces for this story.
Parameters
ppIHorizBraces

Pointer to an IHorizBraces collection interface that represents all horizontal braces associated with this story

GetIsolatedFnds ([out, retval] IIsolatedFnds** ppIIsolatedFnds)


Gets the collection of all isolated foundations for this story.
Parameters
ppIIsolatedFnds

Pointer to an IIsolatedFnds collection interface that represents all isolated foundations associated with this story

GetMemberReactionNodesFromFloorBelow ([out, retval] IReactionNodes** ppIReactionNodes)


Gets the collection of nodes at the bottom of the story in the concrete analysis finite element model.
Parameters
ppIReactionNodes

Pointer to an IReactionNodes interface that represents a collection of reaction nodes for this member

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the story.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.

Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetTimeStamp ([in] ETimeStampAction eAction, [in] long lObjectID, [in] ETimeStampProperty eProperty, [out] long *plTimestamp,
[out, retval] long *plRetval)
Gets the time stamp of the last update to this story, for the given action and property.
Parameters
eAction
lObjectID

eProperty

plTimestamp
plRetval

The action for which the timestamp was recorded (see enum for action types)
The Unique ID of the object type, can be any member ID (Note that the timestamp is not for the specific member
identified but the type, i.e. if a beam unique id is used the timestamp will be for the most recent action for a
member of that type).
For some objects the property that changed may be of importance as well. For example, to find the most recent
time that a beam size was changed you would pass in the eTSSize property along with a beam unique ID and an
action.
The time in seconds since Jan 1, 1969
0 if time stamp retrieved successfully

GetVerticalBraces ([out, retval] IVerticalBraces** ppIVerticalBraces)


Gets the collection of all vertical braces whose top node attaches to this story.
Parameters
ppIVerticalBraces

Pointer to an IVerticalBraces collection interface that represents all vertical braces at this story

GetWalls ([out, retval] IWalls** ppIWalls)


Gets the collection of all walls for this story.
Parameters
ppIWalls

Pointer to an IWalls collection interface that represents all walls associated with this story

GetZForPoint ([in] double dX, [in] double dY, [out, retval] double *pdZ)
Gets the elevation of a point inside the slab edge on a story. The method will fail if the point is outside of the slab edge.
Parameters

dX
dY
pdZ

X coordinate of the point


Y coordinate of the point
Z coordinate on the story cooresponding to the X and Y coordinates

IsolateFloorType ()
If there are any other stories using the floor type referenced by the story, a copy of the floor type is made and assigned to the other stories.

Properties
Type
BOOL
double

Property
bStySpliceAtSty
dElevation

Get
X
X

Set
X

Description
If TRUE, all columns will be spliced at this story
The elevation of the story from ground level to the bottom of the story

double
long
long
BSTR

dFlrHeight
lLevel
lUID
strLabel

X
X
X
X

The height of this story (not the elevation, but the distance from floor to ceiling)
The level of the story, with 1 being the lowest story
Unique ID of story.
Label of story. Limited to 19 characters.

IStress
This interface is used represent a single stress. Refer to the RAM Concrete Shear Wall manual for sign convention.

Properties
Type
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE
DOUBLE

Property
dS11
dS12
dS13
dS22
dS23
dS33
dSAvgMax
dSMax
dSMin
dSVMax

Get
X
X
X
X
X
X
X
X
X
X

Set

Description
In plane normal stress.
In plane shear stress along an edge.
Transverse shear stress.
In plane normal stress.
Transverse shear stress.
Transverse direct stress.
Average stress.
Maximum in plane principal stress
Minimum in plane principal stress
Maximum shear stress.

IStresses
This interface is used to hold a collection of IStress objects.

GetAt ([in] long lIndex, [out, retval] IStress** ppIStress)


Gets the IStress object at the specified index.
Parameters
lIndex
ppIStress

The index of the specified stress.


The IStress object at the specified index.

GetCount ([out,retval] long** plCount)


Gets number of IStress objects in the collection.
Parameters
plCount

The number of INode objects in the collection.

IStringValue
Internal use only.

ISurfaceLoadPropertySet
This interface provides the properties of a surface load as defined in the RAM Modeler. These properties are typically associated
with ISurfaceLoadSets which define the extents (polygon) in which these properties are to be applied.

Properties
Type
double
double
double
double
double
double

Property
dConstDeadLoad
dConstLiveLoad
dDeadLoad
dLiveLoad
dMassDeadLoad
dPartitionLoad

Get
X
X
X
X
X
X

Set
X
X
X
X
X
X

Description
Magnitude of construction dead load entered for this surface load.
Magnitude of construction live load entered for this surface load.
Magnitude of dead load entered for this surface load.
Magnitude of live load entered for this surface load.
Mass dead load magnitude (positive is down)
Madgnitude of partition load entered for theis surface load

Type
ELoadCaseType

Property
eLiveLoadType

Get
X

Set
X

long
BSTR

lUID
strLabel

X
X

Description
Flag describing the type of live load defined by this surface load
property set. While ELoadCaseType enumerates all possible load
case types, only the live load type is returned in this parameter. The
possible return values are: LiveReducibleLCa, LiveStorageLCa,
LiveUnReducibleLCa, and LiveRoofLCa.
Unique ID of surface load property set.
Label of surface load property set.

ISurfaceLoadPropertySets
This interface represents a collection of ISurfaceLoadPropertySet objects.

Add ([in] BSTR bstrLabel, [out,retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)


Adds a new surface load property set to the receiver.
Parameters
bstrLabel
The label for the new surface load property set.
ppISurfaceLoadPropSet Pointer to an ISurfaceLoadPropertySet interface that represents the newly added surface load property set.

Delete ([in] long lUID, [out, retval] long *plRetval)


Deletes a surface load property set from the collection.
Parameters
lUID
plRetval

Unique ID of floor type to be deleted


0 if surface load property set is deleted successfully
-1 if the unique ID was not found in the receiver.

Get ([in] long lUID, [out, retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)


Gets an interface for a specific surface load property set by unique ID.
Parameters
lUID
ppFloorType

The unique ID of the requested surface load property set.


Pointer to an ISurfaceLoadPropertySet interface that represents the requested surface load property set, or NULL if no
surface load property set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)


Gets an interface for a specific surface load property set by index.
Parameters
lIndex
The index into the collection of the requested surface load property set
ppISurfaceLoadPropSet Pointer to an ISurfaceLoadPropertySet interface that represents the requested surface load property set, or
NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of surface load property sets in the receiver.
Parameters
plCount

The number of ISurfaceLoadPropertySet objects in the collection.

ISurfaceLoadSet
This interface defines the points of the polygon that define the limits in which a single SurfacePropertyLoadSet is applied.

GetPoints ([out,retval] IPoints **ppIPoints)


Gets an interface for the collection of points in the receiver.
Parameters
ppIPoints

Pointer to an IPoints interface for the points in the receiver.

SetPoints ([in] IPoints *pIPoints , [out, retval] long* plRetval)


Sets an interface for the collection of points in the receiver.
Parameters
pIPoints
plRetVal

An IPoints interface to assign to the receiver.


0 if points were assigned successfully.
-1 if assignment failed.

ISurfaceLoadSet Properties
Type

Property

Get

Set

Description

Type
long
long

Property
lPropertySetUID
lUID

Get
X
X

Set
X

Description
Unique ID of the surface load property set to which this surface load set belongs.
Unique ID of this surface load set.

ISurfaceLoadSets
This interface provides a collection of ISurfaceLoadSets, obtained from a single Floor Layout type typically.

Add ([in] BSTR bstrLabel, [out,retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)


Adds a new surface load set to the receiver.
Parameters
bstrLabel
The label for the new surface load set.
ppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the newly added surface load set.

Delete ([in] long lUID, [out, retval] long *plRetval)


Deletes a surface load set from the collection.
Parameters
lUID
plRetval

Unique ID of surface load set to be deleted


0 if surface load set is deleted successfully
-1 if the unique ID was not found in the receiver.

Get ([in] long lUID, [out, retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)


Gets an interface for a specific surface load set by unique ID.
Parameters
lUID
The unique ID of the requested surface load set.
ppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the requested surface load set, or NULL if no surface
load set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)


Gets an interface for a specific surface load set by index.

Parameters
lIndex
The index into the collection of the requested surface load set
ppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the requested surface load set, or NULL if lIndex is
invalid.

GetCount ([out, retval] long *plCount)


Gets the number of surface load sets in the receiver.
Parameters
plCount

The number of ISurfaceLoadSet objects in the collection.

ITable
This interface is used represent a generic database table.

DeleteRecord ([in] BSTR bstrFieldName, [in] long lFieldValue)


Deletes a record by field value. The specified field must be a field that was created with bIndexed set to 1.
Parameters
bstrFieldName
lFieldValue

The name of the field to match lFieldValue with.


The value in the field named bstrFieldName. The record that has the given value for the given field will be
deleted.

GetRecord ([in] BSTR bstrFieldName, [in] long lFieldValue, [out,retval] IRecord** ppIRecord)
Gets an interface for a specific record by field value. The specified field must be a field that was created with bIndexed set to 1.
Parameters
bstrFieldName
lFieldValue
ppIRecord

The name of the field to match lFieldValue with.


The value in the field named bstrFieldName.
Pointer to an IRecord interface that represents the requested record, or NULL if no records have the given
value in the given field.

Properties
Type
IFields

Property
pIFields

Get
X

Set

Description
The fields in the table.

Type
IRecords
BSTR

Property
pIRecords
strName

Get
X
X

Set

Description
The records in the table.
The name of the table.

ITrialGroup
This interface represents a steel column trial group.

GetGroupName ([in] ESteelShapes peShape, [out, retval] BSTR bstrGroupName)


Gets the name of the trial group for the section type (W12, HSS8X8, etc.).
Parameters
peShape
bstrGroupName

Steel section shape type


Trial group name for the section type (W12, HSS8X8, etc)

GetShapeName ([in] ESteelShapes peShape, [out, retval] BSTR bstrShapeName)


Gets the description of the section type (I section, Rectangular HS, etc).
Parameters
peShape
bstrShapeName

Steel section shape type


Description of the section type (I section, Rectangular HS, etc)

SetGroupName ([in] ESteelShapes peShape, [in] BSTR bstrGroupName)


Sets the name of the trial group for the section type (W12, HSS8X8, etc).
Parameters
peShape
bstrGroupName

Steel section shape type


Trial group name for the section type (W12, HSS8X8, etc)

Properties
Type
BOOL

Property
bEnabled

Get
X

Set
X

Description
Indicates whether or not this trial group is selected.

ITrialGroups
This interface represents a collection of ITrialGroup objects.

GetAt ([in] long lIndex, [out, retval] ITrialGroup ** ppITrialGroup)


Gets an interface for a specific trial group by index.
Parameters
lIndex
ppITrialGroup

The index into the collection of the requested trial group.


Pointer to an ITrialGroup interface that represents the requested trial group, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of trial groups in the receiver.
Parameters
plCount

The number of ITrialGroup objects in the collection.

IVerticalBrace
This interface represents a single vertical brace. This interface can be used to modify the location of the brace or to change its
properties.

GetConnectionForces ([in] ECOMBOTYPES eComboType, [in, out] SForce* psForceTop, [in, out] SForce* psForceBot, [out,
retval] long* plRetval)
Gets the brace connection forces by material combo.
Parameters
eComboType
psForceTop
psForceBot
plRetval

Combination type.
SForce at the top end of the brace
SForce at the bottom end of the brace
0 if successful, -1 if forces cannot be retrieved

GetEndCoordinates ([out] SCoordinate* pTopPoint, [out] SCoordinate* pBottomPoint, [out, retval] long* plRetval)
Gets the end coordinates for the vertical brace.

Parameters
pTopPoint
pBottomPoint
plRetval

SCoordinate corresponding to the top of the brace


SCoordinate corresponding to the bottom of the brace
0 if successful
-1 if coordinates cannot be retrieved

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.
Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

SetEndCoordinates ([in] long lTopStoryID, [in] double dTopX, [in] double dTopY, [in] double dTopZOffset, [in] long lBotStoryID,
[in] double dBotX, [in] double dBotY, [in] double dBotZOffset, [out, retval] long* plRetval)
Gets the end coordinates for the vertical brace.
Parameters
lTopStoryID
dTopX
dTopY
dTopZOffset
lBotStoryID
dBotX
dBotY
dBotZOffset
plRetval

Unique ID of story that top node of brace frames into


X coordinate of top of the brace.
Y coordinate of top of the brace
Z offset value from the story elevation for top of brace
Unique ID of story that bottom node of brace frames into
X coordinate of end of the wall (j-end).
Y coordinate of end of the wall (j-end).
Z offset value from the story elevation for the bottom of the brace (measured from the elevation of the story
indicated by lBotStoryID).
0 if successful
-1 if coordinates cannot be set

Properties
Type
BOOL
BOOL

Property
bBucklingRestrained
bDblAngleLLBacktoBack

Get
X
X

Set
X
X

BOOL

bDblAngleSnugTightBolt

BOOL
BOOL
BOOL
BOOL
BOOL

bMajAxisBendFixedBot
bMajAxisBendFixedTop
bMinAxisBendFixedBot
bMinAxisBendFixedTop
bSglAngleLLHorizontal

X
X
X
X
X

X
X
X
X
X

BOOL
BOOL
BOOL
BOOL
BOOL
double
double

bStarSeismicUseAssigned
bStarSeismicUseCalcStiffMod
bTorFixedBot
bTorFixedTop
bWildcatBRB
dBRBFAxialStiffMultiplier
dDblAngleBackSpacing

X
X
X
X
X
X
X

X
X
X
X
X
X
X

double
double
double
double
double
double
double
double
double
double
ETensionCompressionMemType
EMATERIALTYPES

dStarSeismicFyMax
dStarSeismicFyMin
dStarSeismicLowerFromBeam
dStarSeismicLowerFromColumn
dStarSeismicStiffModUseVal
dStarSeismicUpperFromBeam
dStarSeismicUpperFromColumn
dUnbracedLengthAxialLX
dUnbracedLengthAxialLY
dUnbracedLengthFlexLY
eAnalysisType
eMaterial

X
X
X
X
X
X
X
X
X
X
X
X

X
X
X
X
X
X
X
X
X
X
X
X

ESeismicProvFrameType
long
long

eSeismicFrameType
lFrameNumber
lLabel

X
X
X

long

lMaterialID

Description
True if the braced is a buckling restrainted brace.
Applies to a steel vertical brace that has been assigned a double angle
section. If TRUE, long legs of double angle are back to back. If FALSE,
short legs are back to back.
Applies to a steel vertical brace that has been assigned a double angle
section. TRUE indicates that only a snug tight connector will be used.
Major axis bending release at bottom of vertical brace.
Major axis bending release at top of vertical brace.
Minor axis bending release at bottom of vertical brace.
Minor axis bending release at top of vertical brace.
Applies to a steel vertical brace that has been assigned a single angle
section. TRUE indicates that the long leg of the angle is horizontal. FALSE
indicates that the long leg is vertical.
TRUE if use assigned is toggled
TRUE if use calculated is toggled
Torsion release at bottom of vertical brace.
Torsion release at top of vertical brace.
Wildcat buckling restrained brace
Buckling restrained brace axial stiffness multiplier used in analysis
Spacing distance between angles of double angle section. Applies to a steel
vertical brace that has been assigned a double angle section.
Maximum yield strength of Star Seismic BRB
Minimum yield strength of Star Seismic BRB
Minimum clearance from lower beam
Minimum clearance from lower column
User assigned stiffness modifier if bStarSeismicUseAssigned is TRUE
Minimum clearance from upper beam
Minimum clearance from upper column
Axial unbraced length for buckling about the X axis
Axial unbraced length for buckling about the Y axis
Flexural unbraced length for lateral torisional buckling
Indicates whether vertical brace takes tension, compression, or both
Material type of vertical brace. Valid options for vertical braces are
ESteelMat, EConcreteMat, or EOtherMat.
The Seismic Frame Type of the member (Special Moment Frame, etc).
Frame number for lateral members. It must be positive number.
Numeric label of vertical brace used for on-screen display in RAM Structural
System.
Unique ID of material properties for this vertical brace. Must correspond to
type of material. See section Getting material properties for a member for
more information.

Type
long

Property
lSectionID

Get
X

Set
X

long

lStarSeismicCheckBoxes

long
long
long
long

lStoryAtBotID
lStoryAtTopID
lUID
lUnbracedLength

X
X
X
X

ESeismicProvFrameType
BSTR

SeismicFrameType
strSectionLabel

X
X

Description
Unique ID of concrete or Other section assigned to this vertical brace. See
Assigning section properties to concrete members and Assigning section
properties to Other members for more information.
Unbraced length flags. Sum the appropriate flags to determine the
appropriate value for the settings.
0 Use Global
1 Yield Strength checked
2 Minimum Clearance checked
4 Stiffness Modifier checked
Unique ID of story into which bottom of brace frames
Unique ID of story into which top of brace frames
Unique ID of vertical brace.
Unbraced length flags. Sum the appropriate flags to determine the
appropriate value for the settings.
0 All global
1 Override global UnbracedLengthAxialLX
2 Override global UnbracedLengthAxialLY
4 User defined UnbracedLengthAxialLX
8 User defined UnbracedLengthAxialLY
32 Override global UnbracedLengthFlexLY
128 User defined UnbracedLengthFlexLY
The Seismic Frame Type of the member (Special Moment Frame, etc)
Label of the size or section property for this vertical brace. Limited to 15
characters. See Assigning sizes to steel members, Assigning section
properties to concrete members, and Assigning section properties to Other
members for more information.

IVerticalBraces
This interface represents a collection of vertical braces. When it is obtained from the IModel interface, it will represent all vertical
braces in the model. When it is obtained from the IStory interface, it will represent the collection of all vertical braces whose top
nodes frames into the given story. Since vertical braces are associated with the 2 stories that its nodes frame into, and not with a
floor type, there is no corresponding ILayoutVerticalBraces interface. This interface can be used to add and delete vertical braces
from the model.

Add ([in] EMATERIALTYPES eMat, [in] long lTopStoryID, [in] double dTopX, [in] double dTopY, [in] double dTopZOffset, [in] long
lBotStoryID, [in] double dBotX, [in] double dBotY, [in] double dBotZOffset [out, retval] IVerticalBrace** ppIVerticalBrace)
Adds a new vertical brace to the collection of vertical braces.

Parameters
eMat
lTopStoryID
dTopX
dTopY
dTopZOffset
lBotStoryID
dBotX
dBotY
dBotZOffset
ppIVerticalBrace

Material type of vertical brace to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat).
Unique ID of story that top node of brace frames into
X coordinate of top of the brace.
Y coordinate of top of the brace
Z offset value from the story elevation for top of brace
Unique ID of story that bottom node of brace frames into, or -1 if at ground level
X coordinate of end of the wall (j-end).
Y coordinate of end of the wall (j-end).
Z offset value from the story elevation for the bottom of the brace (measured from the elevation of the story
indicated by lBotStoryID).
Pointer to an IVerticalBrace interface that represents the newly added vertical brace.

Delete ([in] long lUID, [out, retval] long* plRetval)


Deletes the vertical brace with the given unique ID.
Parameters
lUID
plRetval

Unique ID of vertical brace to delete


0 if vertical brace is deleted successfully
-1 if unique ID is not found in filtered list of vertical braces

Filter ([in] EVerticalBraceFilter eVertBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of vertical braces based on given criteria.
Parameters
eVertBraceFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection (see table below for filter types)
Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IVerticalBrace** ppIVerticalBrace)


Gets an interface for a specific vertical brace by unique ID.
Parameters
lUID
ppIVerticalBrace

The unique ID of the requested vertical brace


Pointer to an IVerticalBrace interface that represents the requested vertical brace, or NULL if no vertical brace is
found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IVerticalBrace** ppIVerticalBrace)


Gets an interface for a specific vertical brace by index.
Parameters
lIndex
ppIVerticalBrace

The index into the collection of the requested vertical brace


Pointer to an IVerticalBrace interface that represents the requested vertical brace, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of vertical braces in the collection. When the collection is filtered, this function returns the number in the filtered collection.
Parameters
plCount

Number of vertical braces in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IWall
This interface represents a single wall. This is a column associated with a story, rather than a floor type. This interface can be used
to read data for a wall at a story. To change coordinates, use the ILayoutWall interface.

GetDisplacementForLoadCombo ([in] ILoadCombination *pILoadCombination, [out, retval] SCoordinate *pDisplacement)


Gets the average relative displacements associated with this wall for the given load combo. Average displacements at top and bottom edge
of the wall is first calculated and then difference between the top average and bottom average is returned.

Parameters

pILoadCombination
pDisplacement

The load combination to use in the displacement calculation.


Relative average displacements in global X, Y and Z directions

GetEndCoordinates ([out] SCoordinate* pTopStartPoint, [out] SCoordinate* pTopEndPoint, [out] SCoordinate* pBotStartPoint,
[out] SCoordinate* pBotEndPoint [out, retval] long* plRetval)
Gets the coordinates for the wall.
Parameters
pTopStartPoint
pTopEndPoint
pBotStartPoint
pBotEndPoint
plRetval

SCoordinate corresponding to the start of the wall at the top


SCoordinate corresponding to the end of the wall at the top
SCoordinate corresponding to the start of the wall at the bottom
SCoordinate corresponding to the end of the wall at the bottom
0 if successful
-1 if coordinates cannot be retrieved

GetFinalOpenings ([out, retval] IFinalWallOpenings** ppIFinalWallOpenings)


Gets the final wall openings associated with this wall. Final openings are all openings that fall at least partially on this wall, and are clipped
to the wall polygon.
Parameters
ppIFinalWallOpenings Pointer to an IFinalWallOpenings collection interface that represents the raw openings in the wall.

GetNodeForcesAtEdge ([in] EAnalysisResultType eAnalysisType, [in] long lAnalysisLoadCaseID, [in] EEdge edge, [out,retval]
IPointLoads** ppINodeForces)
Gets a collection of all the nodes and their corresponding force for a given analysis type, load case ID and wall edge. Node forces will be
with respect to the global axis.
Parameters
eAnalysisType
lAnalysisLoadCaseID
edge
ppINodeForces

Type of analysis for which to get force (Currently, only RAMFrameResultType supported)
Analysis load case ID for which to get force
The edge along which node forces are to be provided.
Pointer to an IPointLoads interface that represents the collection of forces at the given edge for the given load
case.

GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)


Gets a collection of user-defined properties for the member.

Parameters
strCustomProps
ppIProperties

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IProperties interface that represents a collection of properties for this member

GetProperty ([in] BSTR bstrPropName, [out, retval] IProperty** ppIProperty)


Gets an interface for a specific property by property name.
Parameters
bstrPropName
ppIProperty

The name of the requested property


Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given
name.

GetRawOpenings ([out, retval] IRawWallOpenings** ppIRawWallOpenings)


Gets the raw wall openings associated with this wall. Raw openings are the openings that were modeled in a wall. Depending on how the
openings were modeled, the openings may span multiple walls or may not even lie within the wall in which they were modeled. However,
the openings remain associated with the wall in which they were initially modeled. Note that this collection of openings may not include all
openings that fall within this wall since some openings modeled in adjacent walls may fall within this wall. To get all openings that intersect
this wall, use the GetFinalOpenings() method.
Parameters
ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

GetRawSectionCuts ([out, retval] IRawWallSectionCuts** ppIRawWallSectionCuts)


Gets the raw wall section cuts associated with this wall. Raw openings are the section cuts that start in a wall. Depending on how the
openings were modeled, the openings may span multiple walls. Note that this collection of section cuts may not include all openings that
fall within this wall since some section cuts modeled in adjacent walls may fall within this wall.
Parameters
ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

GetTotalDisplacementForLoadCombo ([in] ILoadCombination *pILoadCombination, [in] BOOL bTopOfStory, [out, retval]


SCoordinate *pDisplacement)

Gets the average displacements associated with this wall for the given load combo at the top or bottom of the wall. If the top of the wall
requested (bTopOfStory=TRUE), average displacements at top edge of the wall is returned. If the bottom of the wall requested
(bTopOfStory=FALSE), average displacements at bottom edge of the wall is returned.

Parameters
pILoadCombination
bTopOfStory
pDisplacement

The load combination to use in the displacement calculation.


If TRUE, the displacements returned for the top of the wall (or at the top story)
Average displacements at top of bottom of the wall in global X, Y and Z directions

GetWallFEs ([in] EAnalysisResultType eAnalysisType, [out, retval] IWallFEs** ppIWallFEs)


Gets the wall FE collection associated with this wall.
Parameters
ppIWallFEs

Pointer to an IWallFEs collection interface that represents the wall FEs for the wall.

Properties
Type
double
double
double

Property
dCrackedFactor
dCrackedFactorForBending
dEndZBotOffset

Get
X
X
X

Set
X
X
X

double

dStartZBotOffset

double
EFRAMETYPE
EMATERIALTYPES

dThickness
eFramingType
eMaterial

X
X
X

long

eSharingLoadType

long
long

lDxfElevNumber
lFrameNumber
lLabel

X
X
X

X
X

Description
Cracked factor for membrane. Applies if wall is concrete.
Cracked factor for out-of-plane bending. Applies if wall is concrete.
Bottom z offset from story below elevation (or foundation) for end of wall. This is made
available because the offset at the bottom of the wall (at the transition between floortypes or at
the foundation) may differ from that at the other stories that use the floortype. This is true if the
member a wall sits on is lowered or raised.
Bottom z offset from story below elevation (or foundation) for start of wall. This is made
available because the offset at the bottom of the wall (at the transition between floortypes or at
the foundation) may differ from that at the other stories that use the floortype. This is true if the
member a wall sits on is lowered or raised.
Thickness of wall
Whether member is lateral or gravity
Material type of wall. Valid options for walls are EWallPropConcreteMat or
EWallPropOtherMat.
Returns sharing load type:
-1:
None
Entirely two-way
0:
Entirely one-way
1:
2:
One-way and two-way
DXF elevation number
Frame number for lateral members. Must be positive number.
Numeric label of wall used for on-screen display in RAM Structural System. It is unique per
floor type.

Type
long

Property
lMaterialID

Get
X

long
long

lUID
lWallGroupNumber

X
X

Set

Description
Unique ID of material properties for this wall. Must correspond to type of material. See
section Getting material properties for a member for more information.
Unique ID of wall.
Wall group number assigned in RAM Frame

IWallBarLayout
Concrete wall bar layout information.

GetHorizBarPattern ([out,retval] IWallBarPattern** ppIWallBarPattern)


Gets the receivers horizontal bar pattern.
Parameters
ppIWallBarPattern

Pointer to an IWallBarPattern interface that contains the the receivers horizontal bar pattern.

GetMyWallPanel ([out,retval] IWallPanel **ppIWallPanel)


Gets a pointer to the interface of the wall panel the receiver belongs to.
Parameters
ppIWallPanel

Pointer to an IWallPanel interface for the wall panel that the receiver belongs to.

GetVertBarPattern ([out,retval] IWallBarPattern** ppIWallBarPattern)


Gets the receivers vertical bar pattern.
Parameters
ppIWallBarPattern

Pointer to an IWallBarPattern interface that contains the the receivers vertical bar pattern.

GetWallBarSets ([out,retval] IWallBarSets **ppIWallBarSets)


Gets the collection of wall bar sets in the receiver.
Parameters
ppIWallBarSets

Pointer to an IWallBarSets interface that contains the wall bar sets in the receiver.

Properties
Type
BOOL
long

Property
bUserDef
lUID

Get
X
X

Set
X

Description
Indicates whether or not this wall bar layout contains any user-defined bars.
The unique ID of this wall bar layout.

IWallBarLayouts
This interface represents a collection of IWallBarLayout objects.

Add ([in] long lHorizBarPatternID, [in] long lVertBarPatternID, [in] BOOL bUserDefinedBars, [out,retval] IWallBarLayout
**ppIWallBarLayout)
Adds a new wall bar layout to the receiver.
Parameters
lHorizBarPatternID
lVertBarPatternID
bUserDefinedBars
ppIWallBarLayout

The bar pattern ID of the horizontal bars in the new wall bar layout.
The bar pattern ID of the vertical bars in the new wall bar layout.
Indicates whether or not the new wall bar layout contains any user-defined bars.
Pointer to an IWallBarLayout interface that represents the newly added wall bar layout.

Clear ()
Deletes all wall bar layouts from the collection.

Delete ([in] long lUID)


Deletes a wall bar layout from the collection.
Parameters
lUID

Unique ID of the wall bar layout to delete.

Get ([in] long lUID, [out, retval] IWallBarLayout ** ppIWallBarLayout)


Gets an interface for a specific wall bar layout by unique ID.
Parameters
lUID
ppIWallBarLayout

The unique ID of the requested wall bar layout.


Pointer to an IWallBarLayout interface that represents the requested wall bar layout, or NULL if no wall bar layout is

found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallBarLayout ** ppIWallBarLayout)


Gets an interface for a specific wall bar layout by index.
Parameters
lIndex
ppIWallBarLayout

The index into the collection of the requested wall bar layout.
Pointer to an IWallBarLayout interface that represents the requested wall bar layout, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall bar layouts in the receiver.
Parameters
plCount

The number of IWallBarLayout objects in the collection.

IWallBarPattern
This interface represents a particular bar pattern. They are generated based on the settings in a wall bar pattern template. One wall
bar pattern is generated for every possible combination of values in a bar pattern template.

GetMyWallPatternTemplate ([out,retval] WallBarPatternTemplate** ppWallBarPatternTemplate)


Gets an interface for the receivers wall bar pattern template.
Parameters
ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface for the receivers wall bar pattern template.

Properties
Type
double
double
long
long
BSTR

Property
dDiameter
dSpacing
lBarPatternTemplateID
lUID
strBarSize

Get
X
X
X
X
X

Set

Description
The diameter (in inches) of the bars in the pattern.
The spacing between bars in the pattern.
The unique ID of the WallBarPatternTemplate to which this wall bar pattern belongs.
The unique ID of this wall bar pattern.
The name (from the concrete table) of the size of the bars in the pattern.

IWallBarPatterns
This interface represents a collection of wall bar patterns.

Get ([in] long lUID, [out, retval] IWallBarPattern ** ppIWallBarPattern)


Gets an interface for a specific wall bar pattern by unique ID.
Parameters
lUID
ppIWallBarPattern

The unique ID of the requested wall bar pattern.


Pointer to an IWallBarPattern interface that represents the requested wall bar pattern, or NULL if no wall bar pattern
is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallBarPattern ** ppIWallBarPattern)


Gets an interface for a specific wall bar pattern by index.
Parameters
lIndex
ppIWallBarPattern

The index into the collection of the requested wall bar pattern
Pointer to an IWallBarPattern interface that represents the requested wall bar pattern, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall bar patterns in the receiver.
Parameters
plCount

The number of IWallBarPattern objects in the collection.

Add ([in] BSTR bstrBarSize, [in] double dSpacing, [in] double dDiameter, [out,retval] IWallBarPattern** ppIWallBarPattern)
Adds a new wall bar pattern to the receiver.
Parameters
bstrBarSize
dSpacing
dDiameter
ppIWallBarPattern

Clear ()

The bar size name of the new wall bar pattern. This must be a valid bar size from the concrete table.
The spacing between bars in the new wall bar pattern.
The diameter of bars in the new wall bar pattern. This must be the appropriate number for the given bstrBarSize
value.
Pointer to an IWallBarPattern interface that represents the newly added wall bar pattern.

Deletes all wall bar patterns from the collection.

DeleteAt ([in] long lIndex)


Deletes a wall bar pattern from the collection at the specified index.
Parameters
lIndex

Index in the collection of the wall bar pattern to delete.

IWallBarPlacement
Concrete wall bar placement information.

GetMyWallBarSet ([out,retval] IWallBarSet** ppIWallBarSet)


Gets a pointer to the interface of the wall bar layout the receiver belongs to.
Parameters
ppIWallBarSet

Pointer to an IWallBarSet interface for the wall bar set that the receiver belongs to.

Properties
Type
BOOL
double
EBarEndCondition
EBarEndCondition
long
SCoordinate
SCoordinate
BSTR

Property
bUserDefined
dDiameter
eConditionEnd
eConditionStart
lNumCurtains
sCoordinateEnd
sCoordinateStart
strBarName

Get
X
X
X
X
X
X
X
X

Set

Description
User defined flag
Bar diameter
End condition
Start condition
Number of reinforcing curtains
End coordinates
Start coordinates
Bar name

IWallBarPlacements
This interface represents a collection of IWallBarPlacement objects.

Add ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [in] EBarEndCondition eStartCondition, [in]
EBarEndCondition eEndCondition, [in] BOOL bUserDefined, [in] BSTR strBarName, [in] double dDiameter, [in] long lNumCurtains,
[out,retval] IWallBarPlacement** ppIWallBarPlacement)
Adds a new wall bar placement to the receiver.
Parameters
dStartX
dStartY
dEndX
dEndY
eStartCondition
eEndCondition
bUserDefined
strBarName
dDiameter
lNumCurtains
ppIWallBarPlacement

Start X coordinate
Start Y coordinate
End X coordinate
End Y coordinate
Start condition
End condition
User defined flag
Bar name
Bar diameter
Number of reinforcing curtains
Pointer to an IWallBarPlacement interface that represents the newly added wall bar placement.

Clear ()
Deletes all wall bar placements from the collection.

DeleteAt ([in] long lIndex)


Deletes a wall bar placement from the collection by index.
Parameters
lIndex

Index in the collection of the wall bar placement to delete.

GetAt ([in] long lIndex, [out, retval] IWallBarPlacement ** ppIWallBarPlacement)


Gets an interface for a specific wall bar placement by index.
Parameters
lIndex
The index into the collection of the requested wall bar placement.
ppIWallBarPlacement Pointer to an IWallBarPlacement interface that represents the requested wall bar placement, or NULL if lIndex is
invalid.

GetCount ([out, retval] long *plCount)

Gets the number of wall bar placements in the receiver.


Parameters
plCount

The number of IWallBarPlacement objects in the collection.

IWallBarSet
Concrete wall bar set information.

GetWallBarPlacements ([out,retval] IWallBarPlacements** ppIWallBarPlacements)


Gets the collection of wall bar placements in the receiver.
Parameters
ppIWallBarPlacements Pointer to an IWallBarPlacements interface that contains the wall bar sets in the receiver.

GetMyWallBarLayout ([out,retval] IWallBarLayout** ppIWallBarLayout)


Gets a pointer to the interface of the wall bar layout the receiver belongs to.
Parameters
ppIWallBarLayout

Pointer to an IWallBarLayout interface for the wall bar layout that the receiver belongs to.

Properties
Type
long

Property
lUID

Get
X

Set

Description
The unique ID of this wall bar set.

IWallBarSets
This interface represents a collection of IWallBarSet objects.

Add ([out,retval] IWallBarSet** ppIWallBarSet)


Adds a new wall bar set to the receiver.
Parameters

ppIWallBarSet

Pointer to an IWallBarSet interface that represents the newly added wall bar set.

Clear ()
Deletes all wall bar sets from the collection.

Delete ([in] long lUID)


Deletes a wall bar set from the collection.
Parameters
lUID

Unique ID of the wall bar set to delete.

Get ([in] long lUID, [out, retval] IWallBarSet ** ppIWallBarSet)


Gets an interface for a specific wall bar set by unique ID.
Parameters
lUID
ppIWallBarSet

The unique ID of the requested wall bar set.


Pointer to an IWallBarSet interface that represents the requested wall bar set, or NULL if no wall bar set is found in
the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallBarSet ** ppIWallBarSet)


Gets an interface for a specific wall bar set by index.
Parameters
lIndex
ppIWallBarSet

The index into the collection of the requested wall bar set.
Pointer to an IWallBarSet interface that represents the requested wall bar set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall bar sets in the receiver.
Parameters
plCount

The number of IWallBarSet objects in the collection.

IWallCodeMessage
Represents a design code message related to a particular limit check. The message is what is returned to the user as a verbose
description of the success or failure of a particular limit check.

Properties
Type
long

Property
iTypeIndex

Get
X

BSTR
long
long
long

lElementUID
lID
lLimitCheckID
strMessage

X
X
X
X

Set

Description
A type code that qualifies the severity of this message:
0: None
1: Informative only
2: Warning (non-failing)
3: Failure
The unique ID of the element (member) related to this message.
The unique ID of this wall code message.
The unique ID of the limit check with which this code message is related.
The design message describing the status of the limit check.

IWallCodeMessages
This interface represents a collection of IWallCodeMessage objects.

Add ([in] long iTypeIndex, [in] BSTR strMessage, [in] long lElementUID, [out,retval] IWallCodeMessage** ppIWallCodeMessage)
Adds a new wall code message to the receiver.
Parameters
iTypeIndex
strMessage
lElementUID
ppIWallCodeMessage

A type code that qualifies the severity of the message. Refer to IWallCodeMessage properties for
possible values.
The design message describing the status of the limit check.
The unique ID of the element (member) related to this message.
Pointer to an IWallCodeMessage interface that represents the newly added wall code message.

Clear ()
Deletes all wall code messages from the collection.

Delete ([in] long lID)


Deletes a wall code message from the collection.

Parameters
lID

Unique ID of the wall code message to delete.

Get ([in] long lID, [out, retval] IWallCodeMessage ** ppIWallCodeMessage)


Gets an interface for a specific wall code message by unique ID.
Parameters
lID
The unique ID of the requested wall code message.
ppIWallCodeMessage Pointer to an IWallCodeMessage interface that represents the requested wall code message, or NULL if no wall
code message is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallCodeMessage ** ppIWallCodeMessage)


Gets an interface for a specific wall code message by index.
Parameters
lIndex
The index into the collection of the requested wall code message.
ppIWallCodeMessage Pointer to an IWallCodeMessage interface that represents the requested wall code message, or NULL if lIndex is
invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall code messages in the receiver.
Parameters
plCount

The number of IWallCodeMessage objects in the collection.

IWallCodeResult
Represents the result of the analysis of a certain section cut with a certain load case or combination.

GetWallLimitChecks ([out, retval] IWallLimitChecks** ppIWallLimitChecks)


Gets a the collection of wall limit checks for this wall code result.
Parameters

ppIWallLimitChecks

Pointer to an IWallLimitChecks interface that contains the wall limit checks in the receiver.

Properties
Type
BOOL
long

Property
bLoadCombo
lHintFlags

Get
X
X

long
long
long

lID
lLoadConditionUID
lSectionCutUID

X
X
X

Set

Description
Flag: The results are of a load combination (not a load case).
In the case where one or more limit checks contained in this code result has failed, this property is a flag that the
analysis engine provides as a hint that might enable a subsequent analysis run to pass. Possible values for this
property can be found in Appendix F.
The unique ID of this wall code result.
The load case or combination unique ID.
The unique ID of the section cut to which the results belong.

IWallCodeResults
This interface represents a collection of IWallCodeResult objects.

Add ([in] BOOL bLoadCombo, [in] long lLoadConditionUID, [in] long lHintFlags, [out,retval] IWallCodeResult** ppIWallCodeResult)
Adds a new wall code result to the receiver.
Parameters
bLoadCombo
lLoadConditionUID
lHintFlags

ppIWallCodeResult

Flag: The wall code result is the result of a load combination (not a load case)
The load case or load combination UID
In the case where one or more limit checks contained in this code result has failed, this property is a flag
that the analysis engine provides as a hint that might enable a subsequent analysis run to pass. Possible
values for this property can be found in Appendix F.
Pointer to an IWallCodeResult interface that represents the newly added wall code result.

Clear ()
Deletes all wall code results from the collection.

Delete ([in] long lID)


Deletes a wall code result from the collection.
Parameters
lID

Unique ID of the wall code result to delete.

Get ([in] long lID, [out, retval] IWallCodeResult ** ppIWallCodeResult)


Gets an interface for a specific wall code result by unique ID.
Parameters
lID
ppIWallCodeResult

The unique ID of the requested wall code result.


Pointer to an IWallCodeResult interface that represents the requested wall code result, or NULL if no wall code
result is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallCodeResult ** ppIWallCodeResult)


Gets an interface for a specific wall code result by index.
Parameters
lIndex
ppIWallCodeResult

The index into the collection of the requested wall code result.
Pointer to an IWallCodeResult interface that represents the requested wall code result, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall code results in the receiver.
Parameters
plCount

The number of IWallCodeResult objects in the collection.

IWallDesignGroup
This interface represents a Wall Design Group. The purpose of a Wall Design Group is to divide the wall system in the RAM model
into a number of individual wall groups, cores, or stacks that can be designed separately from one another. The Wall Design Group
can be thought of as any collection of walls for which the reinforcement can be completely designed and all code checks performed
independently of any other wall in the building.

AddColumnID ([in] long lColumnID)


Not implemented; do not call.

AddMemberID ([in] long lMemberID)

Not implemented; do not call.

AddWallID ([in] long lWallID)


Adds a wall to the receiver.
Parameters
lWallID

The unique ID of the wall being added.

GetColumns ([out,retval] IColumns** ppIColumns)


Not implemented; do not call.

GetCouplingBeams ([out,retval] ICouplingBeams** ppICouplingBeams)


Gets the collection of all couplings beams in the wall design group.
Parameters

ppICouplingBeams Pointer to an ICouplingBeams collection interface that represents all coupling beams in the wall design group.

GetSectionCuts ([out,retval] IRawWallSectionCuts** ppISectionCuts)


Gets the collection of all section cuts from all walls in the wall design group.
Parameters

ppISectionCuts

Pointer to an IRawWallSectionCuts collection interface that represents all section cuts in the wall design group.

GetWallPanels ([out,retval] IWallPanels** ppIWallPanels)


Gets the collection of all wall panels in the wall design group.
Parameters

ppIWallPanels

Pointer to an IWallPanels collection interface that represents all wall panels in the wall design group.

GetWalls ([out, retval] IWalls** ppIWalls)


Gets the collection of all walls in the wall design group.
Parameters

ppIWalls

Pointer to an IWalls collection interface that represents all walls in the wall design group.

GetWallSectionDsnCuts ([out,retval] IWallSectionDsnCuts** ppIWallSectionDsnCuts)


Gets the collection of all wall section design cuts in the wall design group.
Parameters

ppIWallSectionDsnCuts Pointer to an IWallSectionDsnCuts collection interface that represents all wall section design cuts in the wall
design group.

RemoveColumnID ([in] long lColumnID, [out,retval] long* plNumRemaining)


Not implemented; do not call.

RemoveMemberID ([in] long lMemberID)


Not implemented; do not call.

RemoveWallID ([in] long lWallID, [out,retval] long* plNumRemaining)


Removes a wall from the receiver.
Parameters
lWallID
plNumRemaining

The unique ID of the wall being removed.


The number of walls in the wall design group after removing the specified wall.

Properties
Type
double

Property
dCutOffset

Get
X

Set
X

double

dMaxHorCutSpcg

double

dMaxVertCutSpcg

long

lCutLocationMask

long
long

lWallBarPatternTemplateID
lWallDesignGroupNumber

X
X

Description
The offset between auto-generated cuts and the features they are next to (wall edges and opening edges).
This is used as a guide to initialize the values in the dialog; section cuts cannot be auto-generated using
RAM Data Access.
The maximum space between horizontal cuts to use when auto-generating section cuts. 0.0 means cuts
can be any distance apart. This is used as a guide to initialize the values in the dialog; section cuts cannot
be auto-generated using RAM Data Access.
The maximum space between vertical cuts to use when auto-generating section cuts. 0.0 means cuts can
be any distance apart. This is used as a guide to initialize the values in the dialog; section cuts cannot be
auto-generated using RAM Data Access.
Mask that determines where auto-generated cuts should be placed. This is used as a guide to initialize the
values in the dialog; section cuts cannot be auto-generated using RAM Data Access.
The ID of the WallBarPatternTemplate used by the wall design group.
The wall design group number for this wall design group. This is the unique key.

IWallDesignGroups
This interface represents a collection of wall design groups.

Add ([in] long lWallDesignGrpNum, [out,retval] IWallDesignGroup** ppIWallDesignGroup)


Adds a new wall design group to the receiver.
Parameters
lWallDesignGrpNum
ppIWallDesignGroup

The wall design group number of the new wall design group.
Pointer to an IWallDesignGroup interface that represents the newly added wall design group.

Clear ()
Deletes all wall design groups from the collection.

ClearResults ([in] long bDeleteForces)


Clears the results with option to remove forces.
Parameters
bDeleteForces

1 if forces should be deleted as well

Delete ([in] long lWallDesignGrpNum)


Deletes a wall design group from the collection.
Parameters
lWallDesignGrpNum

Wall design group number of the wall design group to delete.

Get ([in] long lWallDesignGrpNum, [out, retval] IWallDesignGroup ** ppIWallDesignGroup)


Gets an interface for a specific wall design group by wall design group number.
Parameters
lWallDesignGrpNum

The wall design group number of the requested wall design group.

ppIWallDesignGroup

Pointer to an IWallDesignGroup interface that represents the requested wall design group, or NULL if no wall design
group is found in the collection with the given wall design group number.

GetAt ([in] long lIndex, [out, retval] IWallDesignGroup ** ppIWallDesignGroup)


Gets an interface for a specific wall design group by index.
Parameters
lIndex
ppIWallDesignGroup

The index into the collection of the requested wall design group
Pointer to an IWallDesignGroup interface that represents the requested wall design group, or NULL if lIndex is
invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall design groups in the receiver.
Parameters
plCount

The number of IWallDesignGroup objects in the collection.

SaveResults ()
Saves results for all wall design groups from the collection.

IWallFailedMember
Represents a member that has failed a limit check.

Properties
Type
long
long
long

Property
lID
lLimitCheckID
lMemberUID

Get
X
X
X

Set

Description
The unique ID of this wall failed member. Note: this property will be deprecated in v12.1.
The unique ID of the limit check related to this failure.
The unique ID of the failing member.

IWallFailedMembers
This interface represents a collection of IWallFailedMember objects.

Add ([in] long lMemberUID, [out,retval] IWallFailedMember** ppIWallFailedMember)


Adds a new wall failed member to the receiver.
Parameters
lMemberUID
ppIWallFailedMember

The unique ID of the member that has failed.


Pointer to an IWallFailedMember interface that represents the newly added wall failed member.

Clear ()
Deletes all wall failed members from the collection.

Delete ([in] long lID)


Deletes a wall failed member from the collection.
Parameters
lID

Unique ID of the wall failed member to delete.

DeleteAt ([in] long lIndex)


Deletes a wall failed member from the collection by index.
Parameters
lIndex

Index of the wall failed member to delete.

Get ([in] long lID, [out, retval] IWallFailedMember ** ppIWallFailedMember)


Gets an interface for a specific wall failed member by unique ID. Note: this function will be deprecated in v12.1.
Parameters
lID
The unique ID of the requested wall failed member.
ppIWallFailedMember Pointer to an IWallFailedMember interface that represents the requested wall failed member, or NULL if no wall
failed member is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallFailedMember ** ppIWallFailedMember)


Gets an interface for a specific wall failed member by index.

Parameters
lIndex
The index into the collection of the requested wall failed member.
ppIWallFailedMember Pointer to an IWallFailedMember interface that represents the requested wall failed member, or NULL if lIndex is
invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall failed members in the receiver.
Parameters
plCount

The number of IWallFailedMember objects in the collection.

IWallFE
This interface is used represent a finite element entry for a wall.

GetComboStresses ([in] ILoadCombination *pILoadCombo, [in] BOOL bSmooth, [out, retval] IStresses** ppIStresses)
Gets the stresses associated with the given load combination for this Wall FE.
Parameters
pILoadCombo
bSmooth
ppIStresses

The load combination to retreive the stresses for. Note that the stresses for all of the terms in the load
combination are internally loaded and then summed up based on the load combination factors.
Boolean indicating whether or not the stresses should be averaged with surrounding Wall FEs.
Pointer to an IStresses interface that represents the stresses for the given load case for this Wall FE.

GetNodes ([out,retval] INodes** ppINodes)


Gets the collection of nodes for this Wall FE.
Parameters
ppINodes

Pointer to an INodes interface that represents the nodes in the Wall FE.

GetStresses ([in] long lLoadCaseID, [in] BOOL bSmooth, [out, retval] IStresses** ppIStresses)
Gets the stresses associated with the given load case ID for this Wall FE.
Parameters

lLoadCaseID
bSmooth
ppIStresses

The load case ID to retreive the stresses for.


Boolean indicating whether or not the stresses should be averaged with surrounding Wall FEs.
Pointer to an IStresses interface that represents the stresses for the given load case for this Wall FE.

IWallFE Properties
Type
BOOL

Property
bHaveStresses

Get
X

double

dThickness

Set

Description
TRUE if the receiving Wall FE has stresses available. Stresses are only available if RAM Frame is configured to store
them, and RAM Frame has calculated them.
The thickness of the wall.

IWallFEs
This interface is used to hold a collection of IWallFE objects.

GetAt ([in] long lIndex, [out, retval] IWallFE** ppIWallFE)


Gets the IWallFE object at the specified index.
Parameters
lIndex
ppIWallFE

The index of the specified Wall FE.


The IWallFE object at the specified index.

GetCount ([out,retval] long** plCount)


Gets number of IWallFE objects in the collection.
Parameters
plCount

The number of IWallFE objects in the collection.

IWallLimitCheck
Represents the result of a single limit check performed on a particular wall cross-section. Typically, analysis of a particular section
cut under a particular load case will result in several limit checks corresponding to different design requirements (axial, shear,
flexure, detailing etc.)

GetWallCodeMessages ([out, retval] IWallCodeMessages** ppIWallCodeMessages)

Gets the collection of wall code messages for this wall limit check.
Parameters
ppIWallCodeMessages Pointer to an IWallCodeMessages interface that contains the wall code messages in the receiver.

GetWallFailedMembers ([out, retval] IWallFailedMembers** ppIWallFailedMembers)


Gets a the collection of failed members for this wall limit check.
Parameters
ppIWallFailedMembers Pointer to an IWallFailedMembers interface that contains the wall failed members in the receiver.

Properties
Type
BOOL
double
double
double
long
long
long
long
BSTR
BSTR

Property
bCheckPasses
dLimit
dUF
dValue
eGeneralType
eSpecificType
lCodeResultID
lID
strCodeSection
strLimitName

Get
X
X
X
X
X
X
X
X
X
X

Set

Description
A boolean flag denoting whether this limit check has passed or not.
The limiting value of this limit check.
The unity factor for this limit check.
The value (result) of this limit check.
An integer specifying the general classification of this limit check. Refer to Appendix F.
An integer specifying the specific classification of this limit check. Refer to Appendix F.
The unique ID of the code result to which this limit check belongs.
The unique ID of this wall limit check.
A reference to a design code clause that applies to this limit check.
A string describing the limit check that is being tested.

IWallLimitChecks
This interface represents a collection of IWallLimitCheck objects.

Add ([in] long eGeneralType, [in] long eSpecificType, [in] BSTR strLimitName, [in] double dValue, [in] double dLimit, [in] double dUF,
[in] BOOL bCheckPasses, [in] BSTR strCodeSection, [out,retval] IWallLimitCheck** ppIWallLimitCheck)
Adds a new wall limit check to the receiver. Note: the interface for this function will be changing in v12.1.
Parameters
eGeneralType
eSpecificType
strLimitName
dValue

An integer specifying the general classification of this limit check. Refer to Appendix F.
An integer specifying the specific classification of this limit check. Refer to Appendix F.
A string describing the limit check that is being tested.
The value (result) of this limit check.

dLimit
dUF
bCheckPasses
strCodeSection
ppIWallLimitCheck

The limiting value of this limit check.


The unity factor for this limit check.
A boolean flag denoting whether this limit check has passed or not.
A reference to a design code clause that applies to this limit check.
Pointer to an IWallLimitCheck interface that represents the newly added wall limit check.

Clear ()
Deletes all wall limit checks from the collection.

Delete ([in] long lID)


Deletes a wall limit check from the collection.
Parameters
lID

Unique ID of the wall limit check to delete.

Get ([in] long lID, [out, retval] IWallLimitCheck ** ppIWallLimitCheck)


Gets an interface for a specific wall limit check by unique ID.
Parameters
lID
ppIWallLimitCheck

The unique ID of the requested wall limit check.


Pointer to an IWallLimitCheck interface that represents the requested wall limit check, or NULL if no wall limit check
is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallLimitCheck ** ppIWallLimitCheck)


Gets an interface for a specific wall limit check by index.
Parameters
lIndex
ppIWallLimitCheck

The index into the collection of the requested wall limit check.
Pointer to an IWallLimitCheck interface that represents the requested wall limit check, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall limit checks in the receiver.

Parameters
plCount

The number of IWallLimitCheck objects in the collection.

IWallPanel
This interface represents a wall panel. A Wall Panel is a planar, contiguous collection of one or more walls of the same thickness at
a single Story, all in the same wall design group.

AddColumnUID ([in] long lColumnUID)


DO NOT USE. Not implemented.
Parameters
lColumnUID

Unique ID of the column being added.

AddMemberUID ([in] long lWallUID)


DO NOT USE. Not implemented.
Parameters
lMemberUID

Unique ID of the member being added.

AddWallUID ([in] long lWallUID)


Adds a wall to the collection of walls in the receiver.
Parameters
lWallUID

Unique ID of the wall being added.

GetColumns ([out,retval] IColumns **ppIColumns)


DO NOT USE. Not implemented.
Parameters
ppIColumns

Pointer to an IColumns interface that contains the coluimns in the receiver.

GetMyWallDesignGroup ([out,retval] IWallDesignGroup** ppIWallDesignGroup)

Gets a pointer to the interface of the wall design group that the receiver belongs to.
Parameters
ppIWallDesignGroup Pointer to an IWallDesignGroup interface for the wall design group that the receiver belongs to.

GetWallBarLayouts ([out,retval] IWallBarLayouts** ppIWallBarLayouts)


Gets the collection of wall bar layouts in the receiver.
Parameters
ppIWallBarLayouts

Pointer to an IWallBarLayouts interface that contains the wall bar layouts in the receiver.

GetWallPanelReinfZones ([out,retval] IWallPanelReinfZones** ppIWallPanelReinfZones)


Gets the collection of reinforcement zones for the receiver, if the receiver has manual reinforcement assigned. If the collection has any
elements, the first element is the horizontal reinforcement information, and the remaining elements are the vertical reinforcement zones.
Parameters
ppIWallPanelReinfZones Pointer to an IWallPanelReinfZones interface that contains the reinforcement zones in the receiver.

GetWalls ([out,retval] IWalls **ppIWalls)


Gets the collection of walls in the receiver.
Parameters
ppIWalls

Pointer to an IWalls interface that contains the walls in the receiver.

RemoveColumnUID ([in] long lColumnUID)


DO NOT USE. Not implemented.
Parameters
lColumnUID

Unique ID of the column being removed.

RemoveMemberUID ([in] long lMemberUID)


DO NOT USE. Not Implemented.
Parameters

lMemberUID

Unique ID of the member being removed.

RemoveWallUID ([in] long lWallUID)


Removes a wall from the collection of walls in the receiver.
Parameters
lWallUID

Unique ID of the wall being removed.

Properties
Type
BOOL
long
long
SCoordinate
SCoordinate
BSTR

Property
bFrozen
lPriority
lUID
sCoordinateEnd
sCoordinateStart
strBarPatternName

Get
X
X
X
X
X
X

Set

Description
Indicates whether or not this panel has been frozen by the user.
Priority of the wall panel
The unique ID of this wall panel.
The end coordinate of the panel.
The start coordinate of the panel.
The name of the panels bar pattern, if the panel has manual reinforcement. NULL otherwise.

IWallPanelReinfZone
This interface represents a wall panel reinforcing zone associated with manual reinforcment.

Properties
Type
double
double
EBoundaryFlags
long
BSTR

Property
dBarSpacing
dStartOffset
eBoundary
lNumCurtains
strBarSize

Get
X
X
X
X
X

Set
X
X
X
X
X

Description
The bar spacing for this zone.
The start offset of this zone.
Indicates how this zone is to be handled with respect to boundary element design.
The number of curtains in this zone.
The bar size for this zone.

IWallPanelReinfZones
This interface represents a collection of IWallPanelReinfZone objects.

Add ([out, retval] IWallPanelReinfZone ** ppIWallPanelReinfZone)


Adds a new zone to the receiver.

Parameters
ppIWallPanelReinfZone

Pointer to an IWallPanelReinfZone interface that represents the newly added zone.

Clear ()
Deletes all zones from the collection.

DeleteAt ([in] long lIndex)


Deletes a zone from the collection by index.
Parameters
lIndex

Index of the zone to delete.

GetAt ([in] long lIndex, [out, retval] IWallPanelReinfZone ** ppIWallPanelReinfZone)


Gets an interface for a specific zone by index.
Parameters
lIndex
The index into the collection of the requested zone.
ppIWallPanelReinfZone Pointer to an IWallPanelReinfZone interface that represents the requested zone, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of zones in the receiver.
Parameters
plCount

The number of IWallPanelReinfZone objects in the collection.

IWallPanels
This interface represents a collection of IWallPanel objects.

Add ([out,retval] IWallPanel** ppIWallPanel)


Adds a new wall panel to the receiver.

Parameters
ppIWallPanel

Pointer to an IWallPanel interface that represents the newly added wall panel.

Clear ()
Deletes all wall panels from the collection.

Delete ([in] long lPanelID)


Deletes a wall panel from the collection.
Parameters
lPanelID

Unique ID of the wall panel to delete.

Get ([in] long lPanelID, [out, retval] IWallPanel ** ppIWallPanel)


Gets an interface for a specific wall panel by unique ID.
Parameters
lPanelID
ppIWallPanel

The unique ID of the requested wall panel.


Pointer to an IWallPanel interface that represents the requested wall panel, or NULL if no wall panel is found in the
collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallPanel ** ppIWallPanel)


Gets an interface for a specific wall panel by index.
Parameters
lIndex
ppIWallPanel

The index into the collection of the requested wall panel.


Pointer to an IWallPanel interface that represents the requested wall panel, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall panels in the receiver.
Parameters
plCount

The number of IWallPanel objects in the collection.

IWalls
This interface represents a collection of walls associated with a story. This collection can be used to read data for walls at a story.
To add or delete walls, use the ILayoutWalls interface associated with a floor type.

Filter ([in] EWallFilter eWallFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)
Filters the collection of walls based on given criteria.
Parameters
eWallFilter
varFilterCriteria
plRetval

Indicates the type of filter to use on the collection


Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.
0 if successful
-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IWall** ppIWall)


Gets an interface for a specific wall by unique ID.
Parameters
lUID
ppIWall

The unique ID of the requested wall


Pointer to an IWall interface that represents the requested wall, or NULL if no wall is found in the collection with the
given unique ID.

GetAt ([in] long lIndex, [out, retval] IWall** ppIWall)


Gets an interface for a specific wall by index.
Parameters
lIndex
ppIWall

The index into the collection of the requested wall


Pointer to an IWall interface that represents the requested wall, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)


Gets the number of walls in the collection. When the collection is filtered, this function returns the number in the filtered collection, not the
total number of walls on the story. When the collection is unfiltered, this function returns the total number of walls on the story.
Parameters
plCount

Number of walls in the collection

GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)


Gets a collection of user-defined property definitions for this member type.
Parameters
strCustomProps
ppIPropertyDefs

Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user
(not yet implemented)
Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this
member type

IWallSectionDsnCut
This interface represents the design information for a section cut. Unlike IRawWallSectionCut, the information in a design cut can
represent multiple section cut segments.

DeleteWallSectionDsnCutPolygons ()
Deletes all polygons from the receiver.

GetRawWallSectionCuts ([out, retval] IRawWallSectionCuts **ppIRawWallSectionCuts)


Get the raw wall section cuts for the design cut.
Parameters
ppIRawWallSectionCuts Pointer to an IRawWallSectionCuts interface

GetUBPolygonIndex ([out,retval] long *plUBPolygonIndex)


Gets the index of the last polygon (polygon count 1) in the receiver.
Parameters

plUBPolygonIndex The index of the last polygon in the wall section design cut.

GetWallCodeResults ([out, retval] IWallCodeResults** ppIWallCodeResults)


Gets the collection of IWallCodeResult objects in the receiver.
Parameters

GetWallSectionDsnCutForceSets ([out, retval] IWallSectionDsnCutForceSets** ppIWallSectionDsnCutForceSets)


Gets the collection of IWallSectionDsnCutForceSet objects in the receiver.
Parameters
ppIWallSectionDsnCutForceSets Pointer to an IWallSectionDsnCutForceSets interface that represents all wall section design cut force
sets in the section design cut.

GetWallSectionDsnCutPolygon ([in] BOOL bLocal, [in] long lPolyIndex, [out, retval] IPoints **pIPoints)
Gets the specified polygon. (Refer to SaveWallSectionDsnCutPolygon for further info on section cut polygons).
Parameters
bLocal
lPolyIndex
pIPoints

Whether or not the fetched polygon is in local coordinates.


The index of the desired polygon.
Pointer to an IPoints interface that represents the requested polygon, or NULL if lPolyIndex is invalid.

ppIWallCodeResults Pointer to an IWallCodeResults interface that represents all wall code results in the section design cut.

SaveWallSectionDsnCutPolygon ([in] long iPolyIndex, [in] long iPoints, [in] double *pdGlobalX, [in] double *pdGlobalY, [in]
double *pdGlobalZ, [in] double *pdLocalX, [in] double *pdLocalY)
Add a polygon to the list of polygons defining the geometry of the cross-section exposed by a cut. A polygon added with iPolyIndex=0 is
assumed to be an outer solid polygon. Any other polygons added with iPolyIndex>0 are assumed to be negative polygons (holes) within the
solid. Two sets of polygons are defined in the global and local coordinate systems. The global coordinate system is the model coordinate
system. The local coordinate system is the planar coordinate system assumed for design of the cross section.
Parameters
iPolyIndex
iPoints
pdGlobalX
pdGlobalY
pdGlobalZ
pdLocalX
pdLocalY

Index of polygon to be added.


Number of points in polygon.
Array of X coordinates describing polygon in global coordinate system.
Array of Y coordinates describing polygon in global coordinate system.
Array of Z coordinates describing polygon in global coordinate system.
Array of X coordinates describing polygon in local coordinate system.
Array of Y coordinates describing polygon in local coordinate system.

Properties
Type
BOOL
double

Property
bDoBoundaryCheck
dArea

Get
X
X

Set

Description
Flag: boundary check required for this section cut (certain design codes only).
The area of this wall section design cut.

Type
double
double
double
double
double

Property
dInertiaX
dInertiaY
dMaxFlexureUF
dMaxShearUF
dOffset

Get
X
X
X
X
X

double
double
long

dWallAngle
dZ
eDesignState

X
X
X

long

eOrientation

long
long
long
long
long
long
long
long
long
SCoordinate

eRelativeCorner
iCriticalFlexureCombo
iCriticalShearCombo
lFinalSegmentCount
lMaterialUID
lRelativeMemberUID
lSectionCutWDGID
lUID
lWallDesignGrp
sCentroid

X
X
X
X
X
X
X
X
X
X

Set

Description
The inertia in X of this wall section design cut.
The inertia in Y of this wall section design cut.
The maximum unity factor in flexure at this cross-section (determined during a design run).
The maximum unity factor in shear at this cross-section (determined during a design run).
The offset of the position of a vertical section cut along the wall length, relative to the wall or opening to
which it is defined (see lRelativeMemberUID) (vertical section cuts only).
The orientation of the wall relative to the global model coordinate system (vertical cuts only).
The Z coordinate of this wall section design cut.
Code denoting current design status for this section cut:
0: not ready (no forces available)
1: not designed
2: design error
3: design failed
4: design passed
Orientation of the section cut.
0 = Vertical cut
1 = Horizontal cut
The wall or opening corner index relative to which a vertical cut is defined (vertical cuts only).
The UID of the load combination that produces the maximum unity factor in flexure.
The UID of the load combination that produces the maximum unity factor in shear.
The number of wall segments that make up this section cut.
The UID of the material of the cross-section (wall).
The wall UID or opening UID relative to which a vertical cut is defined (vertical cuts only).
This section design cuts unique ID in its wall design group.
The unique ID of this wall section design cut.
The wall design group to which this section design cut belongs.
The centroid of this wall section design cut.

IWallSectionDsnCutForceSet
Represents a result force set for a particular section cut and load case/combo UID.

Properties
Type
BOOL
long
long
long
long
SForce3D
SForce3D

Property
bLoadCombo
lID
lLoadConditionIndex
lLoadConditionUID
lSectionCutUID
sForce3DF
sForce3DM

Get
X
X
X
X
X
X
X

Set

Description
Flag: The force set is a result of a load combination (not a load case)
The unique ID of this wall section design cut force set.
Load case or combo index.
Load case or combo UID.
The unique ID of the section cut to which this force set belongs.
Force components in the X,Y,Z directions.
Moment components about the X,Y,Z directions.

IWallSectionDsnCutForceSets
This interface represents a collection of IWallSectionDsnCutForceSet objects.

Add ([in] BOOL bLoadCombo, [in] long lLoadConditionUID, [in] long lLoadConditionIndex, [in] SForce3D sForce3DF, [in] SForce3D
sForce3DM, [out,retval] IWallSectionDsnCutForceSet** ppIWallSectionDsnCutForceSet)
Adds a new wall section design cut force set to the receiver.
Parameters
bLoadCombo
lLoadConditionUID
lLoadConditionIndex
sForce3DF
sForce3DM
ppIWallSectionDsnCutForceSet

Flag: The force set is a result of a load combination (not a load case)
Load case or combo UID.
Load case or combo index.
Force components in the X,Y,Z directions.
Moment components about the X,Y,Z directions.
Pointer to an IWallSectionDsnCutForceSet interface that represents the newly added wall section design
cut force set.

Clear ()
Deletes all wall section design cut force sets from the collection.

ClearCombos ()
Deletes all load combination-based wall section design cut force sets from the collection.

Delete ([in] long lID)


Deletes a wall section design cut force set from the collection.
Parameters
lID

Unique ID of the wall section design cut force set to delete.

Get ([in] long lID, [out, retval] IWallSectionDsnCutForceSet ** ppIWallSectionDsnCutForceSet)


Gets an interface for a specific wall section design cut by unique ID.

Parameters
lID
The unique ID of the requested wall section design cut force set.
ppIWallSectionDsnCutForceSet Pointer to an IWallSectionDsnCutForceSet interface that represents the requested wall section design cut
force set, or NULL if no wall section design cut force set is found in the collection with the given unique
ID.

GetAt ([in] long lIndex, [out, retval] IWallSectionDsnCutForceSet ** ppIWallSectionDsnCutForceSet)


Gets an interface for a specific wall section design cut force set by index.
Parameters
lIndex
The index into the collection of the requested wall section design cut force set.
ppIWallSectionDsnCutForceSet Pointer to an IWallSectionDsnCutForceSet interface that represents the requested wall section design cut
force set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall section design cut force sets in the receiver.
Parameters
plCount

The number of IWallSectionDsnCutForceSet objects in the collection.

IWallSectionDsnCuts
This interface represents a collection of IWallSectionDsnCut objects.

Add ([in] double dArea, [in] double dCentroidX, [in] double dCentroidY, [in] double dZ, [in] double dInertiaX, [in] double dInertiaY, [in]
long eOrientation, [in] double dWallAngle, [in] long lMaterialUID, [in] double dMaxFlexureUF, [in] double dMaxShearUF, [in] long
iCriticalFlexureCombo, [in] long iCriticalShearCombo, [in] long eDesignStatus, [in] long lSectionCutWDGID, [in] long
lFinalSegmentCount, [in] long lRelativeMemberUID, [in] long eRelativeCorner, [in] double dOffset, [out,retval] IWallSectionDsnCut**
ppIWallSectionDsnCut)
Adds a new wall section design cut to the collection.
Parameters
dArea
dCentroidX
dCentroidY

Cross-sectional area of wall generated by cut.


X coordinate of centroid of cross-section.
Y coordinate of centroid of cross-section.

dZ
dInertiaX
dInertiaY
eOrientation
dWallAngle
lMaterialUID
dMaxFlexureUF
dMaxShearUF
iCriticalFlexureCombo
iCriticalShearCombo
eDesignStatus

Z coordinate of section cut.


X component of moment of inertia of cross-section.
Y component of moment of intertia of cross-section.
Code denoting orientation of section cut (0=horizontal, 1=vertical).
The orientation of the wall relative to the global model coordinate system (vertical cuts only).
The UID of the material of the cross-section (wall).
The maximum unity factor in flexure at this cross-section (determined during a design run).
The maximum unity factor in shear at this cross-section (determined during a design run).
The UID of the load combination that produces the maximum unity factor in flexure.
The UID of the load combination that produces the maximum unity factor in shear.
Code denoting current design status for this section cut:
0: not ready (no forces available)
1: not designed
2: design error
3: design failed
4: design passed
lSectionCutWDGID
Index (ID) of this section cut within the wall design group. Unique only within wall design group.
lFinalSegmentCount
The number of wall segments that make up this section cut.
lRelativeMemberUID
The wall UID or opening UID relative to which a vertical cut is defined (vertical cuts only).
eRelativeCorner
The wall or opening corner index relative to which a vertical cut is defined (vertical cuts only).
dOffset
The offset of the position of a vertical section cut along the wall length, relative to the wall or opening to which it is
defined (see lRelativeMemberUID) (vertical section cuts only).
ppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the newly added wall section design cut.

Clear ()
Deletes all wall section design cuts from the collection.

Delete ([in] long lUID)


Deletes a wall section design cut from the collection.
Parameters
lUID

Unique ID of the wall section design cut to delete.

DeleteAt ([in] long lIndex)


Deletes a wall section design cut from the collection at the specified index.
Parameters

lUID

Index of the wall section design cut to delete.

Get ([in] long lUID, [out, retval] IWallSectionDsnCut ** ppIWallSectionDsnCut)


Gets an interface for a specific wall section design cut by unique ID.
Parameters
lUID
The unique ID of the requested wall section design cut.
ppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the requested wall section design cut, or NULL if no
wall section design cut is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallSectionDsnCut ** ppIWallSectionDsnCut)


Gets an interface for a specific wall section design cut by index.
Parameters
lIndex
The index into the collection of the requested wall section design cut
ppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the requested wall section design cut, or NULL if lIndex
is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall section design cuts in the receiver.
Parameters
plCount

The number of IWallSectionDsnCut objects in the collection.

IWebOpening
This interface represents a specific web opening in a beam. This interface can be used to read and modify the geometry and
properties of the web opening.

Properties
Type
BOOL
double
double
double

Property
bPassed
dBotStiffX
dBotStiffY
dDistFromStartOfBeam

Get
X
X
X
X

Set

Description
Whether the design of the web opening passed or failed.
X coordinate (in beam local coordinates) of bottom stiffener.
Y coordinate (in beam local coordinates) of bottom stiffener.
Distance from start of beam to center of web opening

Type
double

Property
dDistFromTop

Get
X

Set
X

double

dHeightOrDiam

double
double
double
double
double
double
double
double
double
double
EWebOpenPosition
EWebOpenShape
long

dStiffenerLength
dStiffenerLengthBot
dStiffenerThickness
dStiffenerThicknessBot
dStiffenerWidth
dStiffenerWidthBot
dTopStiffX
dTopStiffY
dWeldSize
dWidth
ePositionInWeb
eShape
lNumStiffeners

X
X
X
X
X
X
X
X
X
X
X
X
X

long

lNumStiffenersBot

long

lPenID

X
X
X

Description
Offset to web opening. The offset is from the top of the beam to the top, center or bottom of the
opening (as indicated by eWOPositionInWeb)
Height (H) of web opening if shape is rectangular, or diameter of opening if circular
Length of top stiffener, if required.
Length of bottom stiffener, if required.
Thickness of top stiffener, if required.
Thickness of bottom stiffener, if required.
Width of top stiffener, if required.
Width of bottom stiffener, if required.
X coordinate (in beam local coordinates) of top stiffener.
Y coordinate (in beam local coordinates) of top stiffener.
Size of weld for stiffener, if required.
Width (B) of web opening if shape is rectangular
Position of web opening in beam web. If not centered, an offset must be provided.
Shape of the web opening
Indicates if top stiffeners are required on 0, 1 or 2 sides of the opening (determined during steel
beam design)
Indicates if bottom stiffeners are required on 0, 1 or 2 sides of the opening (determined during steel
beam design)
The ID of this opening in the collection of openings for a particular beam (not unique within the
model)

IWebOpenings
This interface represents a collection of web openings on a beam. It may be empty to start with if no web openings have been
defined on a beam. Through this interface, web openings can be added and deleted.

Add ([in]double dDistFromStartOfBeam, [in] EWebOpenShape eShape, [in] double dHOrDiam, [in] double dB, [out, retval]
IWebOpening** ppIWebOpening)
Adds a web opening to the collection of web openings for the layout beam.
Parameters
dDistFromStartOfBeam
eShape
dHOrDiam
dB
ppIWebOpening

Distance from start of beam to center of web opening


Shape of web opening
Height of rectangular opening, or diameter of circular opening
Width of rectangular opening
Pointer to an IWebOpening interface that represents the newly added web opening.

Delete ([in] long lIndex, [out, retval] long* plRetval )


Deletes the web opening at the given index.
Parameters
lIndex
plRetval

Index of web opening to delete


0 if web opening is deleted successfully
-1 if lIndex is invalid

GetAt ([in] long lIndex, [out, retval] IWebOpening** ppIWebOpening)


Gets an interface for a specific web opening by index.
Parameters
lIndex
ppIWebOpening

The index into the collection of the requested web opening.


Pointer to an IWebOpening interface that represents the requested web opening, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount )


Gets the number of web openings in the collection.
Parameters
plCount

Number of web openings in the collection

WallBarPatternTemplate
This interface represents a wall bar pattern template. A wall bar pattern template is a template used in the generation of wall bar
patterns. It specifies the range of possible values for the generated bar patterns. When RAM Concrete Shear Wall designs a wall
group, it searches for the bar pattern generated from this template with the minimum amount of steel that satisfies the design
constraints. Please note that the more possible combinations can be created based on the template, the longer the design process
can potentially take, as RAM Concrete Shear Wall has to try more wall bar patterns when looking for the optimal one.

GetHorizontalBarPatterns ([out,retval] IWallBarPatterns** ppIWallBarPatterns)


Gets the collection of horizontal wall bar patterns in the receiver.
Parameters
ppIWallBarPatterns

Pointer to an IWallBarPatterns interface that contains the horizontal wall bar patterns in the receiver.

GetVerticalBarPatterns ([out,retval] IWallBarPatterns** ppIWallBarPatterns)


Gets the collection of vertical wall bar patterns in the receiver.
Parameters
ppIWallBarPatterns

Pointer to an IWallBarPatterns interface that contains the vertical wall bar patterns in the receiver.

Properties
Type
double
double

Property
dHorizontalSpacingIncrement
dMaxHorizontalBarSpacing

Get
X
X

double
double
double
double

dMaxVerticalBarSpacing
dMinHorizontalBarSpacing
dMinVerticalBarSpacing
dVerticalSpacingIncrement

X
X
X
X

long
long
BSTR
BSTR
BSTR
BSTR
BSTR

lNumCurtains
lUID
strLabel
strMaxHorizontalBarSize
strMaxVerticalBarSize
strMinHorizontalBarSize
strMinVerticalBarSize

X
X
X
X
X
X
X

Set

Description
The horizontal spacing increment for this wall bar pattern template.
The maximum horizontal bar spacing (in inches) in this wall bar pattern template. When generating the
list of possible spacings, RAM Concrete Shear Wall starts at the maximum allowed spacing, and works
down to the minimum allowed spacing, incrementing by this amount each step.
The maximum vertical bar spacing (in inches) in this wall bar pattern template.
The minimum horizontal bar spacing (in inches) in this wall bar pattern template.
The minimum vertical bar spacing (in inches) in this wall bar pattern template.
The vertical spacing increment for this wall bar pattern template. When generating the list of possible
spacings, RAM Concrete Shear Wall starts at the maximum allowed spacing, and works down to the
minimum allowed spacing, incrementing by this amount each step.
The number of curtains in this wall bar pattern template.
The unique ID of this wall bar pattern template.
The label of this wall bar pattern template.
The name of the maximum horizontal bar size in this wall bar pattern template.
The name of the maximum vertical bar size in this wall bar pattern template.
The name of the minimum horizontal bar size in this wall bar pattern template.
The name of the minimum vertical bar size in this wall bar pattern template.

WallBarPatternTemplates
This interface represents a collection of WallBarPatternTemplate objects.

Add ([in] BSTR strLabel, [in] long lNumCurtains, [in] BSTR strMinVerticalBarSize, [in] BSTR strMaxVerticalBarSize, [in] double
dMinVerticalBarSpacing, [in] double dMaxVerticalBarSpacing, double dVerticalSpacingIncrement, [in] BSTR
strMinHorizontalBarSize, [in] BSTR strMaxHorizontalBarSize, [in] double dMinHorizontalBarSpacing, [in] double
dMaxHorizontalBarSpacing, [in] double dHorizontalSpacingIncrement, [out,retval] WallBarPatternTemplate**
ppWallBarPatternTemplate)
Adds a new wall bar pattern template to the receiver.

Parameters
strLabel
lNumCurtains
strMinVerticalBarSize
strMaxVerticalBarSize
dMinVerticalBarSpacing
dMaxVerticalBarSpacing
dVerticalSpacingIncrement
strMinHorizontalBarSize
strMaxHorizontalBarSize
dMinHorizontalBarSpacing
dMaxHorizontalBarSpacing
dHorizontalSpacingIncrement
ppWallBarPatternTemplate

The name of the new template.


The number of bar curtains in the new template. (Must be 1, 2, or 3.)
The name of the minimum vertical bar size in the new template.
The name of the maximum vertical bar size in the new template.
The minimum vertical bar spacing (in inches) in the new template.
The maximum vertical bar spacing (in inches) in the new template.
The vertical spacing increment for the new template.
The name of the minimum horizontal bar size in the new template.
The name of the maximum horizontal bar size in the new template.
The minimum horizontal bar spacing (in inches) in the new template.
The maximum horizontal bar spacing (in inches) in the new template.
The horizontal spacing increment for the new template.
Pointer to an WallBarPatternTemplate interface that represents the newly added wall bar pattern
template.

Delete ([in] long lUID)


Deletes a wall bar pattern template from the collection by unique ID.
Parameters
lUID

The unique ID of the wall bar pattern template to delete.

Clear ()
Deletes all wall bar pattern templates from the collection.

Get ([in] long lUID, [out, retval] WallBarPatternTemplate ** ppWallBarPatternTemplate)


Gets an interface for a specific wall bar pattern template by unique ID.
Parameters
lUID
ppWallBarPatternTemplate

The unique ID of the requested wall bar pattern template.


Pointer to an WallBarPatternTemplate interface that represents the requested wall bar pattern template, or
NULL if no wall bar pattern template is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] WallBarPatternTemplate ** ppWallBarPatternTemplate)


Gets an interface for a specific wall bar pattern template by index.

Parameters
lIndex
The index into the collection of the requested wall bar pattern template.
ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface that represents the requested wall bar pattern template, or
NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount)


Gets the number of wall bar pattern templates in the receiver.
Parameters
plCount

The number of WallBarPatternTemplate objects in the collection.

Original DataAccess Interfaces


The following interfaces are based on the original architecture for RAM DataAccess. They can be used interchangeably with the
Object Model interfaces. For any functionality that is available in the new Object Model interfaces, those interfaces/functions are
preferred. The original DA interfaces should only be used for functionality that is not yet in the Object Model interfaces.

IConcAnalysis1
Philosophy: To retrieve the results from the Concrete Analysis.
GetBeamAnalysisInertia ( [in] long lBeamID, [out] double * pdIAnalysis, [in, out] long * lResult);
Purpose
Parameters

Get the moment of inertia used for the analysis.


lBeamID
The unique beam ID
pdIAnalysis
The moment of inertia of the beam used in the analysis
lResult
Error code. If value is non zero then check GetLastError

GetBeamCantlDeflectionMoments ( [in] long lBeamID, [in] EBeamSpanType eSpan, [out] double* pdMDL, [out] double* pdMLLposdefl, [out]
double* pdMLLnegdefl, [in, out] long* plResult);
Purpose
Parameters

Get the moments that are associated with a particular cantilever for calculation of the IEff
for concrete deflection consideration.
lBeamID
The unique beam ID
eSpan
pdMDL
The DL moment at the cantilever support
pdMLLposdefl
The cumulative, max LL pos moment at the cantilever support
pdMLLnegdefl
The cumulative, max LL neg moment at the cantilever support
plResult
Error code. If value is non zero then check GetLastError

GetBeamDeflectionMoments ([in] long lBeamID, [out] double* pdMDLlt, [out] double* pdMDLmid, [out] double* pdMDLrt, [out] double*
pdMLLltneg, [out] double* pdMLLltpos, [out] double* pdMLLmidneg, [out] double* pdMLLmidpos, [out] double* pdMLLrtneg, [out] double*
pdMLLrtpos, [out, retval] long* plResult);
Purpose
Parameters

Get the moments that are associated with a particular beam ends and mid point for
calculation of the IEff for concrete deflection consideration.
lBeamID
The unique beam ID
pdMDLlt
The DL moment at the left end of the beam
pdMDLmid
The DL moment at the mid of the beam
pdMDLrt
The DL moment at the rt end of the beam
pdMLLltneg
The cumulative, max LL neg moment at the left end of the
beam
pdMLLltpos
The cumulative, max LL pos moment at the left end of the
beam
pdMLLmidneg
The cumulative, max LL neg moment at the mid of the beam

pdMLLmidpos
pdMLLrtneg
pdMLLrtpos
plResult

The cumulative, max LL pos moment at the mid of the beam


The cumulative, max LL neg moment at the rt end of the
beam
The cumulative, max LL pos moment at the rt end of the
beam
Error code. If value is non zero then check GetLastError

GetDispInterfacePointerByEnum ();
Purpose

Internal use only

GetDLDeflectionResults ([in] long lBeamID, [in] EBeamSpanType eBmSpanType , [out] long* plNumPts, [out] SDIAGRAM** ppDLDeflDiag,
[retval, out] long* plResult );
Purpose
Parameters

Get the Dead Load deflection curve for a member.


lBeamID
the member ID
eBmSpanType
span type (lt, mid, rt)
plNumPts
number of data points
ppDLDeflDiag
Pointer to a pointer to an array containing the SDIAGRAM information.
plResult
Error code. If value is non zero then check GetLastError

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLLDeflectionResults ([in] long lBeamID, [in] EBeamSpanType eBmSpanType , [out] long* plNumPts, [out] SENVELOPE** ppLLDeflEnv,
[retval, out] long* plResult );
Purpose
Parameters

Get the beam live load deflection envelope data.


lBeamID
the member ID
eBmSpanType the span type (cantl, mid)
plNumPts
number of data points
ppLLDeflEnv
Pointer to a pointer to an array containing the SENVELOPE information.
plResult
Error code. If value is non zero then check GetLastError

Reset ();
Purpose

Internal use only.

SetBeamAnalysisInertia ();
Purpose

Internal use only.

SetBeamCantlDeflectionMoments ();
Purpose

Internal use only.

SetBeamDeflectionMoments ();
Purpose

Internal use only.

SetDLDeflectionResults ();
Purpose

Internal use only.

SetLLDeflectionResults ();
Purpose

Internal use only.

IConcAnalysisState1
Philosophy: This interface is for maintaining the state of the concrete analysis module, it contains the dialog values for user input in the module.
GetAssignBeamLineDefaults ([in, out] double *pdAngleVar, [in, out] double *pdOffset, [in, out] long *plAutoFixity);
Purpose
Parameters

The default settings for the dialog to assign beam line numbers automatically. Refer to
concrete analysis mode command Assign-BeamLine Numbers Automatic.
pdAngleVar
The max angle between two adjacent beams to consider them still part
of the same beam line.
pdOffset
The max offset between two parallel, adjacent beams to consider as a
continuous beam line
plAutoFixity
0 = Dont automatically assign fixity to beams in beamlines
1 = Automatically fix all beams in beam line
2 = Automatically release all beams in beam line

GetAssignKFactor ([out] long nSelectMajor, [out] long nSelectMinor, [out] long dKx, [out] long dKy, [out] BSTR* pbstrGlobalMajor, [out] BSTR*
pbstrGlobalMinor);
Purpose
Parameters

The default settings for the Assign Columns K factor dialog.


nSelectMajor
0 if global, 1 if nomograph, 2 if user defined
nSelectMinor
0 if global, 1 if nomograph, 2 if user defined
dKx
Default Kx value in the user defined box
dKy
Default Ky value in the user defined box
pbstrGlobalMajor String defining the global major axis setting
pbstrGlobalMinor String defining the global minor axis setting

GetAssignSidesway ([out] long nSelectMajor, [out] long nSelectMinor, [out] BSTR* pbstrGlobalMajor, [out] BSTR* pbstrGlobalMinor);

Purpose
Parameters

The default settings for the Assign Columns Sidesway dialog.


nSelectMajor
0 if global, 1 if braced, 2 if unbraced
nSelectMinor
0 if global, 1 if braced, 2 if unbraced
pbstrGlobalMajor String defining the global major axis setting
pbstrGlobalMinor String defining the global minor axis setting

GetBalancedLoadExistsFlag ([out] long* plBalLoad);


Purpose
Parameters

Determine if a balanced load case exists in the linked Concept file.


plBalLoad
1 if the balanced case exists.

GetColForceSource ( [out] long* plUseConceptForces, [out,retval] long* lRetval);


Purpose
Parameters

In the Column Forces Criteria dialog the user can specify if they would like to consider the
Concept forces or only use the RAM SS forces. That setting is provided here.
plUseConceptForces 1 = Use concept forces for this story,
0 = Use RAMSS forces for this story

GetConceptSelectionAtStory ([in] long lStoryID, [out] long* plUseConceptForces, [out,retval] long* lRetval);
Purpose

Parameters

In the Column Forces Criteria dialog the user can specify for each story whether to
consider/use the concept forces at that story or the RAM forces at that story. That setting
is provided here.
lStoryID
Unique Story ID
plUseConceptForces 1 = Use concept forces for this story,
0 = Use RAMSS forces for this story
lRetVal
Error code. If value is non zero then check GetLastError

GetCriteriaAnalysis ([out] long* plNumStations, [out] double* pdMaxSpc, [out] long* plREZ_RadioState, [out] double* pdREZPerc, [out] double*
pdTorConstRed, [out] long* pbSkipLoadBL, [out] long* pbSkipLoadNOBl, [out] long* pbLLR, [out] long* pbColSlend, [out] long* pbPin,
[out] long* pbConstrainRigidDiapSloped);
Purpose
Parameters

Obtain the concrete analysis criteria specified by the user in RAM Concrete Gravity
Analysis Module. See Dialog Box from command Criteria Analysis.
plNumStations
The minimum number of stations to consider per beam. A
station is a location on the beam where member forces
are calculated.
pdMaxSpc
The maximum spacing between any two stations along
the beam.
plREZ_RadioState
0 = Ignore rigid end zone effects, 1=consider rigid end
zone effects
pdREZPerc
If plREZ_RadioState is 1 then this vontains the
%reduction to be considered
pdTorConstRed
Concrete beam torsional constant reduction
True = Skip load live load on beams with beam line
pbSkipLoadBL
numbers
pbSkipLoadNOBl
True = Skip load live load on beams with no beam line
numbers

pbLLR
pbColSlend
pbPin
pbConstrainRigidDiapSloped

True = consider live load reduction when calculating


forces
True = Consider column slenderness when calculationg
column forces
True = release (pin) the base of concrete gravity columns
at the foundation
True = Do not consider rigid diaphragm on floors that are
sloped.

GetCriteriaAnalysis_HangingColConvTol ([out] BOOL* pbHangConvTol);


Purpose
Parameters

Get concrete analysis criteria.


pbHangConvTol
Tolerance for convergence of hanging column forces during iterative analyis

GetCriteriaAnalysis_IncludeOutOfPlaneForHybrid ([out] BOOL* pbIncludeOutOfPlaneForHybrid);


Purpose
Parameters

Get concrete analysis criteria.


pbIncludeOutOfPlaneForHybrid

1 if including out of plane stiffness for walls, 0 if not

GetCriteriaAnalysis_Part3 ([out] double* pdDistBetweenNodes, [out] double* pdMeshTol, [out] double* pdHardNodeDenFac,
[out] long* plSolverType);
Purpose
Parameters

Get concrete analysis criteria.


pdDistBetweenNodes Maximum distance between nodes for mesh control.
pdMeshTol
Geometric tolerance for mesh control
pdHardNodeDenFac
Hard node density factor for mesh control
plSolverType
Solver type index

GetCriteriaAnalysis_Part4 ([out] BOOL* pbConsiderLoadPolys, [out] BOOL* pbIgnoreWallStiff);


Purpose
Parameters

Get concrete analysis criteria.


pbConsiderLoadPolys 1 if considering load polygons for skip loading on two way slabs,
0 if not
pbIgnoreWallStiff
1 if ingoring wall stiffness above the story, 0 if not

GetCriteriaAnalysis_Part5 ([out] double* pdMergeNodeTol);


Purpose
Parameters

Get concrete analysis criteria.


pdMergeNodeTol
Merge node tolerance in the concrete finite element model

GetCriteriaAnalysis_UseAllCPUs([out] BOOL* pbUseAllCPUs);


Purpose
Parameters

To get the flag that indicates if one or all CPUs will be used for Analysis.
bUseAllCPUs
1 = use all CPUs 0 = use only one CPU

GetCriteriaBracing ([out] long* plSlabBracing, [out] double* pdBracingAngle);


Purpose
Parameters

To get Bracing criteria.


plSlabBracing
0 = Slab braces column 1 = Slab does not brace column.
pdBracingAngle
Maximum angle from column axis for which beam braces column.

GetCriteriaKFactor ([out] long* pnKxSel, [out] long* pnKySel, [in, out] double* pdKx, [out] double* pdKy);
Purpose
Parameters

To get the global K Factor criteria.


pnKxSel
0 = use nomograph 1 = use this value
pnKySel
0 = use nomograph 1 = use this value
pdKx
If use is selected, this variable contains the value entered
pdKy
If use is selected, this variable contains the value entered

GetCriteriaSidesway ([out] long* pnSelection, [out] BOOL* pbGlobalX, [out] BOOL* pbGlobalY, [out] double* pdDegX, [out] double* pdDegY);
Purpose
Parameters

To get the global sidesway criteria.


pnSelection
0 = Unbraced, 1 = Braced, 2 = Partially Braced
pbGlobalX
True if Partially Braced Global X is selected
pbGlobalY
True if Partially Braced Global Y is selected
pdDegX
Angle in degrees for partially braced global X
pdDegY
Angle in degrees for partially braced global Y

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetMoreCriteriaAnalysis ([out] BOOL* pbPinTransferMembers, [out] BOOL* pbPinTop, [out] BOOL* pbOOC, [out] long* pnBeamTorStiff);
Purpose
Parameters

Get concrete analysis criteria,


pbPinTransferMember True if pin base of concrete gravity columns on transfer member
is selected
pbPinTop
True if pin top of concrete gravity columns is selected
pbOOC
1 if Out of Core solver is selected, 1 if In Core
pnBeamTorStiff
0 = Use Assigned Torsional Cracked Section Factor, 1 = User
Defined Torsional Stiffness Reduction Percentage

Reset ();
Purpose

Internal use only.

SetAssignKFactor ([in] long* pnSelectMajor, [in] long* pnSelectMinor, [in] long* pdKx, [in] long* pdKy,);
Purpose

The default settings for the Assign Columns K factor dialog.

Parameters

pnSelectMajor
pnSelectMinor
pdKx
pdKy

0 if global, 1 if nomograph, 2 if user defined


0 if global, 1 if nomograph, 2 if user defined
Default Kx value in the user defined box
Default Ky value in the user defined box

SetAssignSidesway ([in] long* pnSelectMajor, [in] long pnSelectMinor);


Purpose
Parameters

The default settings for the Assign Columns Sidesway dialog.


pnSelectMajor
0 if global, 1 if braced, 2 if unbraced
pnSelectMinor
0 if global, 1 if braced, 2 if unbraced

SetColForceSource ( [in] long* plUseConceptForces, [out,retval] long* lRetval);


Purpose
Parameters

In the Column Forces Criteria dialog the user can specify if they would like to consider the
Concept forces or only use the RAM SS forces. That setting is provided here.
plUseConceptForces 1 = Use concept forces for this story,
0 = Use RAMSS forces for this story

SetConceptSelectionAtStory ([in] long lStoryID, [in] long* plUseConceptForces, [out,retval] long* lRetval);
Purpose

Parameters

In the Column Forces Criteria dialog the user can specify for each story whether to
consider/use the concept forces at that story or the RAM forces at that story. That setting
is provided here.
lStoryID
Unique Story ID
plUseConceptForces 1 = Use concept forces for this story,
0 = Use RAMSS forces for this story
lRetVal
Error code. If value is non zero then check GetLastError

SetCriteriaAnalysis ([in] long* plNumStations, [in] double* pdMaxSpc, [in] long* plREZ_RadioState, [in] double* pdREZPerc, [in] double*
pdTorConstRed, [in] long* pbSkipLoadBL, [in] long* pbSkipLoadNOBl, [in] long* pbLLR, [in] long* pbColSlend, [in] long* pbPin, [in] long*
pbConstrainRigidDiapSloped);
Purpose
Parameters

Obtain the concrete analysis criteria specified by the user in RAM Concrete Gravity
Analysis Module. See Dialog Box from command Criteria Analysis.
plNumStations
The minimum number of stations to consider per beam. A
station is a location on the beam where member forces
are calculated.
pdMaxSpc
The maximum spacing between any two stations along
the beam.
plREZ_RadioState
0 = Ignore rigid end zone effects, 1=consider rigid end
zone effects
pdREZPerc
If plREZ_RadioState is 1 then this vontains the
%reduction to be considered
pdTorConstRed
Concrete beam torsional constant reduction
True = Skip load live load on beams with beam line
pbSkipLoadBL
numbers
pbSkipLoadNOBl
True = Skip load live load on beams with no beam line
numbers
pbLLR
True = consider live load reduction when calculating

pbColSlend
pbPin
pbConstrainRigidDiapSloped

forces
True = Consider column slenderness when calculationg
column forces
True = release (pin) the base of concrete gravity columns
at the foundation
True = Do not consider rigid diaphragm on floors that are
sloped.

SetCriteriaAnalysis_HangingColConvTol ([in] BOOL bHangConvTol);


Purpose
Parameters

Set concrete analysis criteria.


bHangConvTol
Tolerance for convergence of hanging column forces during iterative analyis

SetCriteriaAnalysis_IncludeOutOfPlaneForHybrid ([in] BOOL bIncludeOutOfPlaneForHybrid);


Purpose
Parameters

Set concrete analysis criteria.


bIncludeOutOfPlaneForHybrid

1 if including out of plane stiffness for walls, 0 if not

SetCriteriaAnalysis_Part3 ([in] double dDistBetweenNodes, [in] double dMeshTol, [in] double dHardNodeDenFac,
[in] long lSolverType);
Purpose
Parameters

Set concrete analysis criteria.


dDistBetweenNodes
Maximum distance between nodes for mesh control.
dMeshTol
Geometric tolerance for mesh control
dHardNodeDenFac
Hard node density factor for mesh control
lSolverType
Solver type index

SetCriteriaAnalysis_Part4 ([in] BOOL bConsiderLoadPolys, [in] BOOL bIgnoreWallStiff);


Purpose
Parameters

Set concrete analysis criteria.


bConsiderLoadPolys 1 if considering load polygons for skip loading on two way slabs, 0
if not
bIgnoreWallStiff
1 if ingoring wall stiffness above the story, 0 if not

SetCriteriaAnalysis_Part5 ([in] double dMergeNodeTol);


Purpose
Parameters

Set concrete analysis criteria.


dMergeNodeTol
Merge node tolerance in the concrete finite element model

SetCriteriaAnalysis_UseAllCPUs([in] BOOL bUseAllCPUs);


Purpose
Parameters

To set the flag that indicates if one or all CPUs will be used for Analysis.
1 = use all CPUs 0 = use only one CPU
bUseAllCPUs

SetCriteriaBracing ([in] long* plSlabBracing, [in] double* pdBracingAngle);


Purpose
Parameters

To get Bracing criteria.


plSlabBracing
0 = Slab braces column 1 = Slab does not brace column.
pdBracingAngle
Maximum angle from column axis for which beam braces column.

SetCriteriaKFactor ([in] long* pnKxSel, [in] long* pnKySel, [in] double* pdKx, [in] double* pdKy);

Purpose
Parameters

To get the global K Factor criteria.


pnKxSel
0 = use nomograph 1 = use this value
pnKySel
0 = use nomograph 1 = use this value
pdKx
If use is selected, this variable contains the value entered
pdKy
If use is selected, this variable contains the value entered

SetCriteriaSidesway ([in] long* pnSelection, [in] BOOL* pbGlobalX, [in] BOOL* pbGlobalY, [in] double* pdDegX, [in] double* pdDegY);
Purpose
Parameters

To get the global sidesway criteria.


pnSelection
0 = Unbraced, 1 = Braced, 2 = Partially Braced
pbGlobalX
True if Partially Braced Global X is selected
pbGlobalY
True if Partially Braced Global Y is selected
pdDegX
Angle in degrees for partially braced global X
pdDegY
Angle in degrees for partially braced global Y

SetMoreCriteriaAnalysis ([in] BOOL* pbPinTransferMembers, [in] BOOL* pbPinTop, [in] BOOL* pbOOC, [in] long* pnBeamTorStiff);
Purpose
Parameters

Get concrete analysis criteria. .


pbPinTransferMember True if pin base of concrete gravity columns on transfer member
is selected
pbPinTop
True if pin top of concrete gravity columns is selected
pbOCC
1 if Out of Core solver is selected, 1 if In Core
pnBeamTorStiff
0 = Use Assigned Torsional Cracked Section Factor, 1 = User
Defined Torsional Stiffness Reduction Percentage

SetRAMConcLdCaseFlags ();
Purpose

Internal use only.

IConcBeamState1
Philosophy: This interface is for maintaining the state of the concrete beam module.
ClearBeamResults ();
Purpose

Internal use only.

GetBeamBarSets ([in] long lStory, [in] long lBeamLineID, [out] SBM_BAR_SET** ppaShearBarSet, [out] SBM_BAR_SET_BSTR**
ppaShearBarSetBstr, [out] long* plSizeShear, [out] SBM_BAR_SET** ppaTopFlxBarSet, [out] SBM_BAR_SET_BSTR**
ppaTopFlxBarSetBstr, [out] long* plSizeTopFlx, [out] SBM_BAR_SET** ppaBotFlxBarSet, [out] SBM_BAR_SET_BSTR**
ppaBotFlxBarSetBstr, [out] long* plSizeBotFlx);
Purpose
Parameters

Get all the reinforcement located in all the spans in the beam line.
lStory
Story where beam line is located
lBeamLineID
Beam line ID number
ppaShearBarSet
Shear reinforcement bar set data

ppaShearBarSetBstr
plSizeShear

Comments

Shear reinforcement bar set strings


Number of shear bar sets. Defines size of pShearBarSet and
pShearBarSetBstr
ppaTopFlxBarSet
Top longitudinal reinforcement bar set data
ppaTopFlxBarSetBstr
Top longitudinal reinforcement bar set strings
plSizeTopFlx
Number of Top longitudinal bar sets. Defines size of
pTopFlxBarSet and pTopFlxBarSetBstr
ppaBotFlxBarSet
Bottom longitudinal reinforcement bar set data
ppaBotFlxBarSetBstr
Bottom longitudinal reinforcement bar set strings
plSizeBotFlx
Number of Botttom longitudinal bar sets. Defines size of
pBotFlxBarSet and pBotFlxBarSetBstr
Note that all the reinforcement start and end locations are based on the start of the first span in
the beam line. If the first span has a cantilever then the origin is located at the free end of the
cantilever. If the first span does not have a cantilever then the origin of the bar sets is the
center of the first span support.

GetBeamEnvelopes ([in] long lStory, [in] long lBeamLineID, [out] SENVELOPE** ppaReqMomMaj, [out] long* plSizeReqMom, [out]
SDIAGRAM** ppaReqShrMaj, [out] long* plSizeReqShr, [out] SDIAGRAM** ppaReqTorsion, [out] long* plSizeReqTor, [out]
SENVELOPE** ppaPrvMomMaj, [out] long* plSizePrvMom, [out] SDIAGRAM** ppaPrvShrMaj, [out] long* plSizePrvShr, [out]
SDIAGRAM** ppaPrvTorsion, [out] long* plSizePrvTor, [out] SENVELOPE** ppaReqPosFlxReinArea, [out] long* plSizePosRein, [out]
SENVELOPE** ppaReqNegFlxReinArea, [out] long* plSizeNegRein, [out] SENVELOPE** ppaReqShrReinArea, [out] long*
plSizeShrRein);
Purpose
Parameters

Get the analysis and design capacity envelopes.


lStory
Story number starting with 0 for the first level and going up to
(plNumStories 1) for the top (roof) level
lBeamLineID
Beam line index number
ppaReqMomMaj
Array of Required moment envelope points
plSizeReqMom
Size of haReqMomMaj
ppaReqShrMaj
Array of Required shear envelope points
plSizeReqShr
Size of haReqShrMaj
ppaReqTorsion
Array of Required torsion envelope points
plSizeReqTor
Size of haReqTorsion
ppaPrvMomMaj
Array of Provided moment envelope points
plSizePrvMom
Size of haPrvMomMaj
ppaPrvShrMaj
Array of Provided shear envelope points
plSizePrvShr
Size of haPrvShrMaj
ppaPrvTorsion
Array of Provided torsion envelope points
plSizePrvTor
Size of haPrvTorsion
ppaReqPosFlxReinArea Array of Provided flexural reinforcement area points
plSizePosRein
Size of haReqPosFlxReinArea
ppaReqNegFlxReinArea Array of Negative flexural reinforcement area points
plSizeNegRein
Size of haReqNegFlxReinArea
ppaReqShrReinArea
Array of Shear reinforcement area points
plSizeShrRein
Size of haReqShrReinArea

GetBeamResults ([in] long lStory, [in] long lBeamLineID, [out] long *plNumSpans, [out] SBML_RES** haBeamLine, [out] SBM_RES**
haBeamResults, [out] SBM_RES_BSTR** haBeamResultsBstr);
Purpose
Parameters

Get concrete beam design results.


lStory
Story number starting with 0 for the first story
lBeamLineID
Beam line ID number
plNumSpans
Total number of spans in beam line
haBeamLine
Beam line results
haBeamResults
Individual beam span results
haBeamResultsBstr
Individual beam span result strings

GetCriteriaBarDia ([out] double* pdMaxConcBeamLongDiam, [out] double* pdMinConcBeamLongDiam, [out] double*


pdMaxConcBeamTransDiam, [out] double* pdMinConcBeamTransDiam);
Purpose
Parameters

Get concrete beam bar diagmeter criteria.


pdMaxConcBeamLongDiam Maximum longitudinal
pdMinConcBeamLongDiam
Minimum longitudinal
pdMaxConcBeamTransDiam Maximum transverse
pdMinConcBeamTransDiam Minimum transverse

GetCriteriaBarSelectionData ([out] long* plMinTopBars, [out] long* plMinBotBars, [out] long* plBarLayerSame, [out] long* plSizeChange, [out]
double* pdSegSpaceInc, [out] double* pdShearBarSpaceInc, [out] long* plBarSelMethod, [out] long* plBarSizeBias, [out] long*
plBiasLimit);
Purpose
Parameters

Get Criteria Beam Design Bar Selection Defaults.


plMinTopBars
Min Number of Top Longitudinal bars
plMinBotBars
Min Number of Bottom Longitudinal bars
plBarLayerSame
Keep all bars in layer the same size: 0 = FALSE, 1 = TRUE
plSizeChange
Number of sizes adjacent bars may differ by
pdSegSpaceInc
Trans bar spacing segment increment
pdShearBarSpaceInc
Trans bar spacing shear bar spacing increment (0 = based on
minimum required steel, 1 = based on maximum spacing controlling
over minimum rebar area, 2 = based on minimum spacing
controlling minimum rebar area)
plBarSelMethod
rebar selection method
plBarSizeBias
Bar Selection Bias for Bar Size (0 = small, 1 = medium, 2 = large)
plBiasLimit
Amount of bias (0 = low, 1 = medium, 2 = high)

GetCriteriaDetailingGravBeamData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plNumStirrupLegs, [out] long* plSpliceType, [out] long*
plEndCond, [out] long* plStirrupType);
Purpose
Parameters

Get Gravity Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span

pdTopBarExtentSpan

pdTransBarStartEnd
pdTransBarStartSpan
pdBotBarExtent1stSpanEnd
pdBotBarExtentSpan
plBotMinContinuous
plNumStirrupLegs
plSpliceType
plEndCond
plStirrupType

Fractional location along span for top reinforcement


along interior spans.
Distance from support to 1st shear reinforcement at
beam end
Distance from support to shear reinforcement at interior
supports
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
Cut-off location for bottom reinforcement relative to
support face at interior supports
Min. # of bottom bars continuous over support
Number of stirrup legs for gravity joists
Longitudinal reinforcement Splice type
Bottom longitudinal reinforcement end condition
Type of Stirrup

GetCriteriaDetailingGravJoistData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plNumStirrupLegs, [out] long* plSpliceType, [out] long*
plEndCond, [out] long* plStirrupType);
Purpose
Parameters

Get Gravity Joist Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
Distance from support to 1st shear reinforcement at
pdTransBarStartEnd
beam end
Distance from support to shear reinforcement at interior
pdTransBarStartSpan
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type
plEndCond
Bottom longitudinal reinforcement end condition
plStirrupType
Type of Stirrup

GetCriteriaDetailingLatBeamData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plNumStirrupLegs, [out] long* plSpliceType, [out] long*
plEndCond, [out] long* plStirrupType);

Purpose
Parameters

Get Lateral Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at ends of
beam line
pdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at interior
support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement along
interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to support face
at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support face at
interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type (0 = ACI Class A, 1 =
ACI Class B)
plEndCond
Bottom longitudinal reinforcement end condition (0 = Straight, 1
= Splice, 2 = Hook 90, 3 = Hook 135, 4 = Closed, 5 = U, 6 =
Hoop, 7 = Mechanical)
plStirrupType
Type of Stirrup (same as for plEndCond)

GetCriteriaReinCBCData ([out] long* plTop, [out] double* pdTop, [out] long* plSide, [out] double* pdSide, [out] long* plBot, [out] double* pdBot);
Purpose
Parameters

Get Criteria Reinforcement Clear Bar Cover Defaults.


plTop
Clear Bar Cover Top option (0 = Code, 1 = user defined)
pdTop
Clear Bar Cover Top Value
plSide
Clear Bar Cover Side option (0 = Code, 1 = user defined)
pdSide
Clear Bar Cover Side Value
plBot
Clear Bar Cover Bottom option (0 = Code, 1 = user defined)
pdBot
Clear Bar Cover Bottom Value

GetCriteriaReinCBSFlexure ([out] long* plFlexMax, [out] double* pdFlexMax, [out] long* plFlexMin, [out] double* pdFlexMin);
Purpose
Parameters

Get Criteria Reinforcement Clear Bar Spacing Flexure Defaults.


plFlexMax
Clear Bar Spacing Flexure Max option (0 = Code, 1 = user defined)
pdFlexMax
Clear Bar Spacing Flexure Max Value
plFlexMin
Clear Bar Spacing Flexure Min option (0 = Code, 1 = user defined)
pdFlexMin
Clear Bar Spacing Flexure Min Value

GetCriteriaReinCBSShear ( [out] long* plShearMax, [out] double* pdShearMax, [out] long* plShearMin, [out] double* pdShearMin);
Purpose
Parameters

Get Criteria Reinforcement Clear Bar Spacing Shear Defaults.


plShearMax
Clear Bar Spacing Shear Max option (0 = Code, 1 = user defined)
pdShearMax
Clear Bar Spacing Shear Max Value
plShearMin
Clear Bar Spacing Shear Min option (0 = Code, 1 = user defined)
pdShearMin
Clear Bar Spacing Shear Min Value

GetCriteriaReinCCBData ( [out] long* plAllow2Layers, [out] double* pdGravTopLayer1, [out] double* pdGravTopLayer2, [out] double*
pdGravBotLayer1, [out] double* pdGravBotLayer2, [out] double* pdLatTopLayer1, [out] double* pdLatTopLayer2, [out] double*
pdLatBotLayer1, [out] double* pdLatBotLayer2);
Purpose
Parameters

Criteria definitions for location from concrete tension surface to effective center of longitudinal
tension reinforcement for 1 and 2 layers of bars..
plAllow2Layers
1 = Allow 2 layers, 0 = dont allow 2 layers
pdGravTopLayer1
Cover to Center of Bars Grav Beams Top 1 Layer
pdGravTopLayer2
Cover to Center of Bars Grav Beams Top 2 Layer
pdGravBotLayer1
Cover to Center of Bars Grav Beams Bottom 1 Layer
pdGravBotLayer2
Cover to Center of Bars Grav Beams Bottom 2 Layer
pdLatTopLayer1
Cover to Center of Bars Lat Beams Top 1 Layer
pdLatTopLayer2
Cover to Center of Bars Lat Beams Top 2 Layer
pdLatBotLayer1
Cover to Center of Bars Lat Beams Bottom 1 Layer
pdLatBotLayer2
Cover to Center of Bars Lat Beams Bottom 2 Layer

GetCriteriaReinLRRData ([out] long* plLRRMax, [out] double* pdLRRMax, [out] long* plLRRMin, [out] double* pdLRRMin);
Purpose
Parameters

Get Criteria Reinforcement Longitudinal Reinf. Ratio Defaults.


plLRRMax
Long. Rein Ratio Max option (0 = Code, 1 = user defined)
pdLRRMax
Long. Rein Ratio Max Value
plLRRMin
Long. Rein Ratio Min option (0 = Code, 1 = user defined)
pdLRRMin
Long. Rein Ratio Min Value

SetBeamBarSets ([in] long lStory, [in] long lBeamLineID, [in] SBM_BAR_SET** ppaShearBarSet, [in] SBM_BAR_SET_BSTR**
ppaShearBarSetBstr, [in] long* plSizeShear, [in] SBM_BAR_SET** ppaTopFlxBarSet, [in] SBM_BAR_SET_BSTR**
ppaTopFlxBarSetBstr, [in] long* plSizeTopFlx, [in] SBM_BAR_SET** ppaBotFlxBarSet, [in] SBM_BAR_SET_BSTR**
ppaBotFlxBarSetBstr, [in] long* plSizeBotFlx);
Purpose
Parameters

Comments

Set all the reinforcement located in all the spans in the beam line.
lStory
Story where beam line is located
lBeamLineID
Beam line ID number
ppaShearBarSet
Shear reinforcement bar set data
ppaShearBarSetBstr
Shear reinforcement bar set strings
plSizeShear
Number of shear bar sets. Defines size of pShearBarSet and
pShearBarSetBstr
ppaTopFlxBarSet
Top longitudinal reinforcement bar set data
ppaTopFlxBarSetBstr
Top longitudinal reinforcement bar set strings
plSizeTopFlx
Number of Top longitudinal bar sets. Defines size of
pTopFlxBarSet and pTopFlxBarSetBstr
ppaBotFlxBarSet
Bottom longitudinal reinforcement bar set data
ppaBotFlxBarSetBstr
Bottom longitudinal reinforcement bar set strings
plSizeBotFlx
Number of Botttom longitudinal bar sets. Defines size of
pBotFlxBarSet and pBotFlxBarSetBstr
Note that all the reinforcement start and end locations are based on the start of the first span in
the beam line. If the first span has a cantilever then the origin is located at the free end of the

cantilever. If the first span does not have a cantilever then the origin of the bar sets is the
center of the first span support.

SetBeamEnvelopes ();
Purpose

Internal use only.

SetBeamResults ([in] long lStory, [in] long lBeamLineID, [in] long *plNumSpans, [in] SBML_RES** haBeamLine, [in] SBM_RES**
haBeamResults, [in] SBM_RES_BSTR** haBeamResultsBstr);
Purpose
Parameters

Set concrete beam design results.


lStory
Story number starting with 0 for the first story
lBeamLineID
Beam line ID number
plNumSpans
Total number of spans in beam line
haBeamLine
Beam line results
haBeamResults
Individual beam span results
haBeamResultsBstr
Individual beam span result strings

SetCriteriaBarSelectionData ([in] long* plMinTopBars, [in] long* plMinBotBars, [in] long* plBarLayerSame, [in] long* plSizeChange, [in] double*
pdSegSpaceInc, [in] double* pdShearBarSpaceInc, [in] long* plBarSelMethod, [in] long* plBarSizeBias, [in] long* plBiasLimit);
Purpose
Parameters

Set Criteria Beam Design Bar Selection Defaults.


plMinTopBars
Min Number of Top Longitudinal bars
plMinBotBars
Min Number of Bottom Longitudinal bars
plBarLayerSame
Keep all bars in layer the same size: 0 = FALSE, 1 = TRUE
plSizeChange
Number of sizes adjacent bars may differ by
pdSegSpaceInc
Trans bar spacing segment increment
pdShearBarSpaceInc
Trans bar spacing shear bar spacing increment (0 = based on
minimum required steel, 1 = based on maximum spacing controlling
over minimum rebar area, 2 = based on minimum spacing
controlling minimum rebar area)
plBarSelMethod
rebar selection method
plBarSizeBias
Bar Selection Bias for Bar Size (0 = small, 1 = medium, 2 = large)
plBiasLimit
Amount of bias (0 = low, 1 = medium, 2 = high)

SetCriteriaDetailingGravBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,
[in] long* plStirrupType);
Purpose
Parameters

Set Gravity Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans.
Distance from support to 1st shear reinforcement at
pdTransBarStartEnd
beam end

pdTransBarStartSpan
pdBotBarExtent1stSpanEnd
pdBotBarExtentSpan
plBotMinContinuous
plNumStirrupLegs
plSpliceType
plEndCond
plStirrupType

Distance from support to shear reinforcement at interior


supports
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
Cut-off location for bottom reinforcement relative to
support face at interior supports
Min. # of bottom bars continuous over support
Number of stirrup legs for gravity joists
Longitudinal reinforcement Splice type
Bottom longitudinal reinforcement end condition
Type of Stirrup

SetCriteriaDetailingGravJoistData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,
[in] long* plStirrupType);
Purpose
Parameters

Set Gravity Joist Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
Distance from support to 1st shear reinforcement at
pdTransBarStartEnd
beam end
Distance from support to shear reinforcement at interior
pdTransBarStartSpan
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type
plEndCond
Bottom longitudinal reinforcement end condition
plStirrupType
Type of Stirrup

SetCriteriaDetailingLatBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,
[in] long* plStirrupType);
Purpose
Parameters

Set Lateral Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at ends of
beam line
pdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at interior

pdTopBarExtentSpan
pdTransBarStartEnd
pdTransBarStartSpan
pdBotBarExtent1stSpanEnd
pdBotBarExtentSpan
plBotMinContinuous
plNumStirrupLegs
plSpliceType
plEndCond

plStirrupType

support of end span


Fractional location along span for top reinforcement along
interior spans
Distance from support to 1st shear reinforcement at beam end
Distance from support to shear reinforcement at interior
supports
Cut-off location for bottom reinforcement relative to support face
at ends of beam line
Cut-off location for tom reinforcement relative to support face at
interior supports
Min. # of bottom bars continuous over support
Number of stirrup legs for gravity joists
Longitudinal reinforcement Splice type (0 = ACI Class A, 1 =
ACI Class B)
Bottom longitudinal reinforcement end condition (0 = Straight, 1
= Splice, 2 = Hook 90, 3 = Hook 135, 4 = Closed, 5 = U, 6 =
Hoop, 7 = Mechanical)
Type of Stirrup (same as for plEndCond)

SetCriteriaReinCBCData ([in] long* plTop, [in] double* pdTop, [in] long* plSide, [in] double* pdSide, [in] long* plBot, [in] double* pdBot);
Purpose
Parameters

Set Criteria Reinforcement Clear Bar Cover Defaults.


plTop
Clear Bar Cover Top option (0 = Code, 1 = user defined)
pdTop
Clear Bar Cover Top Value
plSide
Clear Bar Cover Side option (0 = Code, 1 = user defined)
pdSide
Clear Bar Cover Side Value
plBot
Clear Bar Cover Bottom option (0 = Code, 1 = user defined)
pdBot
Clear Bar Cover Bottom Value

SetCriteriaReinCBSFlexure ([in] long* plFlexMax, [in] double* pdFlexMax, [in] long* plFlexMin, [in] double* pdFlexMin);
Purpose
Parameters

Set Criteria Reinforcement Clear Bar Spacing Flexure Defaults.


plFlexMax
Clear Bar Spacing Flexure Max option (0 = Code, 1 = user defined)
pdFlexMax
Clear Bar Spacing Flexure Max Value
plFlexMin
Clear Bar Spacing Flexure Min option (0 = Code, 1 = user defined)
pdFlexMin
Clear Bar Spacing Flexure Min Value

SetCriteriaReinCBSShear ( [in] long* plShearMax, [in] double* pdShearMax, [in] long* plShearMin, [in] double* pdShearMin);
Purpose
Parameters

Set Criteria Reinforcement Clear Bar Spacing Shear Defaults.


plShearMax
Clear Bar Spacing Shear Max option (0 = Code, 1 = user defined)
pdShearMax
Clear Bar Spacing Shear Max Value
plShearMin
Clear Bar Spacing Shear Min option (0 = Code, 1 = user defined)
pdShearMin
Clear Bar Spacing Shear Min Value

SetCriteriaReinCCBData ( [in] long* plAllow2Layers, [in] double* pdGravTopLayer1, [in] double* pdGravTopLayer2, [in] double*
pdGravBotLayer1, [in] double* pdGravBotLayer2, [in] double* pdLatTopLayer1, [in] double* pdLatTopLayer2, [in] double*
pdLatBotLayer1, [in] double* pdLatBotLayer2);
Purpose
Parameters

Criteria definitions for location from concrete tension surface to effective center of longitudinal
tension reinforcement for 1 and 2 layers of bars..
plAllow2Layers
1 = Allow 2 layers, 0 = dont allow 2 layers
pdGravTopLayer1
Cover to Center of Bars Grav Beams Top 1 Layer
pdGravTopLayer2
Cover to Center of Bars Grav Beams Top 2 Layer
pdGravBotLayer1
Cover to Center of Bars Grav Beams Bottom 1 Layer
pdGravBotLayer2
Cover to Center of Bars Grav Beams Bottom 2 Layer
pdLatTopLayer1
Cover to Center of Bars Lat Beams Top 1 Layer
pdLatTopLayer2
Cover to Center of Bars Lat Beams Top 2 Layer
pdLatBotLayer1
Cover to Center of Bars Lat Beams Bottom 1 Layer
pdLatBotLayer2
Cover to Center of Bars Lat Beams Bottom 2 Layer

SetCriteriaReinLRRData ([in] long* plLRRMax, [in] double* pdLRRMax, [in] long* plLRRMin, [in] double* pdLRRMin);
Purpose
Parameters

Set Criteria Reinforcement Longitudinal Reinf. Ratio Defaults.


plLRRMax
Long. Rein Ratio Max option (0 = Code, 1 = user defined)
pdLRRMax
Long. Rein Ratio Max Value
plLRRMin
Long. Rein Ratio Min option (0 = Code, 1 = user defined)
pdLRRMin
Long. Rein Ratio Min Value

IConcBeamState2
Philosophy: This interface is for maintaining the state of the concrete beam module.
GetBSBarSelData ( [out] long* plSideBar, [out] long* plMinLongSize, [out] long* plMaxLongSize, [out] long* plTransSize);
Purpose
Parameters

BS 8110 Beam Design Defaults.


plSideBar
plMinLongSize
plMaxLongSize
plTransSize

Index to the side bar minimum size


Minimum longitudinal bar size
Index to the maximum longitudinal bar size
Index to the shear bar size

GetBSDesignCheckData ( [out] long* plDesignShear, [out] BOOL* pbUseEnhanced);


Purpose
Parameters

BS 8110 Beam Design Defaults.


plDesignShear
0 = center line of support, 1 = column face
pbUseEnhanced
True if Use Enhanced Shear Effects option is selected

GetBSShearDesignCriteria ( [out] double* pdShearSpacing, [out] long* plNumLegs, [out] long* plLinkType);
Purpose
Parameters

BS 8110 Beam Design Defaults.


pdShearSpacing
Minimum spacing

plNumLegs
plLinkType

Index to the number of shear legs


0 = Open, 1 = Closed

GetCamberCriteria ( [out] long *plDontCamber, [out] double *pdMinSpanLength, [out] double *pdDLforCamber, [out] double *pdCamberInc, [out]
double *pdMinCamber, [out] double * pdMaxCamber);
Purpose
Parameters

Get Concrete camber criteria.


plDontCamber
0 = camber (don't not camber), 1 = don't camber
pdMinSpanLength
Minimum span length to camber
pdDLforCamber
% of Dead Load for camber
pdCamberInc
Camber increment
pdMinCamber
Minimum camber value
pdMaxCamber
Maximum camber value

GetCheckDeepBeam ( [out] BOOL* pbCheckDeepBeam);


Purpose
Parameters

To get the mdf variable for whether the user wants to check deep beams.
pbCheckDeepBeam TRUE = Check Deep Beams

GetCheckTorsion ( [out] BOOL* pbCheckTorsion);


Purpose
Parameters

To get the mdf variable for whether the user wants to check torsional capacity for beams.
pbCheckTorsion
TRUE = Check Torsional Capacity

GetChinaShearDesignCriteria ([out] double* pdShearSpacing, [out] double* pdShearSpacingCompact, [out] long* plNumLegs, [out] long*
plLinkType, [out, retval] long* plRetVal);
Purpose
Parameters

Get the shear design criteria for the Chinese code.


pdShearSpacing
Shear bar spacing in the non-compact zone
pdShearSpacingCompact Shear bar spacing in the compact zone
plNumLegs
Number of links
plLinkType
Link type. 0 for closed, 1 for open.
plRetVal
Error code. If value is non zero then check GetLastError

GetConcBeamReinMinBarLayerGap ( [out] double* pdUpper, [out] double* pdLower);


Purpose
Parameters

BS 8110 Beam Design Defaults.


pdUpper
Gap between upper main bar layers
pdLower
Gap between lower main bar layers

GetCriteriaDetailingGravBeamData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plTopMinContinuous, [out] long* plNumStirrupLegs, [out]
long* plSpliceType, [out] long* plEndCond, [out] long* plStirrupType);
Purpose
Parameters

Get Gravity Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span

pdTopBarExtentSpan
pdTransBarStartEnd
pdTransBarStartSpan
pdBotBarExtent1stSpanEnd
pdBotBarExtentSpan
plBotMinContinuous
plTopMinContinuous
plNumStirrupLegs
plSpliceType
plEndCond

plStirrupType

Fractional location along span for top reinforcement


along interior spans
Distance from support to 1st shear reinforcement at
beam end
Distance from support to shear reinforcement at interior
supports
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
Cut-off location for tom reinforcement relative to support
face at interior supports
Min. # of bottom bars continuous over support
Min. # of top bars continuous over support
Number of stirrup legs for gravity joists
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
Bottom longitudinal reinforcement end condition (0 =
Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =
Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
Type of Stirrup (same as for plEndCond)

GetCriteriaDetailingGravJoistData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plTopMinContinuous, [out] long* plNumStirrupLegs, [out]
long* plSpliceType, [out] long* plEndCond, [out] long* plStirrupType);
Purpose
Parameters

Get Gravity Joist Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at
beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plTopMinContinuous
Min. # of top bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
plEndCond
Bottom longitudinal reinforcement end condition (0 =

plStirrupType

Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =


Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
Type of Stirrup (same as for plEndCond)

GetCriteriaDetailingLatBeamData ([out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*


pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,
[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plTopMinContinuous, [out] long* plNumStirrupLegs, [out]
long* plSpliceType, [out] long* plEndCond, [out] long* plStirrupType);
Purpose
Parameters

Get Lateral Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at
beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plTopMinContinuous
Min. # of top bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
plEndCond
Bottom longitudinal reinforcement end condition (0 =
Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =
Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
plStirrupType
Type of Stirrup (same as for plEndCond)

GetDeflectionAlternateCriteria ( [out] double *pdDLRatio, [out] double *pdDLAbs, [out] double *pdLLRatio, [out] double *pdLLAbs, [out] double
*pdLTRatio, [out] double *pdLTAbs, [out] double *pdNetRatio, [out] double *pdNetAbs);
Purpose
Parameters

Get the alternate span-to-deflection ratios/ abs values.


pdDLRatio
Dead Load l/d
pdDLAbs
Dead Load delta
pdLLRatio
Live Load l/d
pdLLAbs
Live Load delta
pdLTRatio
Long Term + LL l/d
pdLTAbs
Long Term + LL delta
pdNetRatio
Net Total l/d
pdNetAbs
Net Total delta

GetDeflectionCriteria ([in] LONG lIndex, [out] LONG *plUniqueID, [out] BSTR *pbstrName, [out] double *pdDLRatio, [out] double pdDLAbs, [out]
double *pdLLRatio, [out] double *pdLLAbs, [out] double *pdLTRatio, [out] double *pdLTAbs, [out] double *pdNetRatio, [out] double
*pdNetAbs);
Purpose
Parameters

Get the number of deflection criteria defined.


lIndex
Index of the criteria
plUnique ID
Unique ID of the criteria
pbstrName
Label of the criteria
pdDLRatio
Dead Load deflection as ratio (ie 360 for L/360)
pdLAbs
Dead Load deflection as absolute value (ie 1 for 1 inch)
pdLLRatio
LIve Load deflection as ratio (ie 360 for L/360)
pdLLabs
Live Load deflection as absolute value (ie 1 for 1 inch)
pdLTRatio
Long Term deflection as ratio (ie 360 for L/360)
pdLTAbs
Long Term deflection as absolute value (ie 1 for 1 inch)
pdNetRatio
Net deflection as ratio (ie 360 for L/360)
pdNetAbs
Net deflection as absolute value (ie 1 for 1 inch)

GetDeflectionCriteriaIeff ([out] long *plIeff);


Purpose
Parameters

User option as to whether the Ieff used for deflection is to be calculated per ACI, or
whether the user specified I (Ig x cracked factor) is to be used.
plIeff
Ieff value to use - 0=per ACI, 1=from Analysis

GetDeflectionCriteriaLongTerm ( [out] double *pdInitialTimeFac, [out] double *pdFinalTimeFac, [out] double *pdLLSustained);
Purpose
Parameters

Get Long Term Deflection criteria.


pdInitialTimeFac
Initial time dependent factor
pdFinalTimeFac
Final time dependent factor
pdLLSustained
% of LL sustained

GetDeflectionCriteriaMinCheckRatio ( [out] long *plDontCheck, [out] double *pdSpanDepthRatio);


Purpose
Parameters

Get whether or not to skip deflection check for minimum span/depth ratio.
plDontCheck
Don't check defl for the following ratio
pdSpanDepthRatio
minimum deflection check span/depth ratio

GetDeflectionDefaultCriteria ( [out] double *pdDLRatio, [out] double *pdDLAbs, [out] double *pdLLRatio, [out] double *pdLLAbs, [out] double
*pdLTRatio, [out] double *pdLTAbs, [out] double *pdNetRatio, [out] double *pdNetAbs);
Purpose
Parameters

Get the default span-to-deflection ratios/ abs values.


pdDLRatio
Dead Load l/d
pdDLAbs
Dead Load delta
pdLLRatio
Live Load l/d
pdLLAbs
Live Load delta
pdLTRatio
Long Term + LL l/d
pdLTAbs
Long Term + LL delta
pdNetRatio
Net Total l/d
pdNetAbs
Net Total delta

GetDesignJoistsAsBeams ([out] BOOL *pbDesignJstAsBeam, [out,retval] long *plRetVal);

Purpose
Parameters

Indicates if members assigned as joist are actually designed as beams.


pbDesignJstAsBeam
TRUE = design joists as beams
plRetVal
Error code. If value is non zero then check GetLastError

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatBmGravForceSource ( long* plLatMemGravForceSource, [out,retval] long* plRetVal );


Purpose
Parameters

Get the source of gravity forces on lateral conc beams.


plLatMemGravForceSource
0=lat beam grav forces from ram conc, 1= from RFrame
plRetVal
Error code. If value is non zero then check GetLastError

GetMemberScheduleMark ([in] long lBeamID, [out] SConcScheduleMark* pBeamScheduleMark, [out,retval] long* plRetVal);
Purpose
Parameters

Get the member concrete reinforcement schedule marks.


lBeamID
Beam Unique ID
pBeamScheduleMark
Concrete beam schedule mark
plRetVal
Error code. If value is non zero then check GetLastError

GetNumDeflectionCriteria ([out, retVal] long* plCount);


Purpose
Parameters

Get the number of deflection criteria defined.


plCount
Number of criteria

Reset ();
Purpose

Internal use only.

SetBSBarSelData ( [in] long* plSideBar, [in] long* plMinLongSize, [in] long* plMaxLongSize, [in] long* plTransSize);
Purpose
Parameters

BS 8110 Beam Design Defaults.


plSideBar
plMinLongSize
plMaxLongSize
plTransSize

Index to the side bar minimum size


Minimum longitudinal bar size
Index to the maximum longitudinal bar size
Index to the shear bar size

SetBSDesignCheckData ( [in] long* plDesignShear, [in] BOOL* pbUseEnhanced);


Purpose
Parameters

BS 8110 Beam Design Defaults.


plDesignShear
0 = center line of support, 1 = column face
pbUseEnhanced
True if Use Enhanced Shear Effects option is selected

SetBSShearDesignCriteria ( [in] double* pdShearSpacing, [in] long* plNumLegs, [in] long* plLinkType);
Purpose
Parameters

BS 8110 Beam Design Defaults.


pdShearSpacing
Minimum spacing
plNumLegs
Index to the number of shear legs
plLinkType
0 = Open, 1 = Closed

SetCamberCriteria ( [in] long *plDontCamber, [in] double *pdMinSpanLength, [in] double *pdDLforCamber, [in] double *pdCamberInc, [in] double
*pdMinCamber, [in] double * pdMaxCamber);
Purpose
Parameters

Get Concrete camber criteria.


plDontCamber
0 = camber (don't not camber), 1 = don't camber
pdMinSpanLength
Minimum span length to camber
pdDLforCamber
% of Dead Load for camber
pdCamberInc
Camber increment
pdMinCamber
Minimum camber value
pdMaxCamber
Maximum camber value

SetCheckDeepBeam ( [in] BOOL* pbCheckDeepBeam);


Purpose
Parameters

To get the mdf variable for whether the user wants to check deep beams.
pbCheckDeepBeam TRUE = Check Deep Beams

SetCheckTorsion ( [in] BOOL* pbCheckTorsion);


Purpose
Parameters

To get the mdf variable for whether the user wants to check torsional capacity for beams.
pbCheckTorsion
TRUE = Check Torsional Capacity

SetChinaShearDesignCriteria ([in] double dShearSpacing, [in] double dShearSpacingCompact, [in] long lNumLinks, [in] long lLinkType, [in,
retval] long* plRetVal);
Purpose
Parameters

Set the shear design criteria for the Chinese code.


dShearSpacing
Shear bar spacing in the non-compact zone
dShearSpacingCompact Shear bar spacing in the compact zone
lNumLinks
Number of links
lLinkType
Link type. 0 for closed, 1 for open.
plRetVal
Error code. If value is non zero then check GetLastError

SetConcBeamReinMinBarLayerGap ( [in] double* pdUpper, [in] double* pdLower);


Purpose
Parameters

BS 8110 Beam Design Defaults.


pdUpper
Gap between upper main bar layers
pdLower
Gap between lower main bar layers

SetCriteriaDetailingGravBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plTopMinContinuous, [in] long* plNumStirrupLegs, [in] long*
plSpliceType, [in] long* plEndCond, [in] long* plStirrupType);
Purpose
Parameters

Set Gravity Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at
beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plTopMinContinuous
Min. # of top bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
plEndCond
Bottom longitudinal reinforcement end condition (0 =
Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =
Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
plStirrupType
Type of Stirrup (same as for plEndCond)

SetCriteriaDetailingGravJoistData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plTopMinContinuous, [in] long* plNumStirrupLegs, [in] long*
plSpliceType, [in] long* plEndCond, [in] long* plStirrupType);
Purpose
Parameters

Set Gravity Joist Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at
beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to

pdBotBarExtentSpan
plBotMinContinuous
plTopMinContinuous
plNumStirrupLegs
plSpliceType
plEndCond

plStirrupType

support face at ends of beam line


Cut-off location for tom reinforcement relative to support
face at interior supports
Min. # of bottom bars continuous over support
Min. # of top bars continuous over support
Number of stirrup legs for gravity joists
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
Bottom longitudinal reinforcement end condition (0 =
Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =
Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
Type of Stirrup (same as for plEndCond)

SetCriteriaDetailingLatBeamData ([in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*


pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]
double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plTopMinContinuous, [in] long* plNumStirrupLegs, [in] long*
plSpliceType, [in] long* plEndCond, [in] long* plStirrupType);
Purpose
Parameters

Set Lateral Beam Detailing Defaults.


pdTopBarExtentBeamEnd
Fractional location along span for top reinforcement at
ends of beam line
pdTopBarExtent1stSpanEnd
Fractional location along span for top reinforcement at
interior support of end span
pdTopBarExtentSpan
Fractional location along span for top reinforcement
along interior spans
pdTransBarStartEnd
Distance from support to 1st shear reinforcement at
beam end
pdTransBarStartSpan
Distance from support to shear reinforcement at interior
supports
pdBotBarExtent1stSpanEnd
Cut-off location for bottom reinforcement relative to
support face at ends of beam line
pdBotBarExtentSpan
Cut-off location for tom reinforcement relative to support
face at interior supports
plBotMinContinuous
Min. # of bottom bars continuous over support
plTopMinContinuous
Min. # of top bars continuous over support
plNumStirrupLegs
Number of stirrup legs for gravity joists
plSpliceType
Longitudinal reinforcement Splice type (0 = ACI ClassA,
1 = ACI ClassB)
plEndCond
Bottom longitudinal reinforcement end condition (0 =
Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =
Closed, 5 = U, 6 = Hoop, 7 = Mechanical)
plStirrupType
Type of Stirrup (same as for plEndCond)

SetDeflectionAlternateCriteria ( [in] double *pdDLRatio, [in] double *pdDLAbs, [in] double *pdLLRatio, [in] double *pdLLAbs, [in] double
*pdLTRatio, [in] double *pdLTAbs, [in] double *pdNetRatio, [in] double *pdNetAbs);
Purpose

Set the alternate span-to-deflection ratios/ abs values.

Parameters

pdDLRatio
pdDLAbs
pdLLRatio
pdLLAbs
pdLTRatio
pdLTAbs
pdNetRatio
pdNetAbs

Dead Load l/d


Dead Load delta
Live Load l/d
Live Load delta
Long Term + LL l/d
Long Term + LL delta
Net Total l/d
Net Total delta

SetDeflectionCriteria ([in] LONG lIndex, [in] LONG lUniqueID, [in] BSTR bstrName, [in] double dDLRatio, [in] double dDLAbs, [in] double
dLLRatio, [in] double dLLAbs, [in] double dLTRatio, [in] double dLTAbs, [in] double dNetRatio, [in] double dNetAbs);
Purpose
Parameters

Set the number of deflection criteria defined.


lIndex
Index of the criteria
lUnique ID
Unique ID of the criteria
pbstrName
Label of the criteria
dDLRatio
Dead Load deflection as ratio (ie 360 for L/360)
dLAbs
Dead Load deflection as absolute value (ie 1 for 1 inch)
dLLRatio
LIve Load deflection as ratio (ie 360 for L/360)
dLLabs
Live Load deflection as absolute value (ie 1 for 1 inch)
dLTRatio
Long Term deflection as ratio (ie 360 for L/360)
dLTAbs
Long Term deflection as absolute value (ie 1 for 1 inch)
dNetRatio
Net deflection as ratio (ie 360 for L/360)
dNetAbs
Net deflection as absolute value (ie 1 for 1 inch)

SetDeflectionCriteriaIeff ([in] long *plIeff);


Purpose
Parameters

User option as to whether the Ieff used for deflection is to be calculated per ACI, or
whether the user specified I (Ig x cracked factor) is to be used.
plIeff
Ieff value to use - 0=per ACI, 1=from Analysis

SetDeflectionCriteriaLongTerm ( [in] double *pdInitialTimeFac, [in] double *pdFinalTimeFac, [in] double *pdLLSustained);
Purpose
Parameters

Get Long Term Deflection criteria.


pdInitialTimeFac
Initial time dependent factor
pdFinalTimeFac
Final time dependent factor
pdLLSustained
% of LL sustained

SetDeflectionCriteriaMinCheckRatio ( [in] long *plDontCheck, [in] double *pdSpanDepthRatio);


Purpose
Parameters

Get whether or not to skip deflection check for minimum span/depth ratio.
plDontCheck
Don't check defl for the following ratio
pdSpanDepthRatio
minimum deflection check span/depth ratio

SetDeflectionDefaultCriteria ( [in] double *pdDLRatio, [in] double *pdDLAbs, [in] double *pdLLRatio, [in] double *pdLLAbs, [in] double *pdLTRatio,
[in] double *pdLTAbs, [in] double *pdNetRatio, [in] double *pdNetAbs);
Purpose
Parameters

Get the default span-to-deflection ratios/ abs values.


pdDLRatio
Dead Load l/d
pdDLAbs
Dead Load delta

pdLLRatio
pdLLAbs
pdLTRatio
pdLTAbs
pdNetRatio
pdNetAbs

Live Load l/d


Live Load delta
Long Term + LL l/d
Long Term + LL delta
Net Total l/d
Net Total delta

SetDesignJoistsAsBeams ( [out] BOOL *pbDesignJstAsBeam, [out,retval] long *plRetVal );


Purpose
Parameters

Indicates if members assigned as joist are actually designed as beams.


pbDesignJstAsBeam
TRUE = design joists as beams
plRetVal
Error code. If value is non zero then check GetLastError

SetLatBmGravForceSource ( [out] long* plLatMemGravForceSource, [out,retval] long* plRetVal );


Purpose
Parameters

Get the source of gravity forces on lateral conc beams.


plLatMemGravForceSource
0=lat beam grav forces from ram conc, 1= from RFrame
plRetVal
Error code. If value is non zero then check GetLastError

SetMemberScheduleMark ([out] long lBeamID, [in, out] SConcScheduleMark* pBeamScheduleMark, [out,retval] long* plRetVal );
Purpose
Parameters

Get the member concrete reinforcement schedule marks.


lBeamID
Beam Unique ID
pBeamScheduleMark
Concrete beam schedule mark
plRetVal
Error code. If value is non zero then check GetLastError

SetNumDeflectionCriteria ( [out] long lCount);


Purpose
Parameters

Set the number of deflection criteria defined.


lCount
Number of criteria

IConcCntlrCommon1
Philosophy: This interface is used to access data that is common to several controllers.
ClearSPDataForBeam ();
Purpose

Internal use only.

GetCriteriaCode ( [out, RetVal] EDA_CONC_CODE );


Purpose

Get the concrete code.

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetFrameTypeCriteria ([out] long* plFrameRadioSel, [out] long* pnNum, [out] BOOL** ppabIncludeCheck);

Purpose
Parameters

Get the type of concrete frame type the user has selected for this model.
plFrameRadioSel
0 = Ordinary Moment Frame, 1 = Intermediate, 2 = Special
pnNum
0 (Not used now)
ppabIncludeCheck NULL (Not used now)

GetFrameTypeUsedInDesign ([out] long *plFrameType);


Purpose
Parameters

Get the frame type used for design. This might not be the currently selected frame type.
plFrameType
0 = ordinary, 1 = intermediate, 2 = special

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetSDCForConcrete ( [out] long* plSDC );


Purpose
Parameters

Get the seismic design category.


plSDC
Index to seismic design category

GetSMFLoadComboFactors ([out] long* plSMFRadioSel, [out] double* pdDead, [out] double* pdLive, [out] double* pdSnow);
Purpose
Parameters

To get the load combo factors used for the selected frame type (IMF or SMF).
plSMFRadioSel
radio button selection in the dialog
0 = ACI, 1 = UBC, 2 = user defined values
pdDead
Dead load factor entered by the user
pdLive
Live load factor entered by the user
pdSnow
Snow load factor entered by the user

GetSpecialProvDsnEndShear ([in] long lBeamID, [out] double* pdVuORVeIEnd, [out] double* pdVuORVeJEnd, [out] double* pdVuAnalysisIEnd,
[out] double* pdVuAnalysisJEnd, [out] long *plResult);
Purpose
Parameters

Get the required special provision end shears capacities of the mid span of a given beam.
lBeamID
Beam unique ID
pdVuORVeIEnd
Required minimum shear capacity at I end. Vu for IMF and Ve
for SMF
Required minimum shear capacity at J end. Vu for IMF and Ve
pdVuORVeJEnd
for SMF
pdVuAnalysisIEnd
Analysis required shear capacity at I end
pdVuAnalysisJEnd
Analysis required shear capacity at J end

plResult

Returned error code

GetSpecialProvEndMomentCap ([in] long lBeamID, [out] double* pdMnIEndPos, [out] double* pdMnIEndNeg, [out] double* pdMnJEndPos, [out]
double* pdMnJEndNeg, [out] double* pdMprIEndPos, [out] double* pdMprIEndNeg, [out] double* pdMprJEndPos, [out] double*
pdMprJEndNeg, [out] long *plResult);
Purpose
Parameters

Get the end moment capacities of the mid span of a given beam.
lBeamID
Beam unique ID
pdMnIEndPos
Positive nominal moment at I end of beam
pdMnIEndNeg
Negative nominal moment at I end of beam
pdMnJEndPos
Positive nominal moment at J end of beam
pdMnJEndNeg
Negative nominal moment at J end of beam
pdMprIEndPos
Positive probable moment at I end of beam
pdMprIEndNeg
Negative probable moment at I end of beam
pdMprJEndPos
Positive probable moment at J end of beam
pdMprJEndNeg
Negative probable moment at J end of beam
plResult
Returned error code

GetSpecialProvEndShears ([in] long lBeamID, [out] double* pdIEndSPShear, [out] double* pdJEndSPShear, [out] long *plResult);
Purpose
Parameters

Get the calculated special provision minimum required end shears for beam. If not
found, set -1.0 for all values and return error code.
lBeamID
Beam Unique ID
pdIEndSPShear
I or Start Special Provisions Shear min. required shear
pdJEndSPShear
J or End Special Provisions Shear min. required shear
plResult
Error code 0 = no error

GetSpecialProvReinAreaAtSupportFace ([in] long lBeamID, [out] double *pdStartTopReinArea, [out] double *pdStartBotReinArea, [out] double
*pdEndTopReinArea, [out] double *pdEndBotReinArea, [out] long *plResult);
Purpose
Parameters

Get provided reinforcement area at ends of span. Used for Special provisions design.
lBeamID
Beam unique ID
pdStartTopReinArea
Top reinforcement area at start of beam
pdStartBotReinArea
Bottom reinforcement area at start of beam
pdEndTopReinArea
Top reinforcement area at end of beam
pdEndBotReinArea
Bottom reinforcement area at end of beam
plResult
Returned error code

Reset ();
Purpose

Internal use only.

SaveSPData ();
Purpose

Internal use only.

SetCriteriaCode ( [out, RetVal] EDA_CONC_CODE );


Purpose

Set the concrete code.

SetFrameTypeCriteria ([in] long* plFrameRadioSel, [in] long* pnNum, [in] BOOL** ppabIncludeCheck);
Purpose
Parameters

Set the type of concrete frame type the user has selected for this model.
plFrameRadioSel
0 = Ordinary Moment Frame, 1 = Intermediate, 2 = Special
pnNum
0 (Not used now)
ppabIncludeCheck NULL (Not used now)

SetFrameTypeUsedInDesign ([in] long *plFrameType);


Purpose
Parameters

Set the frame type used for design. This might not be the currently selected frame type.
plFrameType
0 = ordinary, 1 = intermediate, 2 = special

SetSDCForConcrete ( [in] long* plSDC );


Purpose
Parameters

Set the seismic design category.


plSDC
Index to seismic design category

SetSMFLoadComboFactors ([in] long* plSMFRadioSel, [in] double* pdDead, [in] double* pdLive, [in] double* pdSnow);
Purpose
Parameters

Set the load combo factors used for the selected frame type (IMF or SMF).
plSMFRadioSel
radio button selection in the dialog
0 = ACI, 1 = UBC, 2 = user defined values
pdDead
Dead load factor entered by the user
pdLive
Live load factor entered by the user
pdSnow
Snow load factor entered by the user

SetSpecialProvDsnEndShear ([in] long lBeamID, [in] double* pdVuORVeIEnd, [in] double* pdVuORVeJEnd, [in] double* pdVuAnalysisIEnd, [in]
double* pdVuAnalysisJEnd );
Purpose
Parameters

Set the required special provision end shears capacities of the mid span of a given beam.
lBeamID
Beam unique ID
pdVuORVeIEnd
Required minimum shear capacity at I end. Vu for IMF and Ve
for SMF
Required minimum shear capacity at J end. Vu for IMF and Ve
pdVuORVeJEnd
for SMF
pdVuAnalysisIEnd
Analysis required shear capacity at I end
pdVuAnalysisJEnd
Analysis required shear capacity at J end
plResult
Returned error code

SetSpecialProvEndMomentCap ([in] long lBeamID, [in] double* pdMnIEndPos, [in] double* pdMnIEndNeg, [in] double* pdMnJEndPos, [in]
double* pdMnJEndNeg, [in] double* pdMprIEndPos, [in] double* pdMprIEndNeg, [in] double* pdMprJEndPos, [in] double* pdMprJEndNeg
);
Purpose
Parameters

Set the end moment capacities of the mid span of a given beam.
lBeamID
Beam unique ID
pdMnIEndPos
Positive nominal moment at I end of beam
pdMnIEndNeg
Negative nominal moment at I end of beam
pdMnJEndPos
Positive nominal moment at J end of beam

pdMnJEndNeg
pdMprIEndPos
pdMprIEndNeg
pdMprJEndPos
pdMprJEndNeg
plResult

Negative nominal moment at J end of beam


Positive probable moment at I end of beam
Negative probable moment at I end of beam
Positive probable moment at J end of beam
Negative probable moment at J end of beam
Returned error code

SetSpecialProvEndShears ([in] long lBeamID, [in] double* pdIEndSPShear, [in] double* pdJEndSPShear );
Purpose
Parameters

Set the calculated special provision minimum required end shears for beam. If not
found, set -1.0 for all values and return error code.
lBeamID
Beam Unique ID
pdIEndSPShear
I or Start Special Provisions Shear min. required shear
pdJEndSPShear
J or End Special Provisions Shear min. required shear
plResult
Error code 0 = no error

SetSpecialProvReinAreaAtSupportFace ([in] long lBeamID, [in] double *pdStartTopReinArea, [in] double *pdStartBotReinArea, [in] double
*pdEndTopReinArea, [in] double *pdEndBotReinArea, [out] long *plResult);
Purpose
Parameters

Set provided reinforcement area at ends of span. Used for Special provisions design.
lBeamID
Beam unique ID
pdStartTopReinArea
Top reinforcement area at start of beam
pdStartBotReinArea
Bottom reinforcement area at start of beam
pdEndTopReinArea
Top reinforcement area at end of beam
pdEndBotReinArea
Bottom reinforcement area at end of beam
plResult
Returned error code

IConcColModState1
Philosophy: This interface is for maintaining the state of the concrete column module.
ClearColumnResults ();
Purpose

Internal use only.

GetAssignGeometry ([out] BOOL* pbAssignSize, [out] BOOL* pbAssignLegs, [out] long* pnMajor, [out] long* pnMinor, [out] pnUserMajor, [out]
pnUserMinor, [out] pnSizeIndex, [out] BSTR bstrGblMajor, [out] BSTR bstrGblMinor );
Purpose
Parameters

Assign menu dialog settings.


pbAssignSize
1 if Assign Size exists
pbAssignLegs
1 if Assign Legs exists
pnMajor
0 = Use Global, 1 = User Defined
pnMinor
0 = Use Global, 1 = User Defined
pnUserMajor
Number of legs in the major axis
pnUserMinor
Number of Legs in the minor axis
pnSizeIndex
Index to the selected column size in Assign - Size

bstrGblMajor
bstrGblMinor

String for the global setting in the minor axis


String for the global setting in the minor axis

GetBarGroup ([in] long nIndex, [out] BSTR* pbstrLabel, [out] BSTR* pbstrListBoxLabel, [out] BSTR* pbstrMaxBar, [out] BSTR* pbstrMinBar,
[out] BSTR* pbstrTieBar, [out] long* pnGroupID, [out] long* pnNumLong, [out] long* pnNumAdd, [out] long* pnNumPatternsInGroup, [out]
long* pnType, [out] long* pbUse, [out] long* pbValid);
Purpose
Parameters

Get the bar pattern group.


nIndex
pbstrLabel
pbstrListBoxLabel
pbstrMaxBar
pbstrMinBar
pbstrTieBar
pnGroupID
pnNumLong

pnNumAdd
pnNumPatternsInGroup
pnType
pbUse
pbValid

Pattern group index number


Label automatically generated for the group
Group label that is used in list boxes (includes tab character)
Max longitudinal bar size label
Min longitudinal bar size label
Transverse bar size label
Unique Group ID.
Number of longitudinal bars used at top and bottom of
rectangular patterns or total number of bars used in round
pattern layouts
Additional bars on left and right side of rectangular patterns
Number of bar patterns generated by group
Pattern type - ePATTERN_TYPE
Pattern group is being used
True = pattern group is valid and can be used in design

GetBarPattern ([in] long nGroupIndex, [in] long nNumPatterns, [out] SBAR_PATTERN* pBarPattern);
Purpose
Parameters

To get a specific bar pattern group.


nGroupIndex
The group index
nNumPatterns
The number of patterns within the group. This is used for data
checking.
pBarPattern
Pointer to an array of SBAR_PATTERNs. Memory must be
allocated before the pointer is sent into DataAccess.

GetBarPatternData ([in] long* pnNextPatternID, [out] long* pnNextGroupID, [out] long* pnLastGroupSelected );
Purpose
Parameters

Get additional bar pattern group data. .


pnNextPatternID
Unique ID of the next pattern
pnNextGroupID
Unique ID of the next group
pnLastGroupSelected
Index of the last selected group

GetColDesignEffLengthFactors ([in] long lColID, [out] double * pdKx, [out] double * pdKy);
Purpose

Parameters

Return the effective length factors for a specific column (based on sway/non sway.
Column setting and the members framing into the column). Assumes fixity specified for
lateral beams else assumes beams with beam line numbers are continuous else they are
considered pinned. Similarly, gravity concrete columns are assumed continuous.
lColID
The unique column ID to get effective length factors for
pdKx
The effective length factor for major axis
pdKy
The effective length factor for minor axis

GetColumnResults ([in] long lColID, [out] SCOL_RES** ppaColRes, [out] SCOL_PATRES** ppaPatRes, [out] SCOL_PATRES_BSTR**
ppaPatResStr, [out] SCOL_TRANSRES** ppaTransBarRes, [out] SCOL_TRANSRES_BSTR** ppaTransBarResStr, [out] long*
plNumPat, [out] long* plNumTrans);
Purpose
Parameters

Comments

Get all concrete column design data.


lColID
Columns unique ID
ppaColRes
Concrete Column Results data
ppaPatRes
Bar Pattern Results data
ppaPatResStr
Strings for Bar Pattern Results data
ppaTransBarRes
Column Transverse Reinforcement Set data
ppaTransBarResStr
Strings for Column Transverse Reinforcement Set data
plNumPat
Number of bar patterns Array size of paPatRes and
paPatResStr
plNumTrans
Number of Transverse bar sets Array size of paTransBarRes
and paTransBarResStr
Method nulls pColResults, paPatternResults, paTransBarResults and redimensions
them. The memory for the arrays need to be released using CoTaskMemFree

Additional Notes:
All of the transverse bar groups for all of the bar patterns are saved consecutively starting with all of the bar sets for the first bar pattern. The variable
indicates the number of transverse bar groups associated with that bar pattern. So the first set of transverse bar sets are associated with the first bar
pattern and the next set identified by the number of trans. bar sets belongs to the second bar set.

GetCriteriaBarSelection ([out] double*, pdSegIncr, [out] double* pdTransIncr );


Purpose
Parameters

Get the bar selection criteria in Criteria Column Design


pdSegIncr
Transverse segment spacing increment
pdTransIncr
Transverse bar spacing increment

GetCriteriaBarSpacing ([out] BAR_SPACING* pBarSpacing);


Purpose
Parameters

Get the spacing and clear cover values from the Criteria - Design Reinforcement page.
pBarSpacing
Structure of bar spacing values.

GetCriteriaLapSplice ([out] double* pdLap1, [out] double* pdLap2, [out] long* pnNumRebar, [out] BSTR* pbstrSelSize);
Purpose
Parameters

GetCriteriaShearLegs
Purpose
Parameters

Lap splice information used to calculate material takeoff for longitudinal column
reinforcement.
pdLap1
Bars less than or equal to pbstrSelSize use pdLap1 x bar
diameter
pdLap2
Bars larger than pbstrSelSize use pdLap2 x bar diameter
pnNumRebar
Total number of reinforcement properties in reinforcement table
pbstrSelSize
Bar size string for limiting bar size

([out] long* plNumSLMajor, [out] long* plNumSLMinor);


Get the shear leg criteria.
plNumSLMajor
Number of shear legs parallel to the columns major axis
plNumSLMinor
Number of shear legs parallel to the columns minor axis

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetFinalBarData ([in] long lColID, [out] SBAR_PATTERN* pBarPattern, [out] long* plNumSegments, [out] EDA_SEG_SET_INFO** ppaSegInfo,
[out] EDA_REIN_PLACE_SET** ppaReinPlace);
Purpose
Parameters

Final design reinforcement information for column.


lColID
Columns unique ID
pBarPattern
Bar Pattern info
plNumSegments
Number of transverse segments
ppaSegInfo
Bar set segment info Array size is plNumSegments
ppaReinPlace
Bar set placement info Array size is plNumSegments
This method will give all the required information for detailing the reinforcement in a
concrete column. The start and end locations in pSegInfo are relative to the bottom of the
given column.

Comments

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetNumBarGroups ([out] long* pnNumGroups);


Purpose
Parameters

Get the number of bar pattern groups.


pnNumGroups
Number of bar pattern groups.

GetSlendernessResults ([in] long lColID, [out] long* pbUserSelSlnd, [out] double* pdLux, [out] double* pdLuy, [out] double* pdKx, [out] double*
pdKy, [out] long* pbBracedSideSwayX, [out] long* pbBracedSideSwayY);
Purpose
Parameters

Return the parameters associated with the calculation of slenderness for a specific
column.
lColID
The unique column ID
True (1) if user specified to consider slenderness in the RAM
pbUserSelSlnd
Concrete Analysis module
pdLux
The unbraced length of the column in major axis
pdLuy
The unbraced length of the column in minor axis
pdKx
The effective length factor for major axis
pdKy
The effective length factor for minor axis

pbBracedSideSwayX
pbBracedSideSwayY

True if user designated column is braced against sidesway in


major axis.
True if user designated beam is braced against sidesway in
minor axis.

Reset ();
Purpose

Internal use only.

SetAssignGeometry ([in] BOOL* pbAssignSize, [in] BOOL* pbAssignLegs, [in] long* pnMajor, [in] long* pnMinor, [in] pnUserMajor, [in]
pnUserMinor, [in] pnSizeIndex );
Purpose
Parameters

Assign menu dialog settings.


pbAssignSize
1 if Assign Size exists
pbAssignLegs
1 if Assign Legs exists
pnMajor
0 = Use Global, 1 = User Defined
pnMinor
0 = Use Global, 1 = User Defined
pnUserMajor
Number of legs in the major axis
pnUserMinor
Number of Legs in the minor axis
pnSizeIndex
Index to the selected column size in Assign - Size

SetBarGroup ([in] long nIndex, [in] BSTR* pbstrLabel, [in] BSTR* pbstrListBoxLabel, [in] BSTR* pbstrMaxBar, [in] BSTR* pbstrMinBar, [in]
BSTR* pbstrTieBar, [in] long* pnGroupID, [in] long* pnNumLong, [in] long* pnNumAdd, [in] long* pnNumPatternsInGroup, [in] long*
pnType, [in] long* pbUse, [in] long* pbValid, [in] SBAR_PATTERN pBarPattern);
Purpose
Parameters

Set the bar pattern group.


nIndex
pbstrLabel
pbstrListBoxLabel
pbstrMaxBar
pbstrMinBar
pbstrTieBar
pnGroupID
pnNumLong

pnNumAdd
pnNumPatternsInGroup
pnType
pbUse
pbValid
pBarPattern

Pattern group index number


Label automatically generated for the group
Group label that is used in list boxes (includes tab character)
Max longitudinal bar size label
Min longitudinal bar size label
Transverse bar size label
Unique Group ID.
Number of longitudinal bars used at top and bottom of
rectangular patterns or total number of bars used in round
pattern layouts
Additional bars on left and right side of rectangular patterns
Number of bar patterns generated by group
Pattern type - ePATTERN_TYPE
Pattern group is being used
True = pattern group is valid and can be used in design
Bar pattern

SetBarPattern ([in] long nGroupIndex, [in] long nNumPatterns, [in] SBAR_PATTERN* pBarPattern);
Purpose
Parameters

Set a specific bar pattern group. .


nGroupIndex
The group index
nNumPatterns
The number of patterns within the group. This is used for data
checking.

pBarPattern

Pointer to an array of SBAR_PATTERNs. Memory must be


allocated before the pointer is sent into DataAccess.

SetBarPatternData ([in] long* pnNextPatternID, [in] long* pnNextGroupID, [in] long* pnLastGroupSelected );
Purpose
Parameters

Set additional bar pattern group data. .


pnNextPatternID
Unique ID of the next pattern
pnNextGroupID
Unique ID of the next group
pnLastGroupSelected
Index of the last selected group

SetColumnResults ([in] long lColID, [in] SCOL_RES** ppaColRes, [in] SCOL_PATRES** ppaPatRes, [in] SCOL_PATRES_BSTR**
ppaPatResStr, [in] SCOL_TRANSRES** ppaTransBarRes, [in] SCOL_TRANSRES_BSTR** ppaTransBarResStr, [in] long* plNumPat,
[in] long* plNumTrans);
Purpose
Parameters

Comments

Set all concrete column design data. .


lColID
Columns unique ID
ppaColRes
Concrete Column Results data
ppaPatRes
Bar Pattern Results data
ppaPatResStr
Strings for Bar Pattern Results data
ppaTransBarRes
Column Transverse Reinforcement Set data
ppaTransBarResStr
Strings for Column Transverse Reinforcement Set data
plNumPat
Number of bar patterns Array size of paPatRes and
paPatResStr
plNumTrans
Number of Transverse bar sets Array size of paTransBarRes
and paTransBarResStr
Method nulls pColResults, paPatternResults, paTransBarResults and redimensions
them. The memory for the arrays need to be released using CoTaskMemFree

Additional Notes:
All of the transverse bar groups for all of the bar patterns are saved consecutively starting with all of the bar sets for the first bar pattern. The variable
indicates the number of transverse bar groups associated with that bar pattern. So the first set of transverse bar sets are associated with the first bar
pattern and the next set identified by the number of trans. bar sets belongs to the second bar set.

SetCriteriaBarSelection ([in] double*, pdSegIncr, [in] double* pdTransIncr );


Purpose
Parameters

Set the bar selection criteria in Criteria Column Design


pdSegIncr
Transverse segment spacing increment
pdTransIncr
Transverse bar spacing increment

SetCriteriaBarSpacing ([in] BAR_SPACING* pBarSpacing);


Purpose
Parameters

Set the spacing and clear cover values from the Criteria - Design Reinforcement page.
pBarSpacing
Structure of bar spacing values.

SetCriteriaLapSplice ([in] double* pdLap1, [in] double* pdLap2, [in] long* pnNumRebar, [in] BSTR* pbstrSelSize);
Purpose
Parameters

Lap splice information used to calculate material takeoff for longitudinal column
reinforcement. .
pdLap1
Bars less than or equal to pbstrSelSize use pdLap1 x bar
diameter

pdLap2
pnNumRebar
pbstrSelSize

SetCriteriaShearLegs
Purpose
Parameters

Bars larger than pbstrSelSize use pdLap2 x bar diameter


Total number of reinforcement properties in reinforcement table
Bar size string for limiting bar size

([in] long* plNumSLMajor, [in] long* plNumSLMinor);


Set the shear leg criteria. .
plNumSLMajor
Number of shear legs parallel to the columns major axis
plNumSLMinor
Number of shear legs parallel to the columns minor axis

SetSlendernessResults ([in] long lColID, [in] long* pbUserSelSlnd, [in] double* pdLux, [in] double* pdLuy, [in] double* pdKx, [in] double* pdKy,
[in] long* pbBracedSideSwayX, [in] long* pbBracedSideSwayY);
Purpose
Parameters

Set the parameters associated with the calculation of slenderness for a specific column.
lColID
The unique column ID
True (1) if user specified to consider slenderness in the RAM
pbUserSelSlnd
Concrete Analysis module
pdLux
The unbraced length of the column in major axis
pdLuy
The unbraced length of the column in minor axis
pdKx
The effective length factor for major axis
pdKy
The effective length factor for minor axis
True if user designated column is braced against sidesway in
pbBracedSideSwayX
major axis.
True if user designated beam is braced against sidesway in
pbBracedSideSwayY
minor axis.

SetZeroBarGroups ();
Purpose

Clear bar groups.

IConcColModState2
Philosophy: (see ConcColModState1 above)
GetCheckAxialLimit ( [out] BOOL* pbCheckAxial );
Purpose
Parameters

To get the flag indicating whether the user wants to check max column axial load limit.
pbCheckAxial
TRUE = Check Max Column Axial Load Limit

GetCheckTorsion ( [out] BOOL* pbCheckTorsion );


Purpose
Parameters

To get the flag indicating whether the user wants to check torsional capacity for columns.
pbCheckTorsion
TRUE = Check Torsional Capacity

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatColGravForceSource ( [out] long* plLatMemGravForceSource, [out,retval] long* plRetVal );


Purpose
Parameters

Get the forces from RAM Concept for a column. .


plLatMemGravForceSource 0 = RAM Concrete analysis, 1 = RAM Frame analysis
Return Value. Zero if successful. Check last error if
plRetVal
nonzero.

GetMemberScheduleMark ( [in] long* lColID, [out] SConcScheduleMark pColumnScheduleMark, [out,retval] long* plRetVal );
Purpose
Parameters

Get the forces from RAM Concept for a column. .


lColID
Unique ID of the column
pColumnScheduleMark
Column schedule mark structure
Return Value. Zero if successful. Check last error if
plRetVal
nonzero.

lSlendernessReductionFactor [in, out] long


Purpose

The slenderness reduction factor for the BS 8110 code. .

Reset ();
Purpose

Internal use only.

SetCheckAxialLimit ( [in] BOOL bCheckAxial );


Purpose
Parameters

Set the flag indicating whether the user wants to check max column axial load limit.
bCheckAxial
TRUE = Check Max Column Axial Load Limit

SetCheckTorsion ( [in] BOOL pCheckTorsion );


Purpose
Parameters

Set the flag indicating whether the user wants to check torsional capacity for columns.
bCheckTorsion
TRUE = Check Torsional Capacity

SetLatColGravForceSource ( [in] long lLatMemGravForceSource, [out,retval] long* plRetVal );


Purpose
Parameters

Set the forces from RAM Concept for a column. .


lLatMemGravForceSource
0 = RAM Concrete analysis, 1 = RAM Frame analysis

plRetVal

Return Value. Zero if successful. Check last error if


nonzero.

SetMemberScheduleMark ( [in] long lColID, [out] SConcScheduleMark ColumnScheduleMark, [out,retval] long* plRetVal );
Purpose
Parameters

Get the forces from RAM Concept for a column. .


lColID
Unique ID of the column
ColumnScheduleMark
Column schedule mark structure
Return Value. Zero if successful. Check last error if
plRetVal
nonzero.

IConcept
Philosophy: This interfaces is for RAM Concept intregration with RAM Structural System
ClearConceptStoryForces ( [in] long* lStoryID);
Purpose
Parameters

Clear the forces from RAM Concept for the given story unique ID.
lStoryID
Unique ID of the story

GetConceptColumnForcesAtEnd ( [in] long* lColumnID, [in] EDA_MEMBER_LOC eColEnd, [in] long lAnalysisCaseID, [in]
EConceptConcSkipCase eConcSkipCase, [in] BOOL bTransferLoadCase, [out] SForce* pSForce, [out,retval] long* plRetVal );
Purpose
Parameters

Get the forces from RAM Concept for a column.


lColumnID
Unique ID of the column
eColEnd
eTop or eBottom
lAnalysisCaseID
Unique ID of the analysis case
eConcSkipCase
Concept skip load case
bTransferLoadCase
True if transfer load case
pSForce
Forces structure
plRetVal
Return Value. Zero if successful. Check last error if nonzero.

GetConceptExportFileInfo ( [in] long* lStoryID, [out] BSTR* pstrConceptFileNamePath, [out] long* plTimestamp, [out] long* plSourceStoryID, [out]
EStateStatus* peStatus, BSTR* pstrConceptStatusReason, [out,retval] long* plRetVal );
Purpose
Parameters

Get the file information for a story exported to Concept.


lStoryID
Unique ID of the story
pstrConceptFileNamePath Path of the Concept File
plTimestamp
Time stamp
plSourceStoryID
Soure story unique ID
peStatus
Current or not
pstrConceptStatusReason Reason for status
plRetVal
Return Value. Zero if successful. Check last error if
nonzero.

GetConceptForcesChanged ( [out] BOOL* pbForcesChanged, [out,retval] long* plRetVal );

Purpose
Parameters

Get the file information for a story exported to Concept.


pbForcesChanged
True if Concept forces have changd
plRetVal
Return Value. Zero if successful. Check last error if
nonzero.

GetConceptStoryTimeStamp ( [in] long* lStoryID, [in] ECptStyTimeStampType eStyTimeStamp, [out] long* plTimestamp, [out,retval] long*
plRetVal );
Purpose
Parameters

Get the file information for a story exported to Concept.


lStoryID
Unique ID of the story
eCptStyTimeStampType
Type of time stamp
plTimestamp
Time stamp
plRetVal
Return Value. Zero if successful. Check last error if
nonzero.

GetConceptWallForce ( [in] long* lWallID, [in] long lAnalysisCaseID, [in] EConceptConcSkipCase eConcSkipCase, [in] BOOL
bTransferLoadCase, [out] SForce* pSForce, [out,retval] long* plRetVal );
Purpose
Parameters

Get the forces from RAM Concept for a column.


lWallD
Unique ID of the wall
lAnalysisCaseID
Unique ID of the analysis case
eConcSkipCase
Concept skip load case
bTransferLoadCase
True if transfer load case
pSForce
Forces structure
plRetVal
Return Value. Zero if successful. Check last error if nonzero.

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetStoryStatus ( [in] long* lStoryID, [out] EStatusState* peStatus, [out,retval] long* plRetVal );
Purpose
Parameters

Get the status of a story story exported to Concept.


lStoryID
Unique ID of the story
peStatus
Current or not

plRetVal

Return Value. Zero if successful. Check last error if


nonzero.

Reset ();
Purpose

Internal use only.

SetConceptColumnForcesAtEnd ();
Purpose

Internal use only.

SetConceptExportFileInfo ();
Purpose

Internal use only.

SetConceptForcesChanged ();
Purpose

Internal use only.

SetConceptStoryTimeStamp ();
Purpose

Internal use only.

SetConceptWallForce ();
Purpose

Internal use only.

IDBIO1
Philosophy: This interface is for performing functions on the database as a whole. This includes Loading and Saving. It also includes changing
the database name. It does not include inquiries or specific data manipulation.
AllowConcurrentAccess ([in] BOOL bAllow)
Purpose

Permits the model to be opened by multiple users simultaneously.

Parameters

bAllow

1 if permitted, 0 if not

CloseDatabase();
Purpose
Comments

To close the database files.


This method should be the last call to Data Access.

CreateNewDatabase([in] const BSTR bstrName, EUnits eUnits, long *plRetVal);


Purpose
Parameters

To create a new database. This method should not be used by new applications.
bstrName
Model name (do not include file extension)
eUnits
Which units will be used for display purposes

Comments

plRetVal
Return value, 0 if successful
This function will fail if the model already exists.

CreateNewDatabase2([in] const BSTR bstrName, EUnits eUnits, [in] const BSTR bstrUserID, [out, retval] long *plRetVal);
Purpose
Parameters

Comments

To create a new database. This is preferred over CreateNewDatabase which will be


phased out.
bstrName
Model name (do not include file extension)
eUnits
Which units will be used for display purposes
bstrUserID
String that identifies the calling application
plRetVal
Return value, 0 if successful
This function will fail if the model already exists.

GetDatabaseVersion([in] const BSTR bstrDBName, [out] double* pdVersion);


Purpose
Parameters
Comments

To obtain the version number of the indicated database.


bstrDBName
Model name including path
pdVersion
Return variable for database version number
Can be used to ensure that the database is a compatible version with
DataAccess before calling LoadDataBase.

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetModelDir( [out] BSTR* pbstrDir );


Purpose
Parameters

To get the path of the model. .


pbstrDir
Model patth

GetWorkingDirectory ([out] BSTR* pbstrWorkingDir)


Purpose
Parameters

Returns the Working directory where the model files are unzipped. 3.
pbstrWorkingDir The Working Directory

IsDatabaseReadOnly ([out] BOOL* pbReadOnly)


Purpose
Parameters

Indicates if the database is read only or not.


pbReadOnly
1 if read only, 0 if not

LoadDataBase([in] const BSTR bstrName);


Purpose
Parameters
Comments

To Load the Database into memory. This method should not be used by new
applications.
bstrName
Model name including path and extension
This function will fail if the model is currently in use or if the database version is
incompatible with the current version of DataAccess.

LoadDatabase2 ([in] const BSTR bstrName, [in] const BSTR bstrUserID, [out, retval] long *plRetVal);
Purpose
Parameters

Comments

To Load the Database into memory. This method is preferred over LoadDataBase
which will be phased out.
bstrName
Model name including path and extension
bstrUserID
String that identifies the calling application
plRetVal
Return value, 0 if successful
Database in Use: 25673
Both .rss and .ram file exist for same model: 25674
Model version is invalid: 25657
Failed to read the .ram file: 301
This function will fail if the model is currently in use or if the database version is
incompatible with the current version of DataAccess.

ReloadDataBase ( );
Purpose

Internal use only

ReloadDataBasePartial ( );
Purpose

Internal use only

RenameDataBaseTo ( );
Purpose

Internal use only

SaveDatabase();
Purpose

To save the database files.

SaveDatabaseAs ( [in] BSTR bstr NewName );

Purpose

Save the database files with a new name.

SaveWorkingFiles ( );
Purpose

Internal use only

IForces1
Philosophy: This interface typically provides RAM Frame member forces. These methods are only available following performing an analysis in
RAM Frame.
Comments 1: A number of the functions below are dependent on the model being framed and the gravity analysis being performed before valid
data can be returned. If the framing and gravity analysis has not been performed the function will return an Unspecified Error. Calling the
GetLastError will return an error code of 310.
Comments 2: Several of the following functions are used to obtain element member forces defined in their local system. Figure 1, 2 and 3 shows
the sign convention used for beams, columns and brace members, and walls, respectively. Returned values from these functions follow these
sign conventions. It should be noted that compressive axial force is defined as positive. Moments that create compression in the top flange of
beams, columns and braces are assumed to be positive.

Figure 1. Sign convention for Beams

Figure2. Sign convention for Column and Brace members

Figure 3. Positive Sign Convention for Walls.


GetColForcesForLCase ([in] long lColumnID, [in] long lLoadCase, [out] double *pdAxial, [out] double *pdMajMomI, [out] double *pdMinMomI,
[out] double *pdMajShearI, [out] double *pdMinShearI, [out] double *pdTorsionI, [out] double *pdMajMomJ, [out] double *pdMinMomJ,
[out] double *pdMajShearJ, [out] double *pdMinShearJ, [out] double *pdTorsionJ);
Purpose
Parameters

Get lateral column forces for a given load case.


lColumnID
Column unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
pdAxial
Axial load
pdMajMomI
Major moment at top
pdMinMomI
Minor moment at top
pdMajShearI
Major shear at top
pdMinShearI
Minor shear at top
pdTorsionI
Torsion at top
pdMajMomJ
Major moment at bottom
pdMinMomJ
Minor moment at bottom
pdMajShearJ
Major shear at bottom
pdMinShearJ
Minor shear at bottom

pdTorsionJ

Torsion at bottom

GetCriteriaEffectiveLength ([out] EKFAC_ASSIGN* peColumnMajor, [out] double* pdColumnMajorValue, [out] EKFAC_ASSIGN*


peColumnMinor, [out] double* pdColumnMinorValue, [out] EKFAC_ASSIGN* peBeamMajor, [out] double* pdBeamMajorValue, [out]
EKFAC_ASSIGN* peBeamMinor, [out] double* pdBeamMinorValue, [out] EKFAC_ASSIGN* peBraceMajor, [out] double*
pdBraceMajorValue, [out] EKFAC_ASSIGN* peBraceMinor, [out] double* pdBraceMinorValue);
Purpose
Parameters

Get effective length info that is defined in RAM Frame criteria.


The assigned K factor property for column major axis (Use
peColumnMajor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peColumnMajor is
pdColumnMajorValue
UseSpecifiedValue.
The assigned K factor property for column minor axis (Use
peColumnMinor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peColumnMinor is
pdColumnMinorValue
UseSpecifiedValue.
The assigned K factor property for beam major axis (Use
peBeamMajor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peBeamMajor is
pdBeamMajorValue
UseSpecifiedValue.
The assigned K factor property for beam minor axis (Use
peBeamMinor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peBeamMinor is
pdBeamMinorValue
UseSpecifiedValue.
The assigned K factor property for brace major axis (Use
peBraceMajor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peBraceMajor is
pdBraceMajorValue
UseSpecifiedValue.
The assigned K factor property for brace minor axis (Use
peBraceMinor
global, Use Nomograph, or Use specified value)
The eff. Length factor (K) valid only if peBraceMinor is
pdBraceMinorValue
UseSpecifiedValue.

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetGravBeamForcesLeftAt ([in] long lBeamID, [in] double dLocation, [out] double *pdDeadMoment, [out] double *pdDeadShear, [out] double
*pdCDMoment, [out] double *pdCDShear, [out] double *pdCLMoment, [out] double *pdCLShear, [out] double *pdPosLiveMoment, [out]
double *pdPosLiveShear, [out] double *pdNegLiveMoment, [out] double *pdNegLiveShear);
Purpose
Parameters

Get forces at left side of a point on a gravity beam.


lBeamID
Beam Unique ID
dLocation
Location ratio along beam. Value range is from 0.0 at I end of
beam to 1.0 at j end of beam
pdDeadMoment
Dead load moment includes self weight
pdDeadShear
Dead load shear includes self weight
pdCDMoment
Construction dead load moment

pdCDShear
pdCLMoment
pdCLShear
pdPosLiveMoment
pdPosLiveShear
pdNegLiveMoment
pdNegLiveShear

Construction dead load shear


Construction live load moment
Construction live load shear
Positive live load moment
Positive live load shear
Negative live load moment
Negative live load shear

GetGrvColForcesForLCase ([in] long lColumnID, [out] double* pdDead, [out] double* pdPosLLRed, [out] double* pdPosLLNonRed, [out] double*
pdPosLLStorage, [out] double* pdPosLLRoof, [out] double* pdNegLLRed, [out] double* pdNegLLNonRed, [out] double* pdNegLLStorage,
[out] double* pdNegLLRoof);
Purpose
Parameters

Get gravity column forces.


lColumnID
Column Unique ID
pdDead
Dead load including self weight
pdPosLLRed
Positive live load Reducible
pdPosLLNonRed
Positive live load Non-Reducible
pdPosLLStorage
Positive live load Storage
pdPosLLRoof
Positive live load Roof
pdNegLLRed
Negative live load Reducible
pdNegLLNonRed
Negative live load Non-Reducible
pdNegLLStorage
Negative live load Storage
pdNegLLRoof
Negative live load Roof

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatBeamEndDeflection( [in] long lBeamID, [in] long lLoadCase, [out] double dX_Disp_Left [out] double dY_Disp_Left, [out] double
dZ_Disp_Left, [out] double dX_Rot_Left, [out] double dY_Rot_Left, [out] double dZ_Rot_Left, [out] double dX_Disp_Right, [out] double
dY_Disp_Right, [out] double dZ_Disp_Right, [out] double dX_Rot_Right, [out] double dY_Rot_Right, [out] double dZ_Rot_Right );
Purpose
Parameters

Get beam end deflections.


lBeamID
Beam Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dX_Disp_Left
Left end X translation

dY_Disp_Left
dZ_Disp_Left
dX_Rot_Left
dY_Rot_Left
dZ_Rot_Left
dX_Disp_Right
dY_Disp_Right
dZ_Disp_Right
dX_Rot_Right
dY_Rot_Right
dZ_Rot_Right

Left end Y translation


Left end Z translation
Left end X rotation
Left end Y rotation
Left end Z rotation
Right end X translation
Right end Y translation
Right end Z translation
Right end X rotation
Right end Y rotation
Right end Z rotation

GetLatBeamForcesLeftAt ([in] long lBeamID, [in] long lLoadCase, [in] double dLocation, [out] double *pdAxial, [out] double *pdMajMom, [out]
double *pdMinMom, [out] double *pdMajShear, [out] double *pdMinShear, [out] double *pdTorsion);
Purpose
Parameters

Get forces at left side of a point on a lateral beam for a given load case.
lBeamID
Beam Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dLocation
Location ratio along beam. Value range is from 0.0 at I end of beam
to 1.0 at j end of beam
pdAxial
Axial load
pdMajMom
Major direction Moment
pdMinMom
Minor direction Moment
pdMajShear
Major direction Shear
pdMinShear
Minor direction Shear
pdTorsion
Torsion

GetLatBraceEndDeflection( [in] long lBraceNum, [in] long lLoadCase, [out] double dX_Disp_Top [out] double dY_Disp_Top, [out] double
dZ_Disp_Top, [out] double dX_Rot_Top, [out] double dY_Rot_Top, [out] double dZ_Rot_Top, [out] double dX_Disp_Bot, [out] double
dY_Disp_Bot, [out] double dZ_Disp_Bot, [out] double dX_Rot_Bot, [out] double dY_Rot_Bot, [out] double dZ_Rot_Bot );
Purpose
Parameters

Get brace end deflections.


lBraceNum
Brace Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dX_Disp_Top
Top end X translation
dY_Disp_Top
Top end Y translation
dZ_Disp_Top
Top end Z translation
dX_Rot_Top
Top end X rotation
dY_Rot_Top
Top end Y rotation
dZ_Rot_Top
Top end Z rotation
dX_Disp_Bot
Bot end X translation
dY_Disp_Bot
Bot end Y translation
dZ_Disp_Bot
Bot end Z translation
dX_Rot_Bot
Bot end X rotation
dY_Rot_Bot
Bot end Y rotation

dZ_Rot_Bot

Bot end Z rotation

GetLatColumnEndDeflection( [in] long lBeamID, [in] long lLoadCase, [out] double dX_Disp_Top [out] double dY_Disp_Top, [out] double
dZ_Disp_Top, [out] double dX_Rot_Top, [out] double dY_Rot_Top, [out] double dZ_Rot_Top, [out] double dX_Disp_Bot, [out] double
dY_Disp_Bot, [out] double dZ_Disp_Bot, [out] double dX_Rot_Bot, [out] double dY_Rot_Bot, [out] double dZ_Rot_Bot );
Purpose
Parameters

Get column end deflections.


lColumnID
Column Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dX_Disp_Top
Top end X translation
dY_Disp_Top
Top end Y translation
dZ_Disp_Top
Top end Z translation
dX_Rot_Top
Top end X rotation
dY_Rot_Top
Top end Y rotation
dZ_Rot_Top
Top end Z rotation
dX_Disp_Bot
Bot end X translation
dY_Disp_Bot
Bot end Y translation
dZ_Disp_Bot
Bot end Z translation
dX_Rot_Bot
Bot end X rotation
dY_Rot_Bot
Bot end Y rotation
dZ_Rot_Bot
Bot end Z rotation

GetLatWallForces ([in] long lWallID, [in] long lLoadCase, [out] double *dAxial, [out] double *dMajMom, [out] double *dMajShear);
Purpose
Parameters

Get lateral wall forces for the desired wall and load case.
lWallID
Wall Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dAxial
Axial load
dMajMom
Major direction moment
dMajShear
Minor direction moment

GetLatWallForcesAsBeam ([in] long lWallID, [in] long lLoadCase, [out[ double dAxial_IK, [out] double dMajMom_IK, [out] double dMajShear_IK,
[out] double dMinMom_IK, [out] double dMinShear_IK, [out] double dTorsion_IK, [out] double dAxial_JL, [out] double dMajMom_JL, [out]
double dMajShear_JL, [out] double dMinMom_JL, [out] double dMinShear_JL, [out] double dTorsion_JL );
Purpose
Parameters

Get wall forces as if it were a beam.


lWallID
Wall Unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dAxial_IK
I end axial
dMajMom_IK
I end major moment
dMajShear_IK
I end major shear
dMinMom_IK
I end minor moment
dMinShear_IK
I end minor shear
dTorsion_IK
I end torsion

dAxial_JL
dMajMom_JL
dMajShear_JL
dMinMom_JL
dMinShear_JL
dTorsion_JL

J end axial
J end major moment
J end major shear
J end minor moment
J end minor shear
J end torsion

GetLatWallGroupForces ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [in] long lLoadCase, [out] double *pdAxial, [out] double
*pdMajMoment, [out] double *pdMinMoment, [out] double *pdMajShear, [out] double *pdMinShear, [out] double *pdTorsion);
Purpose
Parameters

Get lateral wall group forces for the desired wall and load case.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
lWallGroupIndex
Wall group index number from 0 to lNumberOfWallGroups - 1
lLoadCase
Load Case index number from 0 to value returened by
GetNumAnalyzedFrameLoadCases - 1
pdAxial
Axial load
pdMajMoment
Major direction moment
pdMinMoment
Minor direction moment
pdMajShear
Major direction shear
pdMinShear
Minor direction shear
pdTorsion
Torsion

GetLatWallGroupForcesAsBeam ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [in] long lLoadCase, [out[ double dAxial_IK, [out] double
dMajMom_IK, [out] double dMajShear_IK, [out] double dMinMom_IK, [out] double dMinShear_IK, [out] double dTorsion_IK, [out] double
dAxial_JL, [out] double dMajMom_JL, [out] double dMajShear_JL, [out] double dMinMom_JL, [out] double dMinShear_JL, [out] double
dTorsion_JL );
Purpose
Parameters

Get wall forces as if it were a beam.


lWallID
Story number or unique ID
lWallGroupIndex
Wall group index
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
dAxial_IK
I end axial
dMajMom_IK
I end major moment
dMajShear_IK
I end major shear
dMinMom_IK
I end minor moment
dMinShear_IK
I end minor shear
dTorsion_IK
I end torsion
dAxial_JL
J end axial
dMajMom_JL
J end major moment
dMajShear_JL
J end major shear
dMinMom_JL
J end minor moment

dMinShear_JL
dTorsion_JL

J end minor shear


J end torsion

GetMassInfo ([in] long lStoryNoOrID, [out] long lRigid, [out] double dMass, [out] double dMassMomI, [out] double dXCenterOfMass, [out] double
dYCenterOfMass, [out] double dXEcc, [out] double dYEcc, [out] long lLumpFlag);
Purpose
Parameters

Get lateral wall group forces for the desired wall and load case.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
lRigid
1 if rigid diaphragm
dMass
Mass
dMassMomI
Mass inertia
dXCenterOfMass
X coordinate of the center of mass
dYCenterOfMass
Y Coordinate of the center of mass
dXEcc
X eccentricity
dYEcc
Y eccentricity
lLumpFlag
Combine to flag (0 = None)

GetWindExposure ([in] long lStoryNoOrID, [out] long lRigid, [out] double dMass, [out] double dMassMomI, [out] double dXCenterOfMass, [out]
double dYCenterOfMass, [out] double dXEcc, [out] double dYEcc, [out] long lLumpFlag);
Purpose
Parameters

Get lateral wall group forces for the desired wall and load case.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
dMinX
Minimum X coordinate for extents
dMaxX
Maximum X coordinate for extents
dMinY
Minimum Y coordinate for extents
dMaxY
Maximum Y coordinate for extents
lExposureFlag
0 = Full, 1 = None
dParapetHeight
Parapet Height

Reset ( );
Purpose

Internal use only.

SetAnalysisResultsInvalid ( );
Purpose

Internal use only.

IForces2
Philosophy: This is a continuation of the IForces1 interface.
GetAnalysisCaseInfo ([in] long lAnalysisCaseID, [in] EAnalysisResultType eAnalysisReultType, [in, out] SAnalysisCaseInfo* psAnalysisCaseInfo,
[out,retval] long* plRetVal);

Purpose
Parameters

Comment

Get analysis case info for any RAM SS analysis module. Analysis cases are defined as
the results of analyzing load cases.
lAnalysisCaseID
Analysis Case Unique ID
eAnalysisReultType
Analysis modules result RAM Frame, RAM Steel, RAM
Concrete or Default which lets the program select the
appropriate analysis result type
psAnalysisCaseInfo
Analysis Case Info
plRetVal
Error code. If value is non zero then check GetLastError
Analysis cases are defined as the results of analyzing load cases

GetAnalysisCasesIDArray ([in] EAnalysisResultType eAnalysisReultType, [in, out] long* palLoadCaseIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Comment

Get array of unique analysis case ID's for results from a specific module.
eAnalysisReultType
Analysis modules result RAM Frame, RAM Steel, RAM
Concrete or Default which lets the program select the
appropriate analysis result type
palAnalysisCaseIDs
Analysis Case unique IDs
plRetVal
Error code. If value is non zero then check GetLastError
Analysis cases are defined as the results of analyzing load cases

GetColForcesForLCase ([in] long lColumnID, [in] long lLoadCase, [out] double *pdAxialI, [out] double *pdMajMomI, [out] double *pdMinMomI,
[out] double *pdMajShearI, [out] double *pdMinShearI, [out] double *pdTorsionI, [out] double *pdAxialJ, [out] double *pdMajMomJ, [out]
double *pdMinMomJ, [out] double *pdMajShearJ, [out] double *pdMinShearJ, [out] double *pdTorsionJ);

Purpose
Parameters

Get lateral column forces for a given load case. This function is similar to the one of the
same name in the IForces1 interface, however that function only returns one Axial load
per column. Starting with v10 when RAM Frame began to mesh lateral walls, the axial
load on columns began to vary from top to bottom and this function becomes necessary.
lColumnID
Column unique ID
lLoadCase
Load Case index number from 0 to value returned by
GetNumAnalyzedFrameLoadCases - 1
pdAxialI
Axial load at top
pdMajMomI
Major moment at top
pdMinMomI
Minor moment at top
pdMajShearI
Major shear at top
pdMinShearI
Minor shear at top
pdTorsionI
Torsion at top
pdAxialJ
Axial load at bottom
pdMajMomJ
Major moment at bottom
pdMinMomJ
Minor moment at bottom
pdMajShearJ
Major shear at bottom
pdMinShearJ
Minor shear at bottom
pdTorsionJ
Torsion at bottom

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetGravBeamForcesLeftAt ([in] long lBeamID, [in] double dLocation, [out] double *pdDeadMoment, [out] double *pdDeadShear, [out] double
*pdCDMoment, [out] double *pdCDShear, [out] double *pdCLMoment, [out] double *pdCLShear, [out] double *pdPosLiveMoment, [out]
double *pdPosLiveShear, [out] double *pdNegLiveMoment, [out] double *pdNegLiveShear, [out] double *pdPosRoofLiveMoment, [out]
double *pdPosRoofLiveShear, [out] double *pdNegRoofLiveMoment, [out] double *pdNegRoofLiveShear);
Purpose
Parameters

Get forces at left side of a point on a gravity beam.


lBeamID
Beam Unique ID
dLocation
Location ratio along beam. Value range is from 0.0 at I end
of beam to 1.0 at j end of beam
pdDeadMoment
Dead load moment includes self weight
pdDeadShear
Dead load shear includes self weight
pdCDMoment
Construction dead load moment
pdCDShear
Construction dead load shear
pdCLMoment
Construction live load moment
pdCLShear
Construction live load shear
pdPosLiveMoment
Positive live load moment
pdPosLiveShear
Positive live load shear
pdNegLiveMoment
Negative live load moment
pdNegLiveShear
Negative live load shear
pdPosRoofLiveMoment
Positive roof live load moment
pdPosRoofLiveShear
Positive roof live load shear
pdNegRoofLiveMoment
Negative roof live load moment
pdNegRoofLiveShear
Negative roof live load shear

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatBraceForces ([in] long lBraceID, [in] long lLoadCase, [out] double *pdAxial, [out] double *pdMajMomTop, [out] double *pdMinMomTop,
[out] double *pdMajShearTop, [out] double *pdMinShearTop, [out] double *pdTorsionTop, [out] double *pdMajMomBot, [out] double
*pdMinMomBot, [out] double *pdMajShearBot, [out] double *pdMinShearBot, [out] double *pdTorsionBot, [out, retval] long* plResult);
Purpose
Parameters

Get lateral brace forces.


lBraceID
Brace Unique ID
lLoadCase
Load Case index number from 0 to value returened by
GetNumAnalyzedFrameLoadCases - 1
pdAxial
Axial load
pdMajMomTop
Major moment at top

pdMinMomTop
pdMajShearTop
pdMinShearTop
pdTorsionTop
pdMajMomBot
pdMinMomBot
pdMajShearBot
pdMinShearBot
pdTorsionBot
plResult

Minor moment at top


Major shear at top
Minor shear at top
Torsion at top
Major moment at bottom
Minor moment at bottom
Major shear at bottom
Minor shear at bottom
Torsion at bottom
Returned error code

GetMemberForces ([in] long lMemberID, [in] EDA_MEMBER_LOC eLocation, [in] long lLoadCaseID, [in] EAnalysisResultType
eAnalysisReultType, [in] BOOL bApplyLLReduction, [in] SForce* psMemForces, [out,retval] long* plRetVal);
Purpose

Parameters

Comment 1

Get Member Forces at the ends of the specified member.


Implemented for gravity analysis cases types only. This function can be used for retriving
analysis results for RAM Frame, RAM Steel and RAM Concrete. However please not that not
all analysis types have all the possible analysis cases.
lMemberID
Member Unique ID
eLocation
Location for member forces (not used for walls, always bottom
assumed)
lAnalysisCaseID
Analysis Case Unique ID
eAnalysisReultType
Analysis modules result RAM Frame, RAM Steel, RAM Concrete
or Default which lets the program select the appropriate analysis
result type (see Comment 1 and Current Error Events)
bApplyLLReduction
Include live load reduction (see Comment 2)
psMemForces
Member force results for given analysis case and location
plRetVal
Error code. See table below.
Analysis cases are defined as the results of analyzing load cases
If eAnalysisResultType is Default then the following decision matrix is used to determine from
where the forces originate.

Member
Type

Frame type Material

Analysis Results

Wall

Gravity

any

Wall
Beam/HBrace
Beam/HBrace
Beam/HBrace
Column
Column
Column
Brace

Lateral
Gravity
Gravity
Lateral
Gravity
Gravity
Lateral
Lateral

any
steel/other
concrete
any
steel/other
concrete
any
any

RAM Concrete (if avail) else RAM


Gravity
RAM Frame
RAM Gravity
RAM Concrete
RAM Frame
RAM Gravity
RAM Concrete
RAM Frame
RAM Frame

Comment 2

Prior to v9.0, Live Load Reduction was applied to all results from RAM Frame. Thus, for
lateral members, reduced member forces were returned by this method regardless of the
value of bApplyLLReduction. This was corrected in v9.0 for the following
EGravAnalysisCaseIDs:
LiveReduciblePosID
LiveUnReduciblePosID
LiveStoragePosID
LiveRoofPosID

LiveReducibleNegID
LiveUnReducibleNegID
LiveStorageNegID
LiveRoofNegID

LiveReducibleSumID
LiveUnReducibleSumID
LiveStorageSumID
LiveRoofSumID

Note1: L ivePosID, LiveNegID, LiveSumID can still only be accessed as reduced.


Note2: Walls do not have any reduction values associated with them
Error Codes

Below is a list of the most common error codes to be returned in plRetVal. Note that prior to
v9.0 the retval contained the AnalysisType if DefaultResultType was specified as the
EAnalysisResultType.
306
310
311
312
332
6121
6126
6127
6128
6129
6130
6133
9109
12105
12106

RAM Frame (lateral load cases) not available


RAM Gravity results are not available
File not found (one of the results files)
Error reading gravity beam results file
Concrete analysis results not available
Brace forces not supported
Beam forces not supported
Generic member forces not supported error
Load case not supported
Concrete analysis column forces file is missing
Concrete analysis wall forces file is missing
Analysis case not supported
Unexpected memory error
Error loading concrete analysis column results file
Error loading concrete alaysis wall results file
plRetVal for the following EAnalysisResultType input

Member Type

RAMGravResultType

RAMFrameResultType

RAMConcResultType

Gravity Col

0 = valid forces
Err = forces not avail

Err = forces are never


available gravity
members.

0 = valid forces
Err = forces not avail

Gravity Wall

0 or Err (see above)

Err

0 or Err (see above)

Lateral Col

0 or Err (see above)

0 = valid forces
Err = forces not avail

0 or Err (see above)

Lateral Wall

0 or Err (see above)

0 or Err (see above)

0 or Err (see above)

Lateral Brace

0 with forces set to 0.0


because brace forces
cannot be retrieved from
RAM Gravity.

0 or Err (see above)

0 with forces set to 0.0


because brace forces
cannot be retrieved from
RAM Concrete analysis.

GetMemberForcesLeftAt ([in] long lMemberID, [in] double dRelativeLocation, [in] long lAnalysisCaseID, [in] EAnalysisResultType
eAnalysisResultType, [in] BOOL bApplyLLReduction, [in] SForce psMemForces );
Purpose
Parameters

Get member forces at a location for an analysis case.


lMemberID
Member Unique ID
dRelativeLocation
Location relative to length (0 = I end, 1 = J end)
lAnalysisCaseID
Analysis case uinique ID
eAnalysisResultType Analysis result type
bApplyLLReduction
True if live load reduction is to be applied
psMemForces
Forces structure

GetNumAnalysisCases ([in] EAnalysisResultType eAnalysisReultType, [in, out] long* plNumLoadCases, [out,retval] long* plRetVal);
Purpose
Parameters

Comment

Get the number of load cases in this module.


eAnalysisReultType
Analysis modules result RAM Frame, RAM Steel, RAM
Concrete or Default which lets the program select the
appropriate analysis result type
plNumAnalysisCases
Total number of analysis cases for a given analysis type
plRetVal
Error code. If value is non zero then check GetLastError
Analysis cases are defined as the results of analyzing load cases

GetValuesInNewCoordinate ([in] long lOriginalMemberID, EDA_MEMBER_LOC eLocOrigMember, [in] long lFinalMemberID,


EDA_MEMBER_LOC eLocFinalMember, [in] SForce sMemberForceLocal, [in, out] SForce* psMemberForceGlobal, [out,retval] long*
plRetVal);
Purpose
Parameters

Obtain element member forces converted to global or to a local system of another


element.
lOriginalMemberID
Unique member ID of the original element. Note that the
member forces stored in sMemberForceLocal belong to this
element.
Indicates sMemberForceLocal is defined according to the
eLocOrigMember
sign definition of this end of the original member.
lFinalMemberID
Unique member ID of the final element. Note that the forces
of the original element are converted into the local system of
this element. If this variable is passed in as zero, then
calculated forces are converted only to global system.
Indicates converted values are defined according to the sign
eLocFinalMember
definition of this end of the final member if lFinalMemberID is
not zero. Otherwise, the variable is not valid, and calculated
results are returned in global system.
sMemberForceLocal
Member forces of the original element
psMemberForceGlobal
Converted member forces

Comment

plRetVal
Error code. If value is non zero then check GetLastError
Analysis cases are defined as the results of analyzing load cases

Reset ( );
Purpose

Internal use only.

IGravityLoads1
Philosophy: This interface is meant provide access to all of the user defined and tribbed loads on members, along with calculated LL reduction
factors. This information is only available after framing has been performed. This interface does not include information on the loads, load
polygons or load properties that were defined and modeled in RAM Modeler.
GetBeamLineLoad ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*
pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out] double*
pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* dAxCDLR, [out] double* pdAxCLLL, [out]
double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] EGRAVLOADTYPE* peLoadType, [out] double* pdRfactor);
Purpose
Parameters

Get beam line load info.


lBeamID
Beam unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads - 1
pdDistL
Distance from left end of beam to left end of load
pdDistR
Distance from left end of beam to right end of load
pdDLL
Perpendicular Dead Load at left end of load
pdDLR
Perpendicular Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load.
pdLLR
Perpendicular Unreduced Live Load at right end of load.
pdCLLL
Perpendicular Construction Live Load at left end of load.
pdCLLR
Perpendicular Construction Live Load at right end of load.
pdAxDLL
Axial Dead Load, in kips, at left end of load
pdAxDLR
Axial Dead Load, in kips, at right end of load.
pdAxCDLL
Axial Construction Dead Load at left end of load.
dAxCDLR
Axial Construction Dead Load at right end of load.
pdAxCLLL
Axial Unreduced Live Load at left end of load.
pdAxCLLR
Axial Unreduced Live Load at right end of load
pdAxLLL
Axial Construction Live Load at left end of load.
pdAxLLR
Axial Construction Live Load at right end of load.
peLoadType
Type of live load: 'RF' = roof, 'FL' = floor, 'UR' = unreducible, 'ST'
= storage
pdRfactor
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

Sign Convention:

A downward acting load is positive.

GetBeamLineLoadAndSource ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out]
double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out]
double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* dAxCDLR, [out] double*
pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] EGRAVLOADTYPE* peLoadType, [out]
double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, long* plRetval);
Purpose
Parameters

Get beam line load info.


lBeamID
Beam unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads 1
pdDistL
Distance from left end of beam to left end of load
pdDistR
Distance from left end of beam to right end of load
pdDLL
Perpendicular Dead Load at left end of load
pdDLR
Perpendicular Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load.
pdLLR
Perpendicular Unreduced Live Load at right end of load.
pdCLLL
Perpendicular Construction Live Load at left end of load.
pdCLLR
Perpendicular Construction Live Load at right end of load.
pdAxDLL
Axial Dead Load, in kips, at left end of load
pdAxDLR
Axial Dead Load, in kips, at right end of load.
pdAxCDLL
Axial Construction Dead Load at left end of load.
dAxCDLR
Axial Construction Dead Load at right end of load.
pdAxCLLL
Axial Unreduced Live Load at left end of load.
pdAxCLLR
Axial Unreduced Live Load at right end of load
pdAxLLL
Axial Construction Live Load at left end of load.
pdAxLLR
Axial Construction Live Load at right end of load.
peLoadType
Type of live load: RF = roof, FL = floor, UR = unreducible, ST
= storage
pdRfactor
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible
peLineLoadSource
The source of the line load (where it originated from) see enum
plRetval
Return value, 0 = no error else call GetLastError

Sign Convention:

A downward acting load is positive.

GetBeamLineLoadAndSource2 ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,
[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out]
double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* dAxCDLR, [out] double*
pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] EGRAVLOADTYPE* peLoadType, [out]
double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, [out] EMemberSide *peSide, long* plRetval);
Purpose
Parameters

Get beam line load info.


lBeamID
Beam unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads 1
pdDistL
Distance from left end of beam to left end of load
pdDistR
Distance from left end of beam to right end of load

pdDLL
pdDLR
pdCDLL
pdCDLR
pdLLL
pdLLR
pdCLLL
pdCLLR
pdAxDLL
pdAxDLR
pdAxCDLL
dAxCDLR
pdAxCLLL
pdAxCLLR
pdAxLLL
pdAxLLR
peLoadType
pdRfactor
peLineLoadSource
peSide
plRetval
Sign Convention:

Perpendicular Dead Load at left end of load


Perpendicular Dead Load at right end of load.
Perpendicular Construction Dead Load at left end of load.
Perpendicular Construction Dead Load at right end of load.
Perpendicular Unreduced Live Load at left end of load.
Perpendicular Unreduced Live Load at right end of load.
Perpendicular Construction Live Load at left end of load.
Perpendicular Construction Live Load at right end of load.
Axial Dead Load, in kips, at left end of load
Axial Dead Load, in kips, at right end of load.
Axial Construction Dead Load at left end of load.
Axial Construction Dead Load at right end of load.
Axial Unreduced Live Load at left end of load.
Axial Unreduced Live Load at right end of load
Axial Construction Live Load at left end of load.
Axial Construction Live Load at right end of load.
Type of live load: RF = roof, FL = floor, UR = unreducible, ST = storage
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible
The source of the line load (where it originated from) see enum
The side of the beam that the load is applied to
Return value, 0 = no error else call GetLastError

A downward acting load is positive.

GetBeamLineLoadAndSource3 ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,
[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdPLL, [out]
double* pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL,
[out] double* dAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] double*
pdAxPLL, [out] double* pdAxPLR, [out] EGRAVLOADTYPE* peLoadType, [out] double* pdRfactor, [out] ELINELOADSOURCE*
peLineLoadSource, long* plRetval);
Purpose
Parameters

Get beam line load info.


lBeamID
Beam unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads 1
pdDistL
Distance from left end of beam to left end of load
pdDistR
Distance from left end of beam to right end of load
pdDLL
Perpendicular Dead Load at left end of load
pdDLR
Perpendicular Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load.
pdLLR
Perpendicular Unreduced Live Load at right end of load.
pdPLL
Perpendicular Partion Load at left end of load.
pdPLR
Perpendicular Partition Load at right end of load.
pdCLLL
Perpendicular Construction Live Load at left end of load.

pdCLLR
pdAxDLL
pdAxDLR
pdAxCDLL
dAxCDLR
pdAxCLLL
pdAxCLLR
pdAxLLL
pdAxLLR
pdAxPLL
pdAxPLR
peLoadType
pdRfactor
peLineLoadSource
plRetval
Sign Convention:

Perpendicular Construction Live Load at right end of load.


Axial Dead Load, in kips, at left end of load
Axial Dead Load, in kips, at right end of load.
Axial Construction Dead Load at left end of load.
Axial Construction Dead Load at right end of load.
Axial Unreduced Live Load at left end of load.
Axial Unreduced Live Load at right end of load
Axial Construction Live Load at left end of load.
Axial Construction Live Load at right end of load.
Axial Partition Load at left end of load.
Axial Partition Load at right end of load.
Type of live load: RF = roof, FL = floor, UR = unreducible, ST
= storage
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible
The source of the line load (where it originated from) see enum
Return value, 0 = no error else call GetLastError

A downward acting load is positive.

GetBeamLinkLineLoadAndSource ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,
[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* dpPLL, [out]
double* pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL,
[out] double* dAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] double*
pdAxPLL, [out] pdAxPLR, [out] EGRAVLOADTYPE* peLoadType, [out] double* pdRfactor, [out] ELINELOADSOURCE*
peLineLoadSource, [in] BOOL bISupportLink);
Purpose
Parameters

Get beam line load info.


lBeamID
Beam unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads 1
pdDistL
Distance from left end of beam to left end of load
pdDistR
Distance from left end of beam to right end of load
pdDLL
Perpendicular Dead Load at left end of load
pdDLR
Perpendicular Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load.
pdLLR
Perpendicular Unreduced Live Load at right end of load.
pdPLL
Perpendicular Partition Load at left end of load.
pdPLR
Perpendicular Partition Load at right end of load.
pdCLLL
Perpendicular Construction Live Load at left end of load.
pdCLLR
Perpendicular Construction Live Load at right end of load.
pdAxDLL
Axial Dead Load, in kips, at left end of load
pdAxDLR
Axial Dead Load, in kips, at right end of load.
pdAxCDLL
Axial Construction Dead Load at left end of load.
dAxCDLR
Axial Construction Dead Load at right end of load.

pdAxCLLL
pdAxCLLR
pdAxLLL
pdAxLLR
pdAxPLL
pdAxPLR
peLoadType
pdRfactor
peLineLoadSource
bISupoportLink
Sign Convention:

Axial Construction Live Load at left end of load.


Axial Construction Live Load at right end of load
Axial Unreduced Live Load at left end of load.
Axial Unreduced Live Load at right end of load.
Axial Partition Load at left end of load.
Axial Partition Load at right end of load.
Type of live load: RF = roof, FL = floor, UR = unreducible, ST = storage
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible
The source of the line load (where it originated from) see enum
True if looking for I end (start) rigid link, False if looking for J end (end) rigid link

A downward acting load is positive.

GetBeamLinkPointLoad ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*
pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]
double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,
[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*
dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*
pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,
[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE*
peLoadSource, [in] BOOL bISupportLink);
Purpose
Parameters

Get perpendicular and axial components of point loads applied to a beam.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of beam
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load
(v14.05 & v14.05.01 included partition load)
pdLLNegNonRed
Perpendicular Negative Non-Reducible Live Load (v14.05 & v14.05.01 included partition load)
pdLLPosStorage
Perpendicular Positive Storage Live Load
pdLLNegStorage
Perpendicular Negative Storage Live Load
pdLLPosRoof
Perpendicular Positive Roof Live Load
pdLLNegRoof
Perpendicular Negative Roof Live Load
pdAxDL
Axial Dead Load
pdAxCDL
Axial Construction Dead Load
pdAxCLL
Axial Construction Live Load
pdAxNegRedLL
Axial Negative Reducible Live Load
pdAxPosRedLL
Axial Positive Reducible Live Load
dAxNegNonRedLL
Axial Negative Non-Reducible Live Load
(v14.05 & v14.05.01 included partition load)
pdAxPosNonRedLL
Axial Positive Non-Reducible Live Load
(v14.05 & v14.05.01 included partition load)
pdAxNegStorageLL
Axial Negative Storage Live Load

pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadSource
bISupoportLink

Axial Positive Storage Live Load


Axial Negative Roof Live Load
Axial Positive Roof Live Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source
True if looking for I end (start) rigid link, False if looking for J end (end) rigid link

GetBeamLinkPointLoad2 ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*
pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]
double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*
pdPosPL, [out] double* pdNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL,
[out] double* pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out]
double* pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double*
pdAxPosPL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF,
[out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [in] BOOL bISupportLink);
Purpose
Parameters

Get perpendicular and axial components of point loads applied to a beam. 2.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of beam
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load
pdLLNegNonRed
Perpendicular Negative Non-Reducible Live Load
pdLLPosStorage
Perpendicular Positive Storage Live Load
pdLLNegStorage
Perpendicular Negative Storage Live Load
pdLLPosRoof
Perpendicular Positive Roof Live Load
pdLLNegRoof
Perpendicular Negative Roof Live Load
pdPosPL
Perpendicular Positive Partition Load
pdNegPL
Perpendicular Negative Partition Load
pdAxDL
Axial Dead Load
pdAxCDL
Axial Construction Dead Load
pdAxCLL
Axial Construction Live Load
pdAxNegRedLL
Axial Negative Reducible Live Load
pdAxPosRedLL
Axial Positive Reducible Live Load
dAxNegNonRedLL
Axial Negative Non-Reducible Live Load
pdAxPosNonRedLL
Axial Positive Non-Reducible Live Load

pdAxNegStorageLL
pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdAxNegPL
pdAxPosPL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadSource
bISupoportLink

Axial Negative Storage Live Load


Axial Positive Storage Live Load
Axial Negative Roof Live Load
Axial Positive Roof Live Load
Axial Negative Partition Load
Axial Positive Partition Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source
True if looking for I end (start) rigid link, False if looking for J end
(end) rigid link

GetBeamLLRedFactor ([in] long lBeamID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*
dNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);
Purpose
Parameters

Comment

Get beam live load reduction factors.


lBeamID
Beam unique ID
pdPosLLRF
Positive live load reduction factor
pdNegLLRF
Negative live load reduction factor
pdPosStorageLLRF
Positive Storage live load reduction factor
dNegStorageLLRF
Negative Storage live load reduction factor
pdPosRoofLLRF
Positive Roof live load reduction factor
pdNegRoofLLRF
Negative Roof live load reduction factor
The reduction values are as a percent. To reduce a member force by the reduction value
you will need to multiply the force by the following equation (1.0 - LLRF / 100)

GetBeamPointLoad ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*
pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]
double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,
[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*
dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*
pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,
[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE*
peLoadSource);
Purpose
Parameters

Get perpendicular and axial components of point loads applied to a beam.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of beam
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load

pdLLNegRed
pdLLPosNonRed
pdLLNegNonRed
pdLLPosStorage
pdLLNegStorage
pdLLPosRoof
pdLLNegRoof
pdAxDL
pdAxCDL
pdAxCLL
pdAxNegRedLL
pdAxPosRedLL
dAxNegNonRedLL
pdAxPosNonRedLL
pdAxNegStorageLL
pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadSource

Perpendicular Negative Reducible Live Load


Perpendicular Positive Non-Reducible Live Load
Perpendicular Negative Non-Reducible Live Load
Perpendicular Positive Storage Live Load
Perpendicular Negative Storage Live Load
Perpendicular Positive Roof Live Load
Perpendicular Negative Roof Live Load
Axial Dead Load
Axial Construction Dead Load
Axial Construction Live Load
Axial Negative Reducible Live Load
Axial Positive Reducible Live Load
Axial Negative Non-Reducible Live Load
Axial Positive Non-Reducible Live Load
Axial Negative Storage Live Load
Axial Positive Storage Live Load
Axial Negative Roof Live Load
Axial Positive Roof Live Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source

(v14.03 to v14.05.01 included partition load)


(v14.03 to v14.05.01 included partition load)

(v14.03 to v14.05.01 included partition load)


(v14.03 to v14.05.01 included partition load)

GetBeamPointLoadAndSource ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL,
[out] double* pdCDL, [out]
double* pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed,
[out] double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*
pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*
dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*
pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,
[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE*
peLoadSource, [out] EMemberSide *peSide, long* plRetval);
Purpose
Parameters

Get perpendicular and axial components of point loads applied to a beam.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of beam
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)
pdLLNegNonRed
Perpendicular Negative Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)

pdLLPosStorage
pdLLNegStorage
pdLLPosRoof
pdLLNegRoof
pdAxDL
pdAxCDL
pdAxCLL
pdAxNegRedLL
pdAxPosRedLL
dAxNegNonRedLL
pdAxPosNonRedLL
pdAxNegStorageLL
pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadSource
peSide
plRetval

Perpendicular Positive Storage Live Load


Perpendicular Negative Storage Live Load
Perpendicular Positive Roof Live Load
Perpendicular Negative Roof Live Load
Axial Dead Load
Axial Construction Dead Load
Axial Construction Live Load
Axial Negative Reducible Live Load
Axial Positive Reducible Live Load
Axial Negative Non-Reducible Live Load
Axial Positive Non-Reducible Live Load
Axial Negative Storage Live Load
Axial Positive Storage Live Load
Axial Negative Roof Live Load
Axial Positive Roof Live Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source
The side of the beam that the load is applied to
Return value, 0 = no error else call GetLastError

(v14.03 to v14.05.01 included partition load)


(v14.03 to v14.05.01 included partition load)

GetBeamPointLoadAndSource2 ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL,
[out] double* pdCDL, [out]
double* pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed,
[out] double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*
pdPosPL, [out] double* pNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL,
[out] double* pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out]
double* pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double*
pdAxPosPL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF,
[out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [out] EMemberSide *peSide,
long* plRetval);
Purpose
Parameters

Get perpendicular and axial components of point loads applied to a beam. 2.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of beam
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load

pdLLNegNonRed
pdLLPosStorage
pdLLNegStorage
pdLLPosRoof
pdLLNegRoof
pdPosPL
pdNegPL
pdAxDL
pdAxCDL
pdAxCLL
pdAxNegRedLL
pdAxPosRedLL
dAxNegNonRedLL
pdAxPosNonRedLL
pdAxNegStorageLL
pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdAxNegPL
pdAxPosPL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadSource
peSide
plRetval

Perpendicular Negative Non-Reducible Live Load


Perpendicular Positive Storage Live Load
Perpendicular Negative Storage Live Load
Perpendicular Positive Roof Live Load
Perpendicular Negative Roof Live Load
Perpendicular Positive Partition Load
Perpendicular Negative Partition Load
Axial Dead Load
Axial Construction Dead Load
Axial Construction Live Load
Axial Negative Reducible Live Load
Axial Positive Reducible Live Load
Axial Negative Non-Reducible Live Load
Axial Positive Non-Reducible Live Load
Axial Negative Storage Live Load
Axial Positive Storage Live Load
Axial Negative Roof Live Load
Axial Positive Roof Live Load
Axial Negative Partition Load
Axial Positive Partition Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source
The side of the beam that the load is applied to
Return value, 0 = no error else call GetLastError

GetBeamPointLoadType ([in]long lBeamID, [in]long lPtLoadNo, [out] EGRAVPTLOADSOURCE* peLoadSource);


Purpose
Parameters

Get point load source type.


lBeamID
Beam unique ID
lPtLoadNo
Point load index number from 0 to lNumPointLoads - 1
peLoadSource
Point load source

GetColumnLLRedFactor ([in] long lColumnID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out]
double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);
Purpose
Parameters

Get column live load reduction factors.


lColumnID
Column unique ID
pdPosLLRF
Positive live load reduction factor
pdNegLLRF
Negative live load reduction factor
pdPosStorageLLRF
Positive Storage live load reduction factor
pdNegStorageLLRF
Negative Storage live load reduction factor
pdPosRoofLLRF
Positive Roof live load reduction factor

pdNegRoofLLRF

Negative Roof live load reduction factor

GetColumnLLRedFactorExtraInfo ( [in] long lColumnID, [in, out] double* pdAveRoofSlope, [in, out] long* plNumStoriesAddingToLLPos, [in, out]
long* plNumStoriesAddingToLLNeg, [out, retval] long* plRetVal );
Purpose
Parameters

Get additional factor information used for calculating Live Load reduction.
lColumnID
unique member ID
pdAveRoofSlope
Average slope of roof contributing to column roof load
plNumStoriesAddingToLLPos
Number of story contributing to positive live load
plNumStoriesAddingToLLNeg
Number of story contributing to negative live load
plRetVal
Error code. If value is non zero then check
GetLastError

GetColumnPointLoad ([in] long lColumnID, [in] long lPtLoadNo, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL, [out] double*
pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double* pdLLPosStorage,
[out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosLLRF, [out] double*
pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double* pdPosStorageLLRF, [out] double*
pdNegStorageLLRF);
Purpose
Parameters

Get information for a user defined point load applied directly to a column.
lColumnID
Column unique ID
lPtLoadNo
Not used
pdDL
Dead Load
pdCDL
Construction Dead Load
pdCLL
Construction Live Load
pdLLPosRed
Positive Reducible Live Load
pdLLNegRed
Negative Reducible Live Load
pdLLPosNonRed
Positive Non-Reducible Live Load
pdLLNegNonRed
Negative Non-Reducible Live Load
pdLLPosStorage
Positive Storage Live Load
pdLLNegStorage
Negative Storage Live Load
pdLLPosRoof
Positive Roof Live Load
pdLLNegRoof
Negative Roof Live Load
pdPosLLRF
Positive live load reduction factor
pdNegLLRF
Negative live load reduction factor
pdPosRoofLLRF
Positive Roof live load reduction factor
pdNegRoofLLRF
Negative Roof live load reduction factor
pdPosStorageLLRF
Positive Storage live load reduction factor
pdNegStorageLLRF
Negative Storage live load reduction factor

(v14.03 to v14.05.01 included partition load)


(v14.03 to v14.05.01 included partition load)

GetColumnPointLoad2 ([in] long lColumnID, [in] long lPtLoadNo, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL, [out] double*
pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double* pdLLPosStorage,
[out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosPL, [out] double* pNegPL,
[out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double*
pdPosStorageLLRF, [out] double* pdNegStorageLLRF);

Purpose
Parameters

Get information for a user defined point load applied directly to a column. 2.
lColumnID
Column unique ID
lPtLoadNo
Not Used
pdDL
Dead Load
pdCDL
Construction Dead Load
pdCLL
Construction Live Load
pdLLPosRed
Positive Reducible Live Load
pdLLNegRed
Negative Reducible Live Load
pdLLPosNonRed
Positive Non-Reducible Live Load
pdLLNegNonRed
Negative Non-Reducible Live Load
pdLLPosStorage
Positive Storage Live Load
pdLLNegStorage
Negative Storage Live Load
pdLLPosRoof
Positive Roof Live Load
pdLLNegRoof
Negative Partition Load
pdPosPL
Positive Partition Load
pdNegPL
Negative Roof Live Load
pdPosLLRF
Positive live load reduction factor
pdNegLLRF
Negative live load reduction factor
pdPosRoofLLRF
Positive Roof live load reduction factor
pdNegRoofLLRF
Negative Roof live load reduction factor
pdPosStorageLLRF
Positive Storage live load reduction factor
pdNegStorageLLRF
Negative Storage live load reduction factor

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetGravColSideLoads ( [in] long lColumnID, [in] long lAnalysisID, [in] BOOL bApplyLLReduction, [in, out] double* pdSide1Load, [in, out] double*
pdSide2Load, [in, out] double* pdSide3Load, [in, out] double* pdSide4Load, [out, retval] long* plRetVal );
Purpose
Parameters

Get the column side loads from the gravity analysis.


lColumnID
Column UID
lAnalysisID
Analysis case ID
bApplyLLReduction
true = consider live load reduction
pdSide1Load
Top or Top flange
pdSide2Load
(Clockwise) front side / web
pdSide3Load
Bottom or Bottom flange
pdSide4Load
(Clockwise) back side / web

GetGravColTribAreas( [in] long lColumnID, [in, out] double* pdPosRedTribArea, [in, out] double* pdNegRedTribArea, [in, out] double*
pdPosStorageTribArea, [in, out] double* pdNegStorageTribArea, [in, out] double* pdPosRoofTribArea, [in, out] double*
pdNegRoofTribArea, [in, out] double* pdPosRedTribAreaCant, [in, out] double* pdNegRedTribAreaCant, [in, out] double*
pdPosStorageTribAreaCant, [in, out] double* pdNegStorageTribAreaCant, [out, retval] long* plRetVal );
Purpose
Parameters

Get column tributary area based on gravity analysis assuming beams are simply
supported.
lColumnID
unique member ID

peTensionCompressionType Defines type as tension only/ compression only or both


pdPosRedTribArea
pdNegRedTribArea
pdPosStorageTribArea
pdNegStorageTribArea
pdPosRoofTribArea
pdNegRoofTribArea
pdPosRedTribAreaCant
pdNegRedTribAreaCant
pdPosStorageTribAreaCant
pdNegStorageTribAreaCant
plRetVal

Positive reducible live load tributary area


Negative reducible live load tributary area
Positive storage live load tributary area
Negative storage live load tributary area
Positive Roof live load tributary area
Negative Roof live load tributary area
Positive reducible live load tributary area from cantilever
Negative reducible live load tributary area from
cantilever
Positive storage live load tributary area from cantilever
Negative storage live load tributary area from cantilever
Error code. If value is non zero then check GetLastError

GetGravityBeamReact ([in] long lBeamID, [out] double* pdSWLeft, [out] double* pdDLLeft, [out] double* pdCDLLeft, [out] double* pdCLLLeft,
[out] double* pdSWRight, [out] double* pdDLRight, [out] double* pdCDLRight, [out] double* pdCLLRight, [out] double*
pdReducedPosLeft, [out] double* pdReducedNegLeft, [out] double* pdReducedPosRight, [out] double* pdReducedNegRight);
Get gravity beam end support reactions assuming all beams are simply supported. This
assumption may not be valid for lateral members and non-steel members.
lBeamID
Beam unique ID
pdSWLeft
Self-weight at start of beam
pdDLLeft
Dead Load at start of beam
pdCDLLeft
Construction Dead Load at start of beam
pdCLLLeft
Construction Live Load at start of beam
pdSWRight
Self-weight at end of beam
pdDLRight
Dead Load at end of beam
pdCDLRight
Construction Dead Load at end of beam
pdCLLRight
Construction Live Load at end of beam
pdReducedPosLeft
Reduced positive live load reaction at left support
pdReducedNegLeft
Reduced negative live load reaction at left support
pdReducedPosRight
Reduced positive live load reaction at right support
pdReducedNegRight
Reduced negative live load reaction at right support
Note that this function returns the support reactions due to the beam and not the actual
beam end reactions. For simply supported beams with no cantilevers the support reaction
and beam end reaction will be the same. To calculate the permanent dead load on the
member only use the DL loads. The SW load is already included in DL and CDL is only
imposed during construction.

Purpose
Parameters

Comment

GetGravityLoadFramingFlag ([out] long * plGravFraming);


Purpose
Parameters

Get the status of the gravity framing tables.


plGravFraming
0 = not framed, 1 = framed

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetMaxFactoredGravityBeamReact ([in] long lBeamID, [out] double* pdMaxReactLeft, [out] double* pdMaxReactRight, [out] double* pdSignLeft,
[out] double* pdSignRight, [out, retval] long* plRetval);
The magnitude of the reaction that should be used (as is displayed in RAM Steel) is calculated by rounding the provided reaction up to the next largest whole
number using this calculation: dLeftReaction = const_cast<int>( MaxReactLeft + SignLeft * 0.95f ))
Purpose
Parameters

Get the factored beam (mid-span) reactions for the current ramsteel beam design code.
lBeamID
Beam unique ID
Max factored reaction at left end of midspan of beam. Left is
pdMaxReactLeft
lower left end of beam when observed in plan on screen.
Max factored reaction at right end of midspan of beam. Right is
pdMaxReactRight
upper right end of beam when observed in plan on screen.
Sign of the reaction on the left (negative means largest reaction
pdSignLeft
was upwards acting as in backspan support of a cantilever)
Sign of the reaction on the right (negative means largest reaction
pdSignRight
was upwards acting as in backspan support of a cantilever)
plRetval
Return value, 0 = no error else call GetLastError

GetMemberSelfWeight ( [in] long lMemberID, [out] double* pdSelfWeight, [out, retval] long* plRetVal );
Purpose
Parameters

Get wall live load reduction factors.


lMemberID
Member unique ID
pdSelfWeight
Self weight
plRetVal
Return value, 0 = no error else call GetLastError

GetNumBeamLoads ([in] long lBeamID, [out] long* plNumLineLoads, [out] long* plNumPointLoads);
Purpose
Parameters

Get total number of line and point loads on beam.


lBeamID
Beam unique ID
plNumLineLoads
Total number of line loads
plNumPointLoads Total number of point loads

GetNumBeamSupportLinkLoads([in] long lBeamID, [out] long* plNumLineLoads, [out] long* plNumPointLoads, [in] BOOL bISupportLink);
Purpose
Parameters

Returns the number of line loads and point loads the beam rigid links.
lBeamID
Beam unique ID
plNumLineLoads Number of line loads

plNumPointLoads
bISupportLink

Number of point loads


True if looking for I end (start) rigid link, False if looking for J end
(end) rigid link

GetNumWallLoads ([in] long lWallID, [out] long* plNumLineLoads, [out] long* plNumPointLoads);
Purpose
Parameters

Get number of line and point loads on a wall.


lWallID
Wall unique ID
plNumLineLoads
Total number of line loads on wall
plNumPointLoads
Total number of point loads on wall

GetStoryGravityReactOnCol ([in] long lStoryNoOrID, [in] long lColNum, [out] long* plIsLoadOnColumn, [out] double* pdDL, [out] double*
pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double*
pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosLLRF, [out]
double* pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double* pdPosStorageLLRF,
[out]
double* pdNegStorageLLRF);
Purpose
Parameters

Get the reaction (axial force) from ONLY gravity members on a column at a particular
story. Includes the load from gravity columns above.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
lColNum
Column index
plIsLoadOnColumn
True (1) if there is a load on this column from gravity members
pdDL
The dead load
pdLLPosRed
The downward reducible live load
pdLLNegRed
The upward reducible live load
pdLLPosNonRed
The downward non-reducible live load
pdLLNegNonRed
The upward non-reducible live load
pdLLPosStorage
The downward storage live load

GetWallLineLoad ([in] long lWallID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*
pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out] double*
pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* pdAxCDLR, [out] double* pdAxCLLL,
[out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] EGRAVLOADTYPE* peLoadType, [out] double *
pdRfactor);
Purpose
Parameters

Information on line loads applied on a wall.


lWallID
Wall unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads - 1
pdDistL
Distance from left end of wall to left end of load
pdDistR
Distance from left end of wall to right end of load
pdDLL
Dead Load at left end of load
pdDLR
Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load. (pos if dn)
pdLLR
Perpendicular Unreduced Live Load at right end of load. (pos if dn)

pdCLLL
pdCLLR
pdAxDLL
pdAxDLR
pdAxCDLL
pdAxCDLR
pdAxCLLL
pdAxCLLR
pdAxLLL
pdAxLLR
peLoadType
pdRfactor

Perpendicular Construction Live Load at left end of load. (pos if dn)


Perpendicular Construction Live Load at right end of load. (pos if dn)
Axial Dead Load at left end of load
Axial Dead Load at right end of load.
Axial Construction Dead Load at left end of load.
Axial Construction Dead Load at right end of load.
Axial Construction Live Load at left end of load. (pos if dn)
Axial Construction Live Load at right end of load. (pos if dn)
Axial Unreduced Live Load at left end of load. (pos if dn)
Axial Unreduced Live Load at right end of load. (pos if dn)
Type of live load: 'RF' = roof, 'FL' = floor, 'UR' = unreducible, 'ST' = storage
Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

GetWallLineLoad2 ([in] long lWallID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*
pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdPLL, [out] double*
pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out]
double* pdAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out]
EGRAVLOADTYPE* peLoadType, [out] double * pdRfactor);
Purpose
Parameters

Information on line loads applied on a wall.


lWallID
Wall unique ID
nLineLoadNo
Line load index number from 0 to plNumLineLoads - 1
pdDistL
Distance from left end of wall to left end of load
pdDistR
Distance from left end of wall to right end of load
pdDLL
Dead Load at left end of load
pdDLR
Dead Load at right end of load.
pdCDLL
Perpendicular Construction Dead Load at left end of load.
pdCDLR
Perpendicular Construction Dead Load at right end of load.
pdLLL
Perpendicular Unreduced Live Load at left end of load. (pos if dn)
pdLLR
Perpendicular Unreduced Live Load at right end of load. (pos if dn)
pdPLL
Perpendicular Partition Load at left end of load. (pos if dn)
pdPLR
Perpendicular Partition Load at right end of load. (pos if dn)
pdCLLL
Perpendicular Construction Live Load at left end of load. (pos if dn)
pdCLLR
Perpendicular Construction Live Load at right end of load. (pos if dn)
pdAxDLL
Axial Dead Load at left end of load
pdAxDLR
Axial Dead Load at right end of load.
pdAxCDLL
Axial Construction Dead Load at left end of load.
pdAxCDLR
Axial Construction Dead Load at right end of load.
pdAxCLLL
Axial Construction Live Load at left end of load. (pos if dn)
pdAxCLLR
Axial Construction Live Load at right end of load. (pos if dn)
pdAxLLL
Axial Unreduced Live Load at left end of load. (pos if dn)
pdAxLLR
Axial Unreduced Live Load at right end of load. (pos if dn)
pdAxPLL
Axial Partiton Load at left end of load. (pos if dn)
pdAxPLR
Axial Partition Load at right end of load. (pos if dn)
peLoadType
Type of live load: 'RF' = roof, 'FL' = floor, 'UR' = unreducible, 'ST' = storage

pdRfactor

Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

GetWallLLRedFactor ([in] long lWallID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*
pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);
Purpose
Parameters

Get wall live load reduction factors.


lWallID
Wall unique ID
pdPosLLRF
Positive live load reduction factor
pdNegLLRF
Negative live load reduction factor
pdPosStorageLLRF Positive Storage live load reduction factor
pdNegStorageLLRF Negative Storage live load reduction factor
pdPosRoofLLRF
Positive Roof live load reduction factor
pdNegRoofLLRF
Negative Roof live load reduction factor

GetWallPointLoad ([in] long lWallID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL,
[out] double* pdCDL, [out] double*
pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]
double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,
[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*
dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*
pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,
[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] EGRAVPTLOADSOURCE*
peLoadType);
Purpose
Parameters

Information on the point loads applied on a wall.


lWallID
Wall unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of wall
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)
pdLLNegNonRed
Perpendicular Negative Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)
pdLLPosStorage
Perpendicular Positive Storage Live Load
pdLLNegStorage
Perpendicular Negative Storage Live Load
pdLLPosRoof
Perpendicular Positive Roof Live Load
pdLLNegRoof
Perpendicular Negative Roof Live Load
pdAxDL
Axial Construction Dead Load
pdAxCDL
Axial Construction Live Load
pdAxCLL
Axial Positive Reducible Live Load
pdAxPosRedLL
Axial Negative Reducible Live Load
dAxNegNonRedLL
Axial Negative Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)
pdAxPosNonRedLL
Axial Positive Non-Reducible Live Load
(v14.03 to v14.05.01 included partition load)
pdAxNegStorageLL
Axial Negative Storage Live Load
pdAxPosStorageLL
Axial Positive Storage Live Load

pdAxNegRoofLL
pdAxPosRoofLL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadType

Comments

Axial Negative Roof Live Load


Axial Positive Roof Live Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source

pdLLNegStorage
The upward storage live load
pdLLPosRoof
The downward roof live load
pdLLNegRoof
The upward roof live load
pdPosLLRF
The downward live load reduction factor
pdNegLLRF
The upward live load reduction factor
pdPosRoofLLRF
The downward roof live load reduction factor
pdNegRoofLLRF
The upward roof live load reduction factor
pdPosStorageLLRF
The downward storage live load reduction factor
pdNegStorageLLRF
The upward storage live load reduction factor
The reduction values are as a percent. To reduce a member force by the reduction value
you will need to multiply the force by the following equation (1.0 - LLRF / 100)

GetWallPointLoad2 ([in] long lWallID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL,
[out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double*
pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosPL, [out]
double* pdNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double*
pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double*
pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double* pdAxPosPL,
[out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF, [out] double*
pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] EGRAVPTLOADSOURCE* peLoadType);
Purpose
Parameters

Information on the point loads applied on a wall. 2.


lWallID
Wall unique ID
lPtLoadNo
Point load index number from 0 to plNumPointLoads - 1
pdDist
Location of point load from start of wall
pdDL
Perpendicular Dead Load
pdCDL
Perpendicular Construction Dead Load
pdCLL
Perpendicular Construction Live Load
pdLLPosRed
Perpendicular Positive Reducible Live Load
pdLLNegRed
Perpendicular Negative Reducible Live Load
pdLLPosNonRed
Perpendicular Positive Non-Reducible Live Load
pdLLNegNonRed
Perpendicular Negative Non-Reducible Live Load
pdLLPosStorage
Perpendicular Positive Storage Live Load
pdLLNegStorage
Perpendicular Negative Storage Live Load
pdLLPosRoof
Perpendicular Positive Roof Live Load

pdLLNegRoof
pdPosPL
pdNegPL
pdAxDL
pdAxCDL
pdAxCLL
pdAxPosRedLL
dAxNegNonRedLL
pdAxPosNonRedLL
pdAxNegStorageLL
pdAxPosStorageLL
pdAxNegRoofLL
pdAxPosRoofLL
pdAxNegPL
pdAxPosPL
pdPosLLRF
pdNegLLRF
pdPosStorageLLRF
pdNegStorageLLRF
pdPosRoofLLRF
pdNegRoofLLRF
peLoadType

Perpendicular Negative Roof Live Load


Perpendicular Positive Partition Load
Perpendicular Negative Partition Load
Axial Construction Dead Load
Axial Construction Live Load
Axial Positive Reducible Live Load
Axial Negative Reducible Live Load
Axial Negative Non-Reducible Live Load
Axial Positive Non-Reducible Live Load
Axial Negative Storage Live Load
Axial Positive Storage Live Load
Axial Negative Roof Live Load
Axial Positive Roof Live Load
Axial Negative Partition Load
Axial Positive Partition Load
Positive live load reduction factor
Negative live load reduction factor
Positive Storage live load reduction factor
Negative Storage live load reduction factor
Positive Roof live load reduction factor
Negative Roof live load reduction factor
Point load source

Reset ();
Purpose

Internal use only.

IGravitySteelDesign1
Philosophy: This interface returns the results of the design process in RAM Steel Beam module. These results are only available after a design
all has been performed in RAM Steel Beam.
GetBeamCamber([in] long lBeamID, [out] double* pdCamber);
Purpose
Parameters

Get steel beam camber.


lBeamID
pdCamber

Beam Unique ID
Camber value

GetBeamCompDisp ([in] long lBeamID, [out] double* pdInitialRight, [out] double* pdInitialCenter, [out] double* pdInitialLeft, [out] double*
pdPostLiveRight, [out] double* pdPostLiveCenter, [out] double* pdPostLiveLeft, [out] double* pdPostTotalRight, [out] double*
pdPostTotalCenter, [out] double* pdPostTotalLeft, [out] double* pdNetTotalRight, [out] double* pdNetTotalCenter, [out] double*
pdNetTotalLeft);
Purpose

Get the deflection values for the location where the maximum total deflection occurs on a

Parameters

composite gravity beam. The deflection values recovered are identical to those provided
in the Beam Deflection report in RAM Steel Beam.
Note: that the location of the deflection is not recovered or reported.
lBeamID
Beam Unique ID
pdInitialRight
Initial deflection at right cantilever
pdInitialCenter
Initial deflection at center span
pdInitialLeft
Initial deflection at left cantilever
pdPostLiveRight
Positive live load deflection at right cantilever
pdPostLiveCenter
Positive live load deflection at center span
pdPostLiveLeft
Positive live load deflection at left cantilever
pdPostTotalRight
Positive total deflection at right cantilever
pdPostTotalCenter
Positive total deflection at center span
pdPostTotalLeft
Positive total deflection at left cantilever
pdNetTotalRight
Negative total deflection at right cantilever
pdNetTotalCenter
Negative total deflection at center span
pdNetTotalLeft
Negative total deflection at left cantilever

GetBeamCompositeProperties ([in] long lBeamID, [out] long* plNumStudSegments, [in] long lSizeOfArrayOfStuds, [out] long* palNumStuds, [out]
long* pbShored, [out] double* pdDeckAngleLeft, [out] double* pdDeckAngleRight, [out] long* pbEdgeOnLeft, [out] long* pbEdgeOnRight,
[out] double* pdSlabWidthLeft, [out] double* pdSlabWidthRight, [out] double* pdMinSlabThicknessLeft, [out] double*
pdMinSlabThicknessRight);
Purpose
Parameters

Get the composite beam properties.


lBeamID
Beam Unique ID
plNumStudSegments
Number of stud segments (<=5)
lSizeOfArrayOfStuds
Size of palNumStuds
palNumStuds
Array containing the number of studs in each segment.
pbShored
1 = Shored
pdDeckAngleLeft
Deck angle left of beam
pdDeckAngleRight
Deck angle right of beam
pbEdgeOnLeft
1 if there is an edge of slab on the left side of beam
pbEdgeOnRight
1 if there is an edge of slab on the right side of beam
pdSlabWidthLeft
Width of slab on left side of beam
pdSlabWidthRight
Width of slab on right side of beam
pdMinSlabThicknessLeft
Min. slab thickness on left side of beam
pdMinSlabThicknessRight
Min. slab thickness on right side of beam

GetBeamDesignDecks( [in] long lBeamID, [in, out] EDeckType* peDeckTypeLeft, [in, out] long* plDeckPropIDLeft, [in, out] EDeckType*
peDeckTypeRight, [in, out] long* plDeckPropIDRight );
Purpose
Parameters

Get the deck types and unique IDs on either side of a beam.
lBeamID
Beam Unique ID
peDeckTypeLeft
Type of deck on left side of beam
plDeckPropIDLeft
Unique ID of deck on left side of beam
peDeckTypeRight
Type of deck on right side of beam
plDeckPropIDRight
Unique ID of deck on right side of beam

GetBeamDesignMoments ([in] long lBeamID, [out] double* pdSEff_or_Mnp, [out] double* pdLeftPosMom, [out] double* pdLeftNegMom, [out]
double* pdMidSpanPosMom, [out] double* pdMidSpanNegMom, [out] double* pdRightPosMom, [out] double* pdRightNegMom);
Purpose

Retrieves effective section modulus Seff for ASD or Mn for LRFD and the design
moments for a given beam.
lBeamID
Beam Unique ID
pdSEff_or_Mnp
Seff, in inches cubed or cm cubed, or Mn for composite
construction, or Sx or Mp for noncomposite construction.
pdLeftPosMom
Maximum positive moment in left cantilever
pdLeftNegMom
Maximum negative moment in left cantilever
pdMidSpanPosMom
Maximum positive moment in mid-span
pdMidSpanNegMom
Maximum negative moment in mid-span
pdRightPosMom
Maximum positive moment in right cantilever
pdRightNegMom
Maximum negative moment in right cantilever

Parameters

GetBeamNonCompDisp ([in] long lBeamID, [out] double* pdDeadRight, [out] double* pdDeadCenter, [out] double* pdDeadLeft, [out] double*
pdLiveRight, [out] double* pdLiveCenter, [out] double* pdLiveLeft, [out] double* pdNetTotalRight, [out] double* pdNetTotalCenter, [out]
double* pdNetTotalLeft);
Purpose

Get the deflection values for the location where the maximum total deflection occurs on a
non-composite gravity beam. The deflection values recovered are identical to those
provided in the Beam Deflection report in RAM Steel Beam. Note that the location of the
deflection is not recovered or reported.
lBeamID
Beam Unique ID
pdDeadRight
Initial deflection at right cantilever
pdDeadCenter
Initial deflection at center span
pdDeadLeft
Initial deflection at right cantilever
pdLiveRight
Positive Live load deflection at right cantilever
pdLiveCenter
Positive Live load deflection at center span
pdLiveLeft
Positive Live load deflection at right cantilever
pdNetTotalRight
Positive total load deflection at right cantilever
pdNetTotalCenter
Positive total load deflection at center span
pdNetTotalLeft
Positive total load deflection at left cantilever

Parameters

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code

Comments

This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetSteelDesignCode ([out] BSTR* pbstrBeamCode, [out] BSTR* pbstrColumnCode);


Purpose
Parameters

To get the design code used by RAM Steel Beam and Column.
pbstrBeamCode
Beam code as a string
pbstrColumnCode
Column code as a string

Reset ( );
Purpose

Internal use only.

ILoading1
Philosophy: This interface is used to access information about the load cases and load combinations that exist for the current model.
GetAnalysisCaseIDFromAnalyzeNo ([in] long lAnalyzeNo, [out] long* plAnalysisCaseID, [out] long* plRetval)
Purpose
Parameters

Get Analysis Case UniqueID from an index into the array of analyzed load cases.
lAnalyzeNo
Index into the array of analyzed load cases
plAnalysisCaseID
The analysis case ID (unique number for the load case)
plRetval
The return value for errors. 0 = No Error

GetAnalyzedFrameLoadCaseInfo ([in] long nLoadCaseNum, [out] BSTR * pbstrLabel, [out] BSTR * pbstrType, [out] long * pnLoadType, [out]
long * pnSubLoadType);
Purpose
Parameters

To get information about each of the load cases analyzed by RAM Frame.
nLoadCaseNum
Index into the array of ANALYZED load cases.
pbstrLabel
For the lateral load cases generated in RAM Frame, this is the label
entered by the user. For those created outside of RAM Frame, this
label is generated internally.
pbstrType
String that indicates the type of load. This string is generated
internally and cannot be modified.
pnLoadType
Integer value indicating the load type:
pnSubLoadType
In combination with the above load type variable, this integer value
more specifically defines the load case by indicating sub categories
of each load case.

GetAvailFrameCombo ([in] ECOMBOTYPES eComboType, [in] long lComboNo,


[out] long * plNumTerms, [out] long * palCaseIndex, [out] double * padFactor, [out] long * plSelected);
Purpose
Parameters

To get the information for a given load combination.


eComboType
Flag indicating the RAM Frame mode
lComboNo
Index into load combination array
plNumTerms
Number of terms in the combination

palCaseIndex

NOTE:

array of indices into the load case array. Maximum of 5 values in


this array.
padFactor
array of load case factors. Maximum of 5 values in this array.
plSelected
flag that indicates if the load combination is selected for use.
0 = false, 1 = true
This is only implemented for RAM Frame in ILoading1

GetComboCode ([in] COMBO_MATERIAL_TYPEeType, [out] BSTR* pbstrComboCode);


Purpose
Parameters
NOTE:

To get the code used to generate load combinations.


eType
Flag that indicates the program/mode that is requesting the code.
pbstrComboCode
String representation of the code used to generate combinations.
This is only implemented for Concrete in ILoading1

GetComboParameters ([in] COMBO_MATERIAL_TYPEeType, [out] SComboParams_DA* pComboParams);


Purpose
Parameters

NOTE:

To get the parameters used in Load Combination generation.


eType
Flag that indicates the program/mode that is requesting the
parameters.
pComboParams
The combination parameters used in load combination generation.
These are associated with the controls in the combo generator.
This is only implemented for Concrete in ILoading1

GetComboReGenFlag ([in] COMBO_MATERIAL_TYPEeType, [out] long* plReGen);


Purpose
Parameters

NOTE:

To get the flag that indicates whether or not the load combinations need to be
regenerated.
eType
Flag that indicates the program/mode that is requesting the
regeneration flag
plReGen
The regeneration flag.
This is only implemented for Concrete in ILoading1

GetCombos ([in] COMBO_MATERIAL_TYPE eType, [out] long* plNumCombos, [out] SLoadCombos_CmbGen_DA** ppaCombos);
Purpose
Parameters

NOTE:

To get the list of load combinations.


eType
Flag that indicates the program/mode that is requesting the list.
plNumCombos
Return value for the number of combinations in the list
ppaCombos
Array of load combinations.
This is only implemented for Concrete in ILoading1

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetGravLoadCaseLabel ([in] long lWhichCase, [out] BSTR* pbstrLabel);


Purpose
Parameters

To get the label for the given load case.


lWhichCase
Index for the selected case
pbstrLabel
Label generated by the program

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLineLoadSetInfo ([in] long lLineLoadSetID, [in, out] SCoordinate* pStartLoc, [in, out] SCoordinate* pEndLoc, [in, out] long* plLoadSetPropID,
[out,retval] long* plRetVal);
Purpose
Parameters

Get information on a line load set.


lLineLoadSetID
Line load set ID
pStartLoc
Start location of line
pEndLoc
End location of line
plLoadSetPropID
LoadSetProp Unique ID
plRetVal
Error code. If value is non zero then check GetLastError

GetLoadCaseInfo ([in] long lLoadCaseID, [in, out] SLoadCaseInfo* psLoadCaseInfo, [out,retval] long* plRetVal);
Purpose
Parameters

Comment

Get the SLoadCaseInfo for the specified load case.


lLoadCaseID
Load Case Unique ID
psLoadCaseInfo
Load case info struct.
plRetVal
Error code. If value is non zero then check GetLastError
Implemented for gravity loads only.

GetLoadCasesForGenerator ([in] COMBO_MATERIAL_TYPE eType, [out] long* nNumCases, [out] SLoadCase_CmbGen_DA** ppaAllCases);
Purpose
Parameters

NOTE:

To get the list of load cases to be used with the load combo generator.
eType
Flag that indicates the program/mode that is requesting the list.
nNumCases
Return value for the number of cases in the list
ppaAllCases
Array of the load cases. Memory is allocated inside DataAccess.
This is only implemented for Concrete in ILoading1

GetLoadSetPropInfo ([in] long lLoadSetPropID, [in] BSTR* pbstrLabel, [in, out] long* plNumCaseIDsUsed, [in, out] long* palCaseIDsUsed, [in,
out] long* plNumReferances, [out,retval] long* plRetVal);
Purpose

Parameters

Get the information on the load set properties. A load set is defined in RAM Modeler and
is a group of gravity loads which include Dead, Construction Dead, Construction Live,
Mass and one of the following live loads Reducable, Unreducable, Storage or Roof.
lLoadSetPropID
Prop Unique ID
pbstrLabel
Prop Label

plNumCaseIDsUsed
palCaseIDsUsed
plNumReferances
plRetVal

Number of load cases that are part of load set


List of case ID's used. Must be dimensioned to max number of
gravity load cases
Number of times this prop. is used in model
Error code. If value is non zero then check GetLastError

GetLoadSetPropLoadCaseInfoArray ([in] long lLoadSetPropID, [in] long lArraySize, [in, out] SLoad* paLoadMagnitudes, [out, retval] long*
plRetVal);
Purpose
Parameters

Get the magnitudes for all the load cases that are defined in the LoadSetProp.
lLoadSetPropID
Prop Unique ID
lArraySize
paLoadMagnitudes array size
paLoadMagnitudes
Array of SLoad for all load cases in load set.
paLoadMagnitudes must be sized to the total number of nonzero values in palCaseIDsUsed
plRetVal
Error code. If value is non zero then check GetLastError

GetNodalLoadCaseInfo ([out] long * plNumLoadCases, [out] BSTR** ppbstrLoadCaseLabel, [out] BSTR** ppbstrLoadCaseType);
Purpose
Parameters

Get the number of nodal load cases defined in the modeler.


plNumLoadCases
The number of nodal load cases defined
ppbstrLoadCaseLabel The label (user defined) of the load case
ppbstrLoadCaseType The nodal load case type (wind, seismic, virtual, other)

GetNodalLoadsForLoadCase ([in] BSTR bstrNodalLoadCaseLabel, [out] long* plNumLoads, [out] SNodalLoadData** ppaNodalLoads);
Purpose
Parameters

Get the nodal loads associated with a specific load case label.
bstrNodalLoadCaseLabel The load case label (see GetNodalLoadCaseInfo)
plNumLoads
The number of nodal loads in the load case
ppaNodalLoads
Array of nodal load data structures with applied forces

GetNumAnalyzedFrameLoadCases ([out] long * plNumAnalyzedLoadCases);


Purpose
Parameters

To get the number of load cases analyzed by RAM Frame.


plNumAnalyzedLoadCases
The number of analyzed load cases. This number does
include merged load cases but NOT cases that are
combined to create the merged case.

GetNumAvailFrameCombos ([in] ECOMBOTYPES eComboType, [out] long * plNumAvailLoadCombos);


Purpose
Parameters
NOTE:

To get the number of valid load combinations for the given RAM Frame mode. A valid
load combination is one that contains only analyzed load cases.
eComboType
Flag indicating the RAM Frame mode.
plNumAvailLoadCombos return value for the number of valid load combinations
This is only implemented for RAM Frame in ILoading1

GetNumCasesForGenerator ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCases);


Purpose
Parameters

To get the number of cases available to the combo generator.


eType
Flag that indicates the program/mode that is requesting the list.

NOTE:

nNumCases
Return value for the number of cases in the count.
This is only implemented for Concrete in ILoading1

GetNumCombos ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCombos );


Purpose
Parameters
NOTE:

To get the number of combinations.


eType
Flag that indicates the program/mode that is requesting the count.
pnNumCombos
The number of combinations
This is only implemented for Concrete in ILoading1

GetNumCombosInUse ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCombosInUse );


Purpose
Parameters

To get the number of combinations.


eType
Flag that indicates the program/mode that is requesting the
count.
pnNumCombosInUse Number of combos selected for use.

GetNumGravLoadCases ([out] long* pNum);


Purpose
Parameters

To get the number of gravity load cases defined in the RAM Modeler. These cases
include: Dead, Reducible Live, Storage Live, Unreducible Live, and Roof Live.
pNum
Return value of the number of gravity load cases.

GetPointLoadSetInfo ([in] long lPointLoadSetID, [in, out] SCoordinate* paLoc, [in, out] long* plLoadSetPropID, [out, retval] long* plRetVal);
Purpose
Parameters

Get information on a point load set.


lPointLoadSetID
Point load set ID
paLoc
Location of point load
plLoadSetPropID
LoadSetProp Unique ID
plRetVal
Error code. If value is non zero then check GetLastError

GetRoofReducibleFlag ([out] long* lRoofIsReducible);


Purpose
Parameters

To get the flag that indicates whether the roof load is reducible or snow.
lRoofIsReducible
0 = snow, 1 = reducible.

GetSurfaceLoadSetInfo ([in] long lSurfLoadSetID, [in, out] long* plLoadSetPropID, [out, retval] long* plRetVal);
Purpose
Parameters

Comment

Get information on a surface load set.


lSurfLoadSetID
Surface load set ID
plLoadSetPropID
LoadSetProp Unique ID
plRetVal
Error code. If value is non zero then check GetLastError
Use the Polygon functions to get the surface loading geometry

GetTotalNumLoadCases ( [in] COMBO_MATERIAL_TYPE eType, [out] long* pNumLoadCases );


Purpose
Parameters

SetComboCode ();

Get the total number of load cases.


eType
Combo type
pNumLoadCases
Number of load cases

Purpose

Internal use only.

SetComboParameters ();
Purpose

Internal use only.

SetComboReGenFlag ();
Purpose

Internal use only.

SetCombos ();
Purpose

Internal use only.

SetLoadCasesForGen ();
Purpose

Internal use only.

SetTotalNumLoadCases ();
Purpose

Internal use only.

IMemberData1
Philosophy: This interface is for accessing and setting information for specific members. This could be information about size, framing type,
material, material properties.
CalcLiveLoadReductionFactors ( );
Purpose

Compute live load reduction factors.

CalcRigidEndZones ( );
Purpose

Compute rigid end zones.

CheckForMemberSizes ( [in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] BOOL bAllHaveSizes );
Purpose
Parameters

Get beam design assignment as beam or joist.


eMemType
Member type
eMaterial
Material type
bAllHaveSizes
True if all member type of material type have sizes assigned

GetAssignedMemberKFactor ([in] long lMemberID, [out] EKFAC_ASSIGN* peMajor, [out] EKFAC_ASSIGN* peMinor, [out] double*
pdMajorValue, [out] double* pdMinorValue);
Purpose
Parameters

To get the Assigned K factor setting for a column (in each axis) and the user specified K factor
if indicated to be assigned.
lMemberID
The column ID
peMajor
Major axis assigned (Use global, Use nomograph or Use assigned value)

peMinor
pdMajorValue
pdMinorValue

Minor axis assigned (Use global, Use nomograph or Use assigned value)
If peMajor is Use Assigned then this has the user assigned value, major axis
If peMinor is Use Assigned then this has the user assigned value, minor axis

GetAssignedMemberSidesway ([in] long lMemberID, [out] ESIDESWAY_ASSIGN* peMajor, [out] ESIDESWAY_ASSIGN* peMinor);
Purpose

Parameters

Note:

Returns the sidesway assignment : use global, braced or unbraced. See


GetMemberSidesway if you are only interested what the final calculated
braced/unbraced(sway) flag is.
lMemberID
The column ID to get the sidesway setting for
peMajor
Major axis sidesway value (Use global/Braced/unbraced)
peMinor
Minor axis sidesway value (Use global /Braced/unbraced)
braced = nonsway unbraced = sway

GetBeamLineNo ([in] long lBeamID, [out] long * plBeamLineNo);


Purpose
Parameters

Get beam line number that the concrete beam is assigned to. If member is not a
concrete beam an error is returned.
lBeamID
Beams Unique ID
plBeamLineNo
Beam line number assigned to member, 0 indicates no assignment

GetColumnDimensions ([in] long lMemberID, [out] double *pdWidth, [out] double *pdDepth);
Purpose
Parameters

Get concrete column section dimensions.


lMemberID
Columns Unique ID
pdWidth
Column width / minor direction length (B)
pdDepth
Column depth / major direction length (H)

GetColumnHeight ([in] long lMemberID, [out] double* pdHeight);


Purpose
Parameters

Get the column height.


lMemberID
Columns Unique ID
pdHeight
Column height

GetConcBeamCCBBotBars ([in] long lBeamID, [out] E_COVER_OPTION* peUseDefBotBars, [out] double* pdBotBars1, [out] double*
pdBotBars2);
Purpose
Parameters

Get whether the beam should use the global criteria for cover to center of bars for bottom
bars, or whether to use User defined data for this beam.
lBeamID
The unique member ID
peUseDefBotBars 0 = use global criteria, 1 = use user defined values below
pdBotBars1
Assigned longitudinal bottom reinforcement cover to bar center for 1
layer (if user defined)
pdBotBars2
Assigned longitudinal bottom reinforcement cover to bar center for 2
layer (if user defined)

GetConcBeamCCBTopBars ([in] long lBeamID, [out] E_COVER_OPTION* peUseDefTopBars, [out] double* pdTopBars1, [out] double*
pdTopBars2);
Purpose

Get whether the beam should use the global criteria for cover to center of bars for top

Parameters

bars, or whether to use User defined data for this beam.


lBeamID
The unique member ID
peUseDefTopBars
0 = use global criteria, 1 = use user defined values below
pdTopBars1
Assigned longitudinal top reinforcement cover to bar center for 1
layer (if user defined)
pdTopBars2
Assigned longitudinal top reinforcement cover to bar center for 2
layer (if user defined)

GetConcBeamDesignAsBeam ([in] long lBeamID, [out] long* plDsnAsBeam);


Purpose
Parameters

Get beam design assignment as beam or joist.


lBeamID
Beams Unique ID
plDsnAsBeam
Convert to BOOL True = design as beam, False = design as joist

GetConcBeamMaxBarLayers ([in] long lBeamID, [out] E_BARLAYERS_OPTION* peBarLayers);


Purpose
Parameters

Get whether the beam should use the global bar layer criteria or whether to use User
defined data for this beam.
lBeamID
The unique member ID
peBarLayers
0 = use default from criteria, 1 = 1 Layer only, 2 = allow 2 layers

GetConcBeamShearLegs ([in] long lBeamID, [out] E_SHEARLEGS_OPTION* peUserDefault, [out] long* plNumShearLegs);
Purpose
Parameters

Get whether to use the global stirrup legs criteria or whether to use a user defined value.
lBeamID
The unique member ID
peUserDefault
0 = use global criteria, 1 = use user defined value below
plNumShearLegs
Number of stirrup legs assigned to beam

GetConcBeamStirrupType ([in] long lBeamID, [out] E_STIRRUPS_OPTION* peStirrupType);


Purpose
Parameters

Get whether to use the global stirrup type criteria or whether to use a user defined value.
lBeamID
The unique member ID
0 = use global criteria, 1 = use open stirrups, 2 = use closed
peStirrupType
stirrups, 3 = use 135 Hook stirrups, 4 = use Hoop stirrups

GetConcColBarGroups ([in] long lMemberID, [out] long* plGroup1, [out] long* plGroup2, [out] long* plGroup3, [out] long* plGroup4, [out] long*
plGroup5);
Purpose
Parameters

For the given member, get the indices into the array of bar pattern groups of the
assigned bar patterns.
lMemberID
Unique member id
plGroup1
Index #1
plGroup2
Index #2
plGroup3
Index #3
plGroup4
Index #4
plGroup5
Index #5

GetConcColShearLegs ([in] long lMemberID, [out] long* plNumMajor, [out] long* plNumMinor, [out] long* plUseGlobalMajor, [out] long*
plUseGlobalMinor);
Purpose
Parameters

To get the number of shear legs assigned to a given column along each axis.
lMemberID
Unique member id
plNumMajor
If the user selected to use this is the user designated number of
shear legs along the major axis.
plNumMinor
If the user selected to use this is the user designated number of
shear legs along the minor axis.
plUseGlobalMajor
0 = use the global setting, 1 = use the user value
plUseGlobalMinor
0 = use the global setting, 1 = use the user value

GetConcreteBeamSectionDimProps ([in] long lBeamID, [out] ECONC_OTHER_SEC* peShape, [out] double* pdWebDepth, [out] double*
pdWebWidthT, [out] double* pdWebWidthB, [out] double* pdFLWidthL, [out] double* pdFLWidthR, [out] double* pdFLthickL, [out] double*
pdFLthickR, [out] long* pbLeftIsEdge, [out] long* pbRightIsEdge, [out] long * pbUserSpecified);
Purpose
Parameters

Comments

Concrete beam section dimension properties.


lBeamID
Beams Unique ID
peShape
Concrete section type ECONC_OTHER_SEC
pdWebDepth
Distance from bottom of section to bottom of slab adjacent to beam.
If slab thickness is different each side of beam then the distance
from bottom of section to the bottom of the thickest slab is provided
pdWebWidthT
Web width at top of web
pdWebWidthB
Web width at bottom of web
pdFLWidthL
Left flange width from center of span
pdFLWidthR
Right flange width from center of span
pdFLthickL
Left flange thickness
pdFLthickR
Right flange thickness
True (1) = left side is an edge of slab, False (0) = left side is not an
pbLeftIsEdge
edge
True (1) = right side is an edge of slab, False (0) = right side is not
pbRightIsEdge
an edge
pbUserSpecified
True if the user specified the design properties directly. False if user
wants RAM SS to calculate the design properties
Note: Total section depth is pdWebDepth + maximum thickness between pdFLthickL and
pdFLthickR

GetConcreteColumnSectionDimProps ([in] long lColumnID, [out] ECONC_OTHER_SEC* peShape, [out] double* pdDepthDiam, [out] double*
pdWebWidthT, [out] double* pdWebWidthB, [out] double* pdArea );
Purpose
Parameters

Get concrete column section dimension properties.


lColumnID
Columns Unique ID
peShape
Concrete section type ECONC_OTHER_SEC
pdDepthDiam
Full depth of column if rectangle, diameter of column if circular
pdWebWidthT
Section Width / minor dimension
pdWebWidthB
(Same number for top and bottom)
pdArea
Section area

GetConcreteMemberMatlProps ([in] long IMemberID, [out] double * pdfpc, [out] double * pdfct, [out] double * pdE, [out] BSTR * pbstrAggType,
[out] double * pdLongFy, [out] double * pdShearFy, [out] double * pdPoissonsRatio, [out] double * pdMatDensity, [out] double *
pdSelfWeight);
Purpose
Parameters

Get concrete material property for member. An error is returned if the member is not
concrete.
IMemberID
Members Unique ID
pdfpc
Concrete Compression stress capacity
pdfct
Concrete crack section stress capacity fct. Value is 0 if Normal
weight concrete is used or if user does not choose to enter a value
pdE
Concrete modulus of elasticity Ec. If the value is -1 then the user
has selected for Ec to be calculated automatically and it must be
calculated based on the concrete code being used
pbstrAggType
Concrete Aggregate type NWC = normal weight concrete, LWC =
light weight concrete
pdLongFy
Longitudinal reinforcement stress capacity fy
pdShearFy
Transverse reinforcement stress capacity fy
pdPoissonsRatio
Poissons ratio
pdMatDensity
Concrete material density
pdSelfWeight
Concrete self weight used for self weight calculations

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetDisplaySize (long lMemberID, BSTR *pbstrDisplaySize);


Purpose
Parameters
Comments

Get concrete beam section size when member is generated using pan joists.
lMemberID
Beams Unique ID
pbstrDisplaySize
Concrete beam section label
This is used when the section name is built out of different size pans on either side of
beam

GetFootingSectionDimProps ( [in] long IFootID, [out] double* pdThickness, [out] double* pdCrackSectFactor );
Purpose
Parameters

Get concrete material property for member. An error is returned if the member is not
concrete.
IFootID
Footing unique ID
pdThickness
Thickness
pdCrackSectFactor Concrete cracked section factor

GetGridLabelForMember ([in] long IMemberID, [in] EDA_MEMBER_LOC eAtLoc, [in] double dDBToModelUnitConvert, [in] BSTR bstrUnit, [out]
BSTR* pbstrGridLabel);
Purpose
Parameters

Get the grid location for the member. If there are no grids at the location the global
coordinates are returned.
IMemberID
Members Unique ID
eAtLoc
Location of member - eStart = 1, eEnd = 2, eTop = 10,
eBottom = 20

dDBToModelUnitConvert
bstrUnit
pbstrGridLabel

Unit conversion from inches (database units) to the required


units. If units need to be in ft the value would be 0.08333
String of unit label for final value. If the final units need to be
in feet use ft
Grid location returned as string

GetIEndBeamID ( [in] long lBeamID, [out] long* plIEndBeamID);


Purpose

Get the beam line number of the beam adjacent to the start of beam represented by
lBeamID.
lBeamID
Unique Beam ID
plIEndBeamID
Beam ID at start of lBeamID

Parameters

GetInterfacePointer();
Purpose

Internal use only.

GetJEndBeamID ( [in] long lBeamID, [out] long* plJEndBeamID);


Purpose
Parameters

Get the beam line number of the beam adjacent to the end of the beam represented by
lBeamID.
lBeamID
Beams Unique ID
plJEndBeamID
Beam ID at end of lBeamID

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetMemberEndReleases ([in] long lMemberID, [out] long * plMajorMomFixedI, [out] long * plMinorMomFixedI, [out] long * plTorFixedI, [out] long *
plMajorMomFixedJ, [out] long * plMinorMomFixedJ, [out] long * plTorFixedJ);
Purpose

Parameters

Note:

For lateral members get the section end release properties.


Note: End I of column = top, End I of beam is left, bottom (when looking at beam in plan),
End I of brace is top.
lMemberID
The unique member ID
plMajorMomFixedI True (1) if fixed for bending about major axis end I
plMinorMomFixedI True (1) if fixed for bending about minor axis end I
plTorFixedI
True (1) if fixed for bending about torsion axis end I
plMajorMomFixedJ True (1) if fixed for bending about major axis end J
plMinorMomFixedJ True (1) if fixed for bending about minor axis end J
plTorFixedJ
True (1) if fixed for bending about torsion axis end J
Returns error if member is gravity member

GetMemberFrameNumber ([in] long lMemberID, [out] long* plFrameNum);


Purpose
Parameters

Get frame number for given member.


lMemberID
Member unique ID
plFrameNum
Frame number that the member belongs to. A number < 0 indicates
a gravity member.

GetMemberFraming ([in] long lMemberID, [out] EFRAMETYPE* eMemberFraming);


Purpose
Parameters

Get the flag that indicates whether a member is gravity or lateral.


lMemberID
Unique member id
eMemberFraming
Flag that indicates gravity or lateral

GetMemberLabel ([in] long lUniqueID, [out] long* plLabel);


Purpose
Parameters

To get a specific members screen label (also known as the member number).
lUniqueID
Unique id of a member
plLabel
The members member number

GetMemberMatlLatType ([in] long IMemberID, [out] EMATERIALTYPES * peMat, [out] EFRAMETYPE * peFrameType);
Purpose
Parameters

Get member material type and frame type.


lMemberID
Member unique ID
peMat
Material type
peFrameType
Frame number that the member belongs to. A number < 0 indicates
a gravity member.

GetMemberRigidEndZones ([in] long lMemberID, [out] double * pdREZMajorI, [out] double * pdREZMinorI, [out] double * pdREZMajorJ, [out]
double * pdREZMinorJ);
Purpose

Parameters

Get a members rigid end zone length (full length) due to members that frame in at its
ends. Applies to beams and columns only. All calls to this function should be preceded
with one call to CalcRigidEndZones(). It is only necessary to call CalcRigidEndZones()
once. Gravity concrete beams (with beam lines) are assumed continuous. Gravity
concrete columns are assumed continuous.
lMemberID
The unique member ID
pdREZMajorI
The rigid end zone length at end I in major axis (0 if pinned)
pdREZMinorI
The rigid end zone length at end I in minor axis (0 if pinned)
pdREZMajorJ
The rigid end zone length at end J in major axis (0 if pinned)
pdREZMinorJ
The rigid end zone length at end J in minor axis (0 if pinned)

GetMemberSectionPropInfo ([in] long IMemberID, [out] double* pdIMajGross, [out] double* pdIMinGross, [out] double* pdArea, [out] double*
pdAvMaj, [out] double* pdAvMin, [out] double* pdJ, [out] double* pdCrackSectFactor );
Purpose
Parameters

Member analytical section properties.


IMemberID
Members Unique ID
pdIMajGross
Major axis bending moment of inertia
pdIMinGross
Minor axis bending moment of inertia
pdArea
Section area
pdAvMaj
Effective shear area for shear in major axis

Comments

pdAvMin
Effective shear area for shear in major axis
pdJ
Torsional constant of the section
pdCrackSectFactor Cracked section factor used to reduce moment of inertia values
This method can be called for all steel sections and for Rectangular and Circular
sections. It can be called for concrete T sections where the flange thickness and
overhangs on either side of the web are explicitly defined. For all other T sections the use
should call GetConcreteBeamSectionDimProps and then adjust the flange widths based
on the applicable concrete code effective width calculation then use the section
dimensions to calculate the analytical section properties.

GetMemberSectionPropInfo2 ( [in] long IMemberID, [out] double* pdIMajGross, [out] double* pdIMinGross, [out] double* pdArea, [out] double*
pdAvMaj, [out] double* pdAvMin, [out] double* pdJ, [out] double* pdCrackSectFlexureFactor, [out] double* pdCrackSectAxialFactor, [out]
double* pdCrackSectTorsionFactor );
Purpose
Parameters

Comments

Member analytical section


properties.
IMemberID
Members Unique ID
pdIMajGross
Major axis bending moment of inertia
pdIMinGross
Minor axis bending moment of inertia
pdArea
Section area
pdAvMaj
Effective shear area for shear in major axis
pdAvMin
Effective shear area for shear in major axis
pdJ
Torsional constant of the section
pdCrackSectFlexureFactor
Cracked section factor used to reduce flexural values
pdCrackSectAxialFactor
Cracked section factor used to reduce axial values
pdCrackSectTorsionFactor
Cracked section factor used to reduce torsional values
This method can be called for all steel sections and for Rectangular and Circular sections. It can be
called for concrete T sections where the flange thickness and overhangs on either side of the web are
explicitly defined. For all other T sections the use should call GetConcreteBeamSectionDimProps and
then adjust the flange widths based on the applicable concrete code effective width calculation then
use the section dimensions to calculate the analytical section properties.

GetMemberSidesway ([in] long lMemberID, [out] ESIDESWAY_ASSIGN* peMajor, [out] ESIDESWAY_ASSIGN* peMinor);
Purpose
Parameters

Note:

Returns either ItIsBraced or ItIsUnbraced. If Use Global was assigned to the member,
DataAccess determines if the global state is braced or unbraced.
lMemberID
The member ID to get the sidesway setting for
peMajor
Major axis sidesway value (Braced/unbraced)
peMinor
Minor axis sidesway value (Braced/unbraced)
braced = nonsway unbraced = sway

GetMemberSize ([in] long lMemberID, [out] BSTR* pbstrSize);


Purpose
Parameters

Get section label assigned to member.


lMemberID
Member Unique ID
pbstrSize
Section label

GetMemberType ([in] long lMemberID, [out] EUniqueMemberTypeID* peMemType);


Purpose
Parameters

Get member type as beam, column, wall etc.


lMemberID
Member unique ID
peMemType
Member type as column, beam, wall etc.

GetOtherMemberMatlProps ([in] long IMemberID, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double* pdMatDensity, [out] double*
pdSelfWeight);
Purpose
Parameters

Get other member material properties.


IMemberID
Members Unique ID
pdE
Steel modulus of elasticity
pdPoissonsRatio
Poissons ratio
pdMatDensity
Material density
pdSelfWeight
Weight used for self weight calculations

GetSmartbeamType ([in] long lMemberID, [out] ESMARTBEAMTYPE* peSmartType, [out] BSTR* pbstrSize);
Purpose
Parameters

To get the size and type of a specific smart beam.


lMemberID
Unique member id
peSmartType
0 = castilated, 1 = cellular
pbstrSize
Size as a string

GetSteelMemberMatlProps ([in] long IMemberID, [out] double* pdFy, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double * pdDensity,
[out] long* plComposite);
Purpose
Parameters

Get steel member material properties.


IMemberID
Members Unique ID
pdFy
Steel stress capacity
pdE
Steel modulus of elasticity
pdPoissonsRatio
Poissons ratio
pdDensity
Steel material density
plComposite
True (1) = member is a steel composite beam.

GetSteelMemberSectionDimProps ([in] long IMemberID, [out] ESTEEL_SEC* peShape, [out] BSTR * pbstrSize, [out] double* pdBfTop, [out]
double* pdBFBot, [out] double* pdTfTop, [out] double* pdTFBot, [out] double* pdkTop, [out] double* pdkBot, [out] double* pdDepth, [out]
double* pdWebT, [out] double* pdCw, [out] double* pdJ, [out] ESTEEL_ROLLED_FLAG * peRolledFlag, [out] double* pdZx, [out] double*
pdZy, [out] double* pdSxtop, [out] double* pdSxbot, [out] double* pdSy, [out] double* pdImaj, [out] double* pdImin, [out] double* pdArea);
Purpose
Parameters

Steel section dimension properties from steel table.


IMemberID
Members Unique ID
peShape
Section shape
pstrSize
Section label
pdBfTop
Top Flange Width (breadth)
pdBFBot
Bottom Flange Width (breadth)
pdTfTop
Thickness of top flange
pdTFBot
Thickness of bottom flange
pdkTop
K dimension top of section (refer to AISC for defn)
pdkBot
K dimension bottom of section (refer to AISC for defn)

pdDepth
pdWebT
pdCw
pdJ
peRolledFlag
pdZx
pdZy
pdSxtop
pdSxbot
pdSy
pdImaj
pdImin
padArea

Total depth of the section


Thickness of the web of the section
Warping torsion constant of section
Torsional modulus of section
True if this is a rolled section
Plastic modulus major axis
Plastic modulus minor axis
Section Modulus Top
Section Modulus Bottom
Section Modulus Minor Axis
Major axis moment of inertia
Minor axis moment of inertia
Area of cross section

GetWallGroupNum ([in] long lStoryNum, [out] long *lNumberOfWallGroups);


Purpose
Parameters

Get total number of wall groups on story.


lStoryNum
Story index number
lNumberOfWallGroups
Total number of wall groups in story

IsColumnAHanger ([in] long lMemberID, [out] BOOL* pbHanger);


Purpose
Parameters

Get whether a column is a hanger or not.


lMemberID
The unique member ID
pbHanger
1 if Hanger, 0 if standard column

IsItAnOffsetColumn ( [in] long lColID, [out] BOOL* pbOffsetCol );


Purpose
Parameters

Get whether a column is a hanger or not.


lColID
The unique column ID
pbOffsetCol
True if offset column

Reset ( );
Purpose

Internal use only.

SetBeamLineNo ([in] long lBeamID, [in] long lBeamLineNo);


Purpose
Parameters

Set beam line number that the concrete beam is assigned to. If member is not a concrete
beam an error is returned.
lBeamID
Beams Unique ID
lBeamLineNo
Beam line number assigned to member, 0 indicates no assignment

SetConcBeamCCBBotBars ([in] long lBeamID, [in] E_COVER_OPTION p=eUseDefBotBars, [in] double dBotBars1, [in] double dBotBars2);
Purpose
Parameters

Set whether the beam should use the global criteria for cover to center of bars for bottom
bars, or whether to use User defined data for this beam.
lBeamID
The unique member ID
eUseDefBotBars
0 = use global criteria, 1 = use user defined values below
dBotBars1
Assigned longitudinal bottom reinforcement cover to bar center for 1

dBotBars2

layer (if user defined)


Assigned longitudinal bottom reinforcement cover to bar center for 2
layer (if user defined)

SetConcBeamCCBTopBars ([in] long lBeamID, [in] E_COVER_OPTION eUseDefTopBars, [in] double dTopBars1, [in] double dTopBars2);
Purpose
Parameters

Set whether the beam should use the global criteria for cover to center of bars for top
bars, or whether to use User defined data for this beam.
lBeamID
The unique member ID
eUseDefTopBars
0 = use global criteria, 1 = use user defined values below
dTopBars1
Assigned longitudinal top reinforcement cover to bar center for 1
layer (if user defined)
dTopBars2
Assigned longitudinal top reinforcement cover to bar center for 2
layer (if user defined)

SetConcBeamDesignAsBeam ([in] long lBeamID, [in] long lDsnAsBeam);


Purpose
Parameters

Set beam design assignment as beam or joist.


lBeamID
Beams Unique ID
lDsnAsBeam
Convert to BOOL True = design as beam, False = design as joist

SetConcBeamMaxBarLayers ([in] long lBeamID, [in] E_BARLAYERS_OPTION eBarLayers);


Purpose
Parameters

Set whether the beam should use the global bar layer criteria or whether to use User
defined data for this beam.
lBeamID
The unique member ID
eBarLayers
0 = use default from criteria, 1 = 1 Layer only, 2 = allow 2 layers

SetConcBeamShearLegs ([in] long lBeamID, [in] E_SHEARLEGS_OPTION eUserDefault, [in] long lNumShearLegs);
Purpose
Parameters

Set whether to use the global stirrup legs criteria or whether to use a user defined value.
lBeamID
The unique member ID
eUserDefault
0 = use global criteria, 1 = use user defined value below
lNumShearLegs
Number of stirrup legs assigned to beam

GetConcBeamStirrupType ([in] long lBeamID, [out] E_STIRRUPS_OPTION* peStirrupType);


Purpose
Parameters

Get whether to use the global stirrup type criteria or whether to use a user defined value.
lBeamID
The unique member ID
0 = use global criteria, 1 = use open stirrups, 2 = use closed
peStirrupType
stirrups, 3 = use 135 Hook stirrups, 4 = use Hoop stirrups

SetConcColBarGroups ([in] long lMemberID, [in] long lGroup1, [in] long lGroup2, [in] long lGroup3, [in] long lGroup4, [in] long lGroup5);
Purpose
Parameters

For the given member, set the indices into the array of bar pattern groups of the
assigned bar patterns.
lMemberID
Unique member id
lGroup1
Index #1
lGroup2
Index #2
lGroup3
Index #3

lGroup4
lGroup5

Index #4
Index #5

SetConcColShearLegs ([in] long lMemberID, [in] long lNumMajor, [in] long lNumMinor, [in] long lUseGlobalMajor, [in] long lUseGlobalMinor);
Purpose
Parameters

To set the number of shear legs assigned to a given column along each axis.
lMemberID
Unique member id
lNumMajor
If the user selected to use this is the user designated number of
shear legs along the major axis.
lNumMinor
If the user selected to use this is the user designated number of
shear legs along the minor axis.
lUseGlobalMajor
0 = use the global setting, 1 = use the user value
lUseGlobalMinor
0 = use the global setting, 1 = use the user value

SetConcreteMemberMatlProps ([in] long IMemberID, [in] double dfpc, [in] double dfct, [in] double dE, [in] BSTR bstrAggType, [in] double
dLongFy, [in] double dShearFy, [in] double dPoissonsRatio, [in] double dMatDensity, [in] double dSelfWeight);
Purpose
Parameters

Set concrete material property for member. An error is returned if the member is not
concrete.
IMemberID
Members Unique ID
dfpc
Concrete Compression stress capacity
dfct
Concrete crack section stress capacity fct. Value is 0 if Normal
weight concrete is used or if user does not choose to enter a value
dE
Concrete modulus of elasticity Ec. If the value is -1 then the user
has selected for Ec to be calculated automatically and it must be
calculated based on the concrete code being used
bstrAggType
Concrete Aggregate type NWC = normal weight concrete, LWC =
light weight concrete
dLongFy
Longitudinal reinforcement stress capacity fy
dShearFy
Transverse reinforcement stress capacity fy
dPoissonsRatio
Poissons ratio
dMatDensity
Concrete material density
dSelfWeight
Concrete self weight used for self weight calculations

SetIEndBeamID ( [in] long lBeamID, [out] long* plIEndBeamID);


Purpose

Internal use only.

SetJEndBeamID ( [in] long lBeamID, [out] long* plJEndBeamID);


Purpose

Internal use only.

SetMemberKFactor ([in] long lMemberID, [in] EKFAC_ASSIGN eMajor, [in] EKFAC_ASSIGN eMinor, [in] double dMajorValue, [in] double
dMinorValue );
Purpose
Parameters

Set the member K factor.


lMemberID
The member ID to get the sidesway setting for
eMajor
Major axis K factor type
eMinor
Minor axis K factor typ

dMajorValue
dMinorValue

Major axis K factor


Minor axis K factor

SetMemberSidesway ([in] long lMemberID, [in] ESIDESWAY_ASSIGN eMajor, [in] ESIDESWAY_ASSIGN eMinor);
Purpose
Parameters

Note:

Sets either ItIsBraced or ItIsUnbraced. If Use Global was assigned to the member,
DataAccess determines if the global state is braced or unbraced.
lMemberID
The member ID to get the sidesway setting for
eMajor
Major axis sidesway value (Braced/unbraced)
eMinor
Minor axis sidesway value (Braced/unbraced)
braced = nonsway unbraced = sway

SetMemberSize ([in] long lMemberID, [in] BSTR bstrSize);


Purpose
Parameters

Set section label assigned to member.


lMemberID
Member Unique ID
bstrSize
Section label

IMemberData2
Philosophy: (see MemberData1 above)
GetBraceDoubleAngleInfo([in] long lBraceID, [in,out] BOOL* pbIsDoubleAngle ,
[in,out] BOOL* pbLongLegsBack2Back, [in,out] double* pdBackSpacing,
[out, retval] long* plRetVal)
Purpose
Parameters

Get double angle info for brace sections.


lBraceID
Brace ID
pblsDoubleAngle
TRUE = section is a double angle. If FALSE then ignore
remaining values
pbLongLegsBack2Back TRUE = long legs are back to back
bdBackSpacing
Spacing between double angle backs
plRetVal
Error code.
-1 = unspecified error, -2 = Section not a double angle
If value is non zero then check GetLastError

GetConcBeamCBC ( [in] long lBeamID, [out] E_COVER_OPTION* peCBCOption, [out] double* pdCBCTop, [out] double* pdCBCBot, [out]
double* pdCBCSide, [out, retval] long* plRetVal );
Purpose
Parameters

Get the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
peCBCOption
Cover option
pdCBCTop
Top cover
pdCBCBot
Bottom cover
pdCBCSide
Side cover

plRetVal

Error code. If value is non zero then check GetLastError.

GetConcGapData ( [in] long lBeamID, [out] E_GAP_OPTION* peGapOption, [out] double* pdGapUpper, [out] double* pdGapLower, [out, retval]
long* plRetVal );
Purpose
Parameters

Get the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
peGapOption
Gap option
pdGapUpper
Upper gap
pdGapLower
Lower gap
plRetVal
Error code. If value is non zero then check GetLastError.

GetConcBeamLinkSpacing ( [in] long lBeamID, [out] E_LINKSPC_OPTION* peLinkSpacingOption, [out] double* pdLinkSpacing, [out, retval]
long* plRetVal );
Purpose
Parameters

Get the concrete beam link spacing for the Chinese design code.
lBeamID
The unique beam ID
peLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION.
pdLinkSpacing
Link spacing
plRetVal
Error code. If value is non zero then check GetLastError.

GetConcBeamLinkSpacingChinese ([in] long lBeamID, [out] E_LINKSPC_OPTION* peLinkSpacingOption, [out] double* pdLinkSpacing, [out]
double* pdLinkSpacingMin, [out, retval] long* plRetVal);
Purpose
Parameters

Get the concrete beam link spacing for the Chinese design code.
lBeamID
The unique beam ID
peLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION.
pdLinkSpacing
Link spacing
pdLinkSpacingMin
Minimum link spacing
plRetVal
Error code. If value is non zero then check GetLastError.

GetConcBeamMainBarSize ( [in] long lBeamID, [out] E_BARSIZE_OPTION* eMainBarSizeOption, [out] long* plMinMainBarSizeInd, [out] long*
plMaxMainBarSizeInd, [out, retval] long* plRetVal );
Purpose
Parameters

Get the concrete main bar sizes assigned to the beam for the Chinese design code. .
lBeamID
The unique beam ID
eMainBarSizeOption
Bar size option. See E_BARSIZE_OPTION.
plMinMainBarSizeInd
Index to the minimum bar size
plMaxMainBarSizeInd Index to the maximum bar size
plRetVal
Error code. If value is non zero then check GetLastError.

GetConcBeamMainBarSizeChinese ([in] long lBeamID, [out] E_BARSIZE_OPTION* eShearBarSizeOption, [out] long* pldwSelectedBarSizes,
[out, retval] long* plRetVal);
Purpose
Parameters

Get the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION.
pldwSelectedBarSizes Selected bar sizes.
plRetVal
Error code. If value is non zero then check GetLastError.

GetConcBeamShearBarSize ( [in] long lBeamID, [out] E_BARSIZE_OPTION* eShearBarSizeOption, [out] long* plMinMainBarSizeInd, [out,
retval] long* plRetVal );
Purpose
Parameters

Get the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION.
plMinMainBarSizeInd
Index to the bar size
plRetVal
Error code. If value is non zero then check GetLastError.

GetDeflectionCriteria ([in] long lBeamID, [out] long *plDeflCritIID);


Purpose
Parameters

Determine the deflection criteria assigned to a beam.


lBeamID
The unique beam ID
plDeflCritID
Prior to version 14 this returned 0 for the default deflection criteria
or 1 for the alternate deflection criteria. After v14, it returns the
unique ID of the deflection criteria since multiple alternate deflection
criteria can exist.

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetNumPenetratedBeams([in, out] long* plNumBeamIDs, [out, retval] long* plRetVal)


Purpose
Parameters

Returns the number of penetrated beams.


plNumBeamIDs
The number of beams with pentrations
plRetVal
Error code. If value is non zero then check GetLastError

GetNumPensForBeamID([in] long lBeamID, [in, out] long* plNumPenetrations, [out, retval] long* plRetVal)
Purpose
Parameters

Get the number of penetrations in a given beam.


lBeamID
unique beam ID
plNumPenetrations Number of penetrations in that beam.
plRetVal
Error code. If value is non zero then check GetLastError

GetPenetratedBeamsIDArray([in] long lArraySize, [in, out] long* palBeamIDs, [out,retval] long* plRetVal)
Purpose
Parameters

Get an array ids for the beams that have penetrations.


lArraySize
Size of array to be retrieved. (This value is retrieved from the
GetNumPenetratedBeams method above).
palBeamIDs
Pointer to an array longs that will contain the beam IDs of beams
containing penetrations. Memory must be allocated before the
pointer is sent into DataAccess
plRetVal
Error code. If value is non zero then check GetLastError

GetPenetrationInfo ([in] long lBeamID, [in] long lPenID, [out] double* pdDistFromIEnd, [out] double* pdDistFromTop, [out] long* plType, [out]
double* pdHDiam, [out] double* pdB, [out] long* plNumStiffeners, [out] double *pdLength, [out] double *pdWidth, [out] double *pdThick);
Purpose
Parameters

Get data associated with a specific web penetration on a specific beam.


lBeamID
The unique member ID
lPenID
ID of web penetration on beam
pdDistFromIEnd
Distance of web pen from i-end of beam
pdDistFromTop
Distance of web pen from top of beam, or 0.0 if centered
plType
Shape of opening: Rectangular (0) or Circular (1)
pdHDiam
Height of rectangular or diameter of circular opening
pdB
Width of rectangular opening (or diameter or circular opening)
plNumStiffeners
0, 1, or 2 stiffeners
pdLength
Length of stiffeners
pdWidth
Width of stiffeners
pdThick
Thickness of stiffeners

GetPenetrationsIDArray([in] long lBeamID, [in] long lArraySize, [in, out] long* palPenIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Get an array of penetration ids in a given beam.


lBeamID
unique beam ID
lArraySize
Size of array to be retrieved. (This value is retrieved from the
GetNumPensForBeamID method above).
palPenIDs
Pointer to an array of longs that will contain penetration ids.
Memory must be allocated before the pointer is sent into
DataAccess
plRetVal
Error code. If value is non zero then check GetLastError

GetTensionCompressionType ([in] long lMemberID, [in, out] ETensionCompressionMemType* peTensionCompressionType, [out, retval] long*
plRetVal)
Purpose
Parameters

Comments

Reset ( );

Find if this member has been designated as Tension-Only.


lMemberID
unique member ID
peTensionCompressionType
Defines type as tension only/ compression only or both
plRetVal
Error code. If value is non zero then check GetLastError
Although any member ID may be passed in, only braces and beams can be designated
Tension-Only at this time. All other member types will automatically have FALSE returned

Purpose

Internal use only.

SetBeamCamber ( );
Purpose

Internal use only

SetConcGapData ( [in] long lBeamID, [in] E_GAP_OPTION eGapOption, [in] double dGapUpper, [in] double dGapLower, [out, retval] long*
plRetVal );
Purpose
Parameters

Set the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
eGapOption
Gap option
dGapUpper
Upper gap
dGapLower
Lower gap
plRetVal
Error code. If value is non zero then check GetLastError.

SetConcBeamLinkSpacing ( [in] long lBeamID, [in] E_LINKSPC_OPTION eLinkSpacingOption, [in] double dLinkSpacing, [out, retval] long*
plRetVal );
Purpose
Parameters

Set the concrete beam link spacing for the Chinese design code.
lBeamID
The unique beam ID
eLinkSpacingOption
Link spacing option. See E_LINKSPC_OPTION.
dLinkSpacing
Link spacing
plRetVal
Error code. If value is non zero then check GetLastError.

SetConcBeamLinkSpacingChinese ([in] long lBeamID, [in] E_LINKSPC_OPTION eLinkSpacingOption, [in] double dLinkSpacing, [in] double
dLinkSpacingMin, [out, retval] long* plRetVal);
Purpose
Parameters

Set the concrete beam link spacing for the Chinese design code.
lBeamID
The unique beam ID
eLinkSpacingOption
Link spacing option. See E_LINKSPC_OPTION.
dLinkSpacing
Link spacing
dLinkSpacingMin
Minimum link spacing
plRetVal
Error code. If value is non zero then check GetLastError.

SetConcBeamMainBarSize ( [in] long lBeamID, [in] E_BARSIZE_OPTION eMainBarSizeOption, [in] long lMinMainBarSizeInd, [in] long
lMaxMainBarSizeInd, [out, retval] long* plRetVal );
Purpose
Parameters

Set the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID
eMainBarSizeOption
Bar size option. See E_BARSIZE_OPTION.
lMinMainBarSizeInd
Index to the minimum bar size
lMaxMainBarSizeInd
Index to the maximum bar size
plRetVal
Error code. If value is non zero then check GetLastError.

SetConcBeamMainBarSizeChinese ([in] long lBeamID, [in] E_BARSIZE_OPTION eShearBarSizeOption, [in] long pldwSelectedBarSizes, [out,
retval] long* plRetVal);
Purpose
Parameters

Set the concrete main bar sizes assigned to the beam for the Chinese design code.
lBeamID
The unique beam ID

eShearBarSizeOption
pldwSelectedBarSizes
plRetVal

Bar size option. See E_BARSIZE_OPTION.


Selected bar sizes.
Error code. If value is non zero then check GetLastError.

SetConcBeamShearBarSize ( [in] long lBeamID, [in] E_BARSIZE_OPTION eShearBarSizeOption, [in] long lMinMainBarSizeInd, [out, retval]
long* plRetVal );
Purpose
Parameters

Set the concrete main bar sizes assigned to the beam for the Chinese design code. .
lBeamID
The unique beam ID
eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION.
lMinMainBarSizeInd
Index to the bar size
plRetVal
Error code. If value is non zero then check GetLastError.

SetDeflectionCriteria ([in] long lBeamID, [in] long lDeflCritID);


Purpose
Parameters

Set the deflection criteria for the concrete beam.


lBeamID
The unique beam ID
lDeflCritID
The unique ID of the deflection criteria assigned to the beam

SetMemberEndReleases ( [in] long lMemberID, [in] long lMajorMomFixedI, [in] long lMinormOmeFixedI, [in] long lTorFixedI, [in] long
lMajorMomFixedJ, [in] long lMinormOmeFixedJ, [in] long lTorFixedJ, [out, retval] long* plRetVal );
Purpose
Parameters

Set the deflection criteria for the concrete beam.


lMemberID
The unique member ID
lMajorMomFixedI
I end major moment (1 = fixed, 0 = released)
lMinorMomFixedI
I end minor moment (1 = fixed, 0 = released)
lTorFixedI
I end torsion (1 = fixed, 0 = released)
lMajorMomFixedJ
J end major moment (1 = fixed, 0 = released)
lMinorMomFixedJ
J end minor moment (1 = fixed, 0 = released)
lTorFixedJ
J end torsion (1 = fixed, 0 = released)
plRetVal
Error code. If value is non zero then check GetLastError.

IModelData1
Philosophy: This interface is for accessing and setting model specific information. This includes model name and paths, tables or information
about tables, units, live load reduction and other general model data.
GetBuildingCodeAsString (BSTR *pbstrCode);
Purpose
Parameters

Gets the LL Reduction code selected in the RAM Manager.


pbstrCode
String representation of the selected code

GetCompanyName([out] BSTR* pbstrCompanyName);


Purpose
Parameters

Returns the company name entered in the Defaults Utility and associated with this model.
pbstrCompanyName The Company Name

GetConcAnalysisState ( [out] long* plAnalysisState );


Purpose
Parameters

Returns the concrete analysis state of the model.


plAnalysisState
Concrete analysis state

GetConcBeamSectionTable ([out] long* pnNum, [out] SSECTIONS** ppaSections);


Purpose
Parameters
Comments

Get the definitions of all the concrete beam sections defined in model.
pnNum
Total number of concrete beam sections defined in model
ppaSections
List of concrete beam section definitions.
In general, one should use IMemberData1::GetConcreteBeamSectionDimProps and
IMemberData1::GetMemberSectionPropInfo to get section information because these
methods provide all the required information.

GetConcColSectionTable ([out] long* pnNum, [out] SSECTIONS** ppaSections);


Purpose
Parameters
Comments

Get the definitions of all the concrete column sections defined in model.
pnNum
Total number of concrete column sections defined in model
ppaSections
List of concrete column section definitions.
In general, one should use IMemberData1::GetConcreteColumnSectionDimProps and
IMemberData1::GetMemberSectionPropInfo to get section information because these
methods provide all the required information.

GetConcreteBeamState ( [out] long* plBeamState );


Purpose
Parameters

Returns the concrete beam state of the model.


plBeamState
Concrete beam state

GetConcreteCodeAsString ([out] BSTR* pbstrConcCode);


Purpose
Parameters

To find out what concrete code is being used.


pbstrConcCode
String representation of the selected concrete code

GetConcreteColumnState ( [out] long* plColumnState );


Purpose
Parameters

Returns the concrete column state of the model.


plColumnState
Concrete column state

GetDirectoryPathsFromINI ([out] BSTR* pbstrTables, [out] BSTR* pbstrData, [out] BSTR* pbstrDXF, [out] BSTR* pbstrReports, [out] BSTR*
pbstrError, [out] BSTR* pbstrProg);
Purpose
Parameters

Get all of the paths from the ini file.


pbstrTables
Path to the tables directory
pbstrData
Path to the data directory
pbstrDXF
Path to the dxf directory
pbstrReports
Path to the reports directory
pbstrError
Path to the error directory
pbstrProg
Path to the prog directory

GetDispInterfacePointerByEnum ();

Purpose

Internal use only.

GetFrameType ();
Purpose

Internal use only.

GetINIFileName ([out] BSTR* pbstrIniFileName);


Purpose
Parameters

Gets the name of the ini file.


pbstrIniFileName
Ini file name

GetInterfacePointer();
Purpose

Internal use only.

GetJobName([out] BSTR* pbstrJobName);


Purpose
Parameters

Returns the job name entered when the model was created.
pbstrJobName
The Job Name

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLiveLoadReductionInfo ([out] BSTR* pbstrLLCode, [out] long* plOptions, [out] long* plRoofReducible);
Purpose
Parameters

Get the information set in the LL Reduction dialog in the RAM Manager.
pbstrLLCode
Single character representation of the LL Reduction code
plOptions
For IBC and UBC, radio button setting for the code options.
plRoofReducible
1 indicates that the roof load is reducible
0 indicates that the roof load is snow.

GetMDFDrawingColor ([in] EDRAWINGCOLOR eColor, [out] DWORD* pdwColor);


Purpose
Parameters

Gets the drawing color for the specified member type (specified by EDRAWINGCOLOR).
eColor
Enum of member type.
pdwColor
RGB(red,green,blue) value for color

GetModelNameWithOutPath ([out] BSTR* pbstrModelName);


Purpose
Parameters

Get the model name without its directory path.


pbstrModelName
Model name with path

GetModelNameWithPath ([out] BSTR* pbstrModelName);


Purpose

Get the model name including its directory path.

Parameters

pbstrModelName

The model name.

GetNumConcColSections ([out] long* pnNum);


Purpose
Parameters

Gets the number of concrete column sections defined in the model.


pnNum
Number of sections

GetNumInRebarTable ([out] long* pnNum);


Purpose
Parameters

To retrieve the number of bars in the reinforcement table.


pnNum
Number of bars in the table

GetPathToCurrentModel ([out] BSTR* pbstrPath);


Purpose
Parameters
Comments

Get the path to the current model.


pbstrPath
Directory path
The path to where the model is saved is not necessarily the same as the default
data path.

GetPathToDataDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

Gets the path to the data directory from the ini file.
pbstrDir
Path to the data directory

GetPathToDXFDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

Gets the path to the dxf directory from the ini file.
pbstrDir
Path to the dxf directory

GetPathToErrorDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

Gets the path to the error directory from the ini file.
pbstrDir
Path to the error directory

GetPathToProgDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

Gets the path to the prog directory from the ini file.
pbstrDir
Path to the prog directory

GetPathToReportsDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

Gets the path to the reports directory from the ini file.
pbstrDir
Path to the reports directory

GetPathToTableDirectory ([out] BSTR* pbstrDir);


Purpose
Parameters

To obtain the path to the directory where tables are stored.


pbstrDir
Directory path (as a string)

GetRebarTable_ConcBeam([out] long* pnNum, [out] SREIN_PROP** ppaReinProp);


Purpose

To get the concrete beam reinforcement information and identify which bars are used in
the concrete beam program.

Parameters
Comments

pnNum
Number of items in the ReinProp array.
ppaReinProp
The ReinProp array.
In SREIN_PROP data structure, the bool values indicate whether a bar is or is not used by
the beam program. TRUE means the program is considering that size.

GetRebarTable_ConcCol([out] long* pnNum, [out] SREIN_PROP** ppaReinProp);


Purpose
Parameters
Comments

To get the concrete column reinforcement information and identify which bars are used by
the concrete column program.
pnNum
Number of items in the ReinProp array.
ppaReinProp
The ReinProp array.
In SREIN_PROP data structure, the bool values indicate whether a bar is or is not used by
the column program. TRUE means the program is considering that size.

GetReinforcementTableName([out] BSTR* pbstrReinTable);


Purpose
Parameters

To retrieve the reinforcement table name.


pbstrReinTable
Reinforcement table name

GetReportDefaultColor ( [out] EWhichFontAndColor eWhich, [out] long plTitleColor );


Purpose
Parameters

To retrieve the reinforcement table name.


eWhich
EWhichFontAndColor
plTitleColor
Title color index

GetReportDefaultDestination ( [out] long plDestination );


Purpose
Parameters

To retrieve the report desitnation


plDestination
0 = Printer, 1 = Screen, 2 = Text File, 3 = Viewer
FIle

GetReportDefaultFont ( [out] EWhichFontAndColor eWhich, [out] long plfHeight, [out] long plfWidth, [out] long plfEscapement, [out] long
plfOrientation, [out] long plfWeight, [out] Byte pbyteItalic, [out] Byte pbyteUnderline, [out] Byte pbyteSrikeOut, [out] Byte pbyteCharSet,
[out] Byte pbyteOutPrecision, [out] Byte pbyteClipPrecision, [out] Byte pbyteQuality, [out] Byte pbyte PitchAndFamily, [out] BSRT
pbstrFontName );
Purpose
Parameters

To retrieve the report default font.


eWhich
EWhichFontAndColor
plfHeight
Height
plfWidth
Width
plfEscapement
Escapement
plfOrientation
Orientation
plfWeight
Weight
pbyteItallic
Itallic
pbyteUnderline
Underlin
pbyteSrikeOut
Strike out
pbyteCharSet
Char Set
pbyteOutPrecison
Out Precision
pbyteClipPrecision
Clip Precision

pbyteQuality
pbytePitchAndFamily
pbstrFontName

Quality
Pitch and Family
Font Name

GetReportDefaultMargins ( [out] double pdTopMar, [out] double pdBottomMar, [out] double pdLeftMar, [out] double pdRightMar );
Purpose
Parameters

To retrieve the report default margins.


pdTopMar
Top margin
pdBottomMar
Bottom margin
pdLeftMar
Left margin
pdRightMar
Right margin

GetReportDefaultPaperSize ( [out] double pdPageWidth, [out] double pdPageHeight, [out] long plPaperSize );
Purpose
Parameters

To retrieve the report default page size.


pdPageWidth
Page Width
pdPageHeight
Page Height
plPaperSize
Paper Size Index

GetReportDefaultUseLogo ( [out] long plLogo );


Purpose
Parameters

To retrieve the report default page size.


plLogo
1 = Use logo, 0 = No logo

GetSelectedTables ([out] BSTR* pbstrMasterTable, [out] BSTR* pbstrDeckTable, [out] BSTR* pbstrColumnTable, [out] BSTR*
pbstrDefBeamTable, [out] BSTR* pbstrAltBeamTable, [out] BSTR* pbstrDefSmartTable, [out] BSTR* pbstrAltSmartTable, [out] BSTR*
pbstrPanFormTable, [out] BSTR* pbstrReinforcement Table);
Purpose
Parameters

Get the names of the selected tables.


pbstrMasterTable
Master table name
pbstrDeckTable
Deck table name
pbstrColumnTable
Column table name
pbstrDefBeamTable
Default Beam table name
pbstrAltBeamTable
Alternate Beam table name
pbstrDefSmartTable
Default Smartbeam table name
pbstrAltSmartTable
Alternate Smartbeam table name
pbstrPanFormTable
Pan Form table name
pbstrReinforcement
Reinforcement table name

GetTimeDateStamp ([out] BSTR* pbstrTimeDateStamp);


Purpose
Parameters
Comments

Returns, as a string, the last time the model was modified.


pbstrTimeDateStamp String representation of the time date stamp
This method can be used to check when the model data was changed.

GetUnits ([out] long* pnUnits);


Purpose
Parameters

Get the units currently used for entering and displaying values. Note that this is not the
same as the database units that are always the same. See Database Units above.
pnUnits
Display and data entry units. 0 = English, 1 = SI, 2 = Metric

Comments

Keep in mind that the units returned by this function relate to the units that the user will
be entering values and the units that data will be displayed in RAM SS.

Reset ();
Purpose

Internal use only.

SetConcAnalysisState ();
Purpose

Internal use only.

SetConcreteBeamState ();
Purpose

Internal use only.

SetConcreteColumnState ();
Purpose

Internal use only.

SetINIFileName ();
Purpose

Internal use only.

SetMDFDrawingColor ();
Purpose

Internal use only.

SetRebarTable_ConcBeam ();
Purpose

Internal use only.

SetRebarTable_ConcCol ();
Purpose

Internal use only.

SetTimeDateStamp ();
Purpose

Internal use only.

IModelData2
Philosophy: (see ModelData1 above)
GetCanadaMatInfo ( [out] long* plRolledWCol,[out] long* plRolledWBeam,[out] long* plRolledWBrace, [out] long* plWWFCol,[out] long*
lWWFBeam,[out] long* plWWFBrace, [out] long* plHSSRectCol,[out] long* plHSSRectBeam,[out] long* plHSSRectBrace, [out] long*
plHSSRoundCol,[out] long* plHSSRoundBrace, [out] long* plChannelBeam,[out] long* plDoubleAngleBrace,[out] long* plClassHSS);
Purpose

Get Canada steel material grade to be used for each member type (e.g. use W grade for
beams, WT for built up beams etc).

Parameters

plRolledWCol
plRolledWBeam
plRolledWBrace
plWWFCol
plWWFBeam
plWWFBrace
plHSSRectCol
plHSSRectBeam
plHSSRectBrace
plHSSRoundCol
plHSSRoundBrace
plChannelBeam
plDoubleAngleBrace
plClassHSS

Rolled W grade
Rolled W grade
Rolled W grade
Built up column grade
Built up beam grade
Built up brace grade
HSS Rect grade
HSS Rect grade
HSS Rect grade
HSS Round grade
HSS Round grade
Channel beam grade
Double Angle grade
0 = Class C, 1 = Class H : Refer to CISC for definition of
difference between Class C and H, Hollow Sections

GetCanadaMatInfo2 ( [out] long* plRolledWCol,[out] long* plRolledWBeam,[out] long* plRolledWBrace, [out] long* plWWFCol,[out] long*
lWWFBeam,[out] long* plWWFBrace, [out] long* plHSSRectCol,[out] long* plHSSRectBeam,[out] long* plHSSRectBrace, [out] long*
plHSSRoundCol,[out] long* plHSSRoundBrace, [out] long* plChannelCol, [out] long* plChannelBeam, [out] long* plChannelBrace, [out]
long* plDoubleAngleCol, [out] long* plDoubleAngleBrace, [out] long* plTeeCol, [out] long* plTeeBrace, [out] long* plRodBarCol, [out] long*
plRodBarBrace, [out] long* plClassHSS);
Purpose
Parameters

Get Canada steel material grade to be used for each member type (e.g. use W grade for
beams, WT for built up beams etc).
plRolledWCol
Rolled W grade
plRolledWBeam
Rolled W grade
plRolledWBrace
Rolled W grade
plWWFCol
Built up column grade
plWWFBeam
Built up beam grade
plWWFBrace
Built up brace grade
plHSSRectCol
HSS Rect column grade
plHSSRectBeam
HSS Rect beam grade
plHSSRectBrace
HSS Rect brace grade
plHSSRoundCol
HSS Round column grade
plHSSRoundBrace
HSS Round brace grade
plChannelCol
Channel column grade
plChannelBeam
Channel beam grade
plChannelBrace
Channel brace grade
plDoubleAngleCol
Double Angle column grade
plDoubleAngleBrace
Double Angle brace grade
plTeeCol
Tee column grade
plTeeBrace
Tee brace grade
plRodBarCol
Round or Rectangular bar column grade
plRodBarBrace
Round or Rectangular bar brace grade
plClassHSS
0 = Class C, 1 = Class H : Refer to CISC for definition of
difference between Class C and H, Hollow Sections

GetCodeSelection ([out] BSTR* pbstr);


Purpose
Parameters

Get Current Code Selection.


pbstr
Code label

GetColBeamDsgnStatus ([out] long* plColDesStatus,[out] long* plBeamDesStatus);


Purpose
Parameters

Get the design status of the steel column and beam.


plColDesStatus
Status of the steel column design
0 = Not designed, 1 = Valid design, 2 = invalid design
plBeamDesStatus
Status of the steel beam design
0 = Not designed, 1 = Valid design, 2 = invalid design

GetConcSlabPropInfo ([in] long lConcSlabOrPropID, [in, out] SSlabProp* pSlabProp, [out,retval] long* plRetVal);
Purpose
Parameters

Get concrete slab properties.


lConcSlabOrPropID
conc slab Prop ID or concrete slab polygon ID
pSlabProp
conc slab Prop pointer
plRetVal
Error code. If value is non zero then check GetLastError

GetDBandLatStatus ([in] long lConcSlabOrPropID, [in, out] SSlabProp* pSlabProp, [out,retval] long* plRetVal);
Purpose
Parameters

Get the database and lateral status.


plDB_Status
Database status
plLatStatus
Lateral status

GetDeckPropInfo ([in] long lDeckOrPropID, [in, out] SDeckProp* pDeckProp, [out,retval] long* plRetVal);
Purpose
Parameters

Get Composite Deck properties.


lDeckOrPropID
Deck Prop ID
pDeckProp
Deck Prop pointer

GetDefaultColBeamFy ([out] double* pdDefaultColFy,[out] double* pdDefaultBeamFy);


Purpose
Parameters

Get the Fy default value used by the steel column and steel beam programs.
pdDefaultColFy
Default Fy for Steel Column
pdDefaultBeamFy
Default Fy for Steel Beam

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetEHotColdFormed ([out] long* plVal);


Purpose
Parameters

Get BS 5950 Hollow Sections setting.


plVal
0 = Cold Formed, 1 = Hot Finished

GetEuroCodeFactor ([out, size_is(,*plMax)] double** ppdEuroCodeFactor, [out] long *plMax);


Purpose
Parameters

Get Eurocode factors.


ppdEuroCodeFactor Partial Safety Factors Group.

plMax

*ppdEuroCodeFactor[0] Permanent Actions, Gamma Gsup


*ppdEuroCodeFactor[1] Permanent Actions, Gamma Ginf
*ppdEuroCodeFactor[2] Single Variable Load, Gamma Q
*ppdEuroCodeFactor[3] Multiple Variable Loads, Gamma Q
*ppdEuroCodeFactor[4] Resistance of Class 1,2 or 3, Gamma M0
*ppdEuroCodeFactor[5] Resistance to Buckling, Gamm M1, Psi
Group:
*ppdEuroCodeFactor[6] Psi0 for Reducible Live Load
*ppdEuroCodeFactor[7] Psi0 for Storage Live Load
*ppdEuroCodeFactor[8] - Reduction Factor for Vectorial Effect, Psi
Vector
Composite Beam Design Group:
*ppdEuroCodeFactor[9] - Shear Studs, Gamma v
*ppdEuroCodeFactor[10] - Structural Steel, Fundamental, Gamma a
*ppdEuroCodeFactor[11] Concrete, Fundamental, Gamma c
Number values returned

GetEuroRedFy ([out, size_is(,*plMax)] BOOL** ppbEuroRedFys, [out] long *plMax);


Purpose
Parameters

Get Design fy Reduce Fy based on thickness values.


ppbEuroRedFys
*ppbEuroRedFys[0] Column
*ppbEuroRedFys[1] Beam
*ppbEuroRedFys[2] Brace value:
0 = do not reduce
1 = reduce
plMax
Number values returned

GetFndForcesFromFlag ( [out] long* plForcesFrom );


Purpose
Parameters

Flag for foundation forces source.


plForcesFrom
0 = RAM Steel, 1 = RAM Concrete, 2 = steel from Steel,
concrete from Concrete

GetFoundationDesignValid ([out] BOOL* pbValid);


Purpose
Parameters

To get the flag that indicates if the foundation design is current and valid.
pbValid
The design flag.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLLRMethodChoices ([out] long* plLLRMethod,[out] long* plIBCLLRMethod);


Purpose
Get IBC or UBC Reduction Method.
Parameters

plLLRMethod
plIBCLLRMethod

For UBC code:


1 = Method 1,
2 = Method 2
For IBC code:
0 = General Method, 1 = Alternate Method

GetMatPerimeterInfo ([in] long lMatID, [in, out] SFoundationMatInfo *pdMatInfo, [out, retval] long *plRetVal);
Purpose
Parameters

Get information about a mat foundation. Specifically its offset from the base story.
lMatID
Mat Unique ID
pdMatInfo
Mat info struct returned
plRetVal
Error code. If value is non zero then check GetLastError

GetMemberIDArray ([in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in] EFRAMETYPE eGravOrLat, [in] long
lArraySize, [in, out] long* palMemberIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Get the Unique ID's for the member type in a pre-dimensioned array.
eMemberType
Member type (Must be specified)
eMatType
Material type - use ENoneMaterial when not applicable
eGravOrLat
Gravity or lateral - use MemberIsNone when not applicable
lArraySize
palMemberIDs array size used for verification check
palMemberIDs
Pre-dimensioned array used to return the member IDs
plRetVal
Error code. If value is non zero then check GetLastError

GetMemberOnStoryIDArray ([in] long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in]
EFRAMETYPE eGravOrLat, [in] long lArraySize, [in, out] long* palMemberIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Get the Unique ID's for the member type on a story in a pre-dimensioned array.
lStoryID
Story UniqueID or index number
eMemberType
Member type (Must be specified)
eMatType
Material type - use ENoneMaterial when not applicable
eGravOrLat
Gravity or lateral - use MemberIsNone when not applicable
lArraySize
palMemberIDs array size used for verification check
palMemberIDs
Pre-dimensioned array used to return the member IDs
plRetVal
Error code. If value is non zero then check GetLastError

GetMembersInPolygonIDArray ([in] long lPolygonID, [in] EUniqueMemberTypeID eMemberType, [in] EMemberInPolyCategory


eMemberCategory, [in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in] long lArraySize, [in, out] long*
palMemberIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Get list of members inside a polygon.


lPolygonID
Polygon Unique ID
eMemberType
Member type (Must be specified)
eMemberCategory
Category to consider. Members that pass through
polygon, end at polygon etc
bAcceptMembOnPolyEdge
true = Consider members that are on the edge of polygon

as inside polygon
Ignore members that are inside an opening or penetration
palMemberIDs array size used for verification check
Array that will be filled with ID's of all Members meeting
the criteria above
plRetVal
Error code. If value is non zero then check GetLastError
If either the beam or wall start or end is in the polygon, it will be added to the list
NOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat and
eAboveMemPolyCat
bExcludeIfInOpeningOrPenet
lArraySize
palMemberIDs

Comments

GetMembersInPolygonIDArrayAtStory ([in] long lPolygonID, [in] long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in]
EMemberInPolyCategory eMemberCategory, [in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in] long
lArraySize, [in, out] long* palMemberIDs, [out,retval] long* plRetVal);
Purpose
Parameters

Comments

Get list of members inside a polygon.


lPolygonID
Polygon Unique ID
lStoryID
Story unique ID
eMemberType
Member type (Must be specified)
eMemberCategory
Category to consider. Members that pass through
polygon, end at polygon etc
bAcceptMembOnPolyEdge
true = Consider members that are on the edge of polygon
as inside polygon
bExcludeIfInOpeningOrPenet Ignore members that are inside an opening or penetration
lArraySize
palMemberIDs array size used for verification check
palMemberIDs
Array that will be filled with ID's of all Members meeting
the criteria above
plRetVal
Error code. If value is non zero then check GetLastError
If either the beam or wall start or end is in the polygon, it will be added to the list
NOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat and
eAboveMemPolyCat

GetModelHas ([out] long* plModelHasSteelColumns,[out] long* plModelHasBeams, [out] long* plModelHasJoists,[out] long*
plModelHasSmartbeams);
Purpose
Parameters

To find out what type of members are used in the model.


plModelHasSteelColumns 1 = the model has steel columns, 0 = it does not
plModelHasBeams
This only refers to steel beams
1 = the model has steel beams, 0 = it does not
plModelHasJoists
1 = the model has steel joists, 0 = it does not
plModelHasSmartbeams
1 = the model has smartbeams, 0 = it does not

GetnCut ([out] long* plVal);


Purpose
Parameters

Get Canada parameters Built Up setting.


See Criteria Canada Parameters in RAM Manager
plVal
0 = Flame Cut edges, 1 = MIL Cut edges

GetNumAnalyzedLoadCases ( [out] long* plNum );


Purpose
Parameters

Get the number of analyzed load cases.


plNum
Number of cases

GetNumMembers ([in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in] EFRAMETYPE eGravOrLat, [in, out]
long* plNumMembers, [out,retval] long* plRetVal);
Purpose
Parameters

Returns the total number of the member type for full structure.
eMemberType
Member type (Must be specified)
eMatType
Material type - use ENoneMaterial when not applicable
eGravOrLat
Gravity or lateral - use MemberIsNone when not applicable
plNumMembers
Return total number of member type
plRetVal
Error code. If value is non zero then check GetLastError

GetNumMembersInPolygon ([in] long lPolygonID, [in] EUniqueMemberTypeID eMemberType, [in] EMemberInPolyCategory eMemberCategory,
[in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in, out] long* plNumMembers, [out,retval] long*
plRetVal);
Purpose
Parameters

Comments

Get total number of members that fall inside of a given polygon.


lPolygonID
Polygon ID
eMemberType
Member type (Must be specified)
eMemberCategory
Category to consider. Members that pass through
polygon, end at polygon etc
bAcceptMembOnPolyEdge
true = Consider members that are on the edge of polygon
as inside polygon
bExcludeIfInOpeningOrPenet Ignore members that are inside an opening or
penetration
plNumMembers
Number of members in polygon
plRetVal
Error code. If value is non zero then check GetLastError
If either the beam or wall start or end is in the polygon, it will be added to the list
NOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat and
eAboveMemPolyCat

GetNumMembersInPolygonAtStory ([in] long lPolygonID , long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in]
EMemberInPolyCategory eMemberCategory, [in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in, out]
long* plNumMembers, [out,retval] long* plRetVal);
Purpose
Parameters

Get total number of members that fall inside of a given polygon. 2.


lPolygonID
Polygon Unique ID
lStoryID
Unique ID of story to get members on
eMemberType
Member type (Must be specified)
eMemberCategory
Category to consider. Members that pass through
polygon, end at polygon etc
bAcceptMembOnPolyEdge
true = Consider members that are on the edge of polygon
as inside polygon
bExcludeIfInOpeningOrPenet Ignore members that are inside an opening or

Comments

penetration
plNumMembers
Number of members in polygon
plRetVal
Error code. If value is non zero then check GetLastError
If either the beam or wall start or end is in the polygon, it will be added to the list
NOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat and
eAboveMemPolyCat

GetNumMembersOnStory ([in] long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in]
EFRAMETYPE eGravOrLat, [in, out] long* plNumMembers, [out,retval] long* plRetVal);
Purpose
Parameters

Comments

Get the total number of the member type on a given story.


lStoryID
Story UniqueID or index number
eMemberType
Member type (Must be specified)
eMatType
Material type - use ENoneMaterial when not applicable
eGravOrLat
Gravity or lateral - use MemberIsNone when not applicable
plNumMembers
Return total number of member type
plRetVal
Error code. If value is non zero then check GetLastError
Works on the following eMemberTypes which are material dependent:
eTypeColumn, eTypeBeam, eTypeWall, eTypeBrace, eTypeFoundation, eTypeStory,
eTypeFloorType, eTypeDeckProp, eTypeSlabProp, eTypeDeckOrSlab
If an eMemberTypes is not supported the fundtion will return an error code and the
GetLastError will indicate that the Member Type is invalid.

GetNumSections ([out] long* plConcCol,[out] long* plOtherCol, [out] long* plConcBm,[out] long* plOtherBm, [out] long* plConcBrc,[out] long*
plOtherBrc);
Purpose
Parameters

Get the number sections defined for each member type listed below.
plConcCol
Number of concrete column sections defined.
plOtherCol
Number of other columns sections defined.
plConcBm
Number of concrete beams sections defined.
plOtherBm
Number of other beams sections defined.
plConcBrc
Number of concrete braces sections defined.
plOtherBrc
Number of other braces sections defined.

GetNumSlabsInSlabPerimeter ([in] long lMatID, [in, out] long* plNumSlabs);


Purpose
Parameters

Get number of Slab prop IDs that overlap a given mat perimeter.
lMatID
unique id of mat perimeter
plNumSlabs
number of eTypeFoundationMatSlab that overlap given mat
perimeter

GetPDelta ([out] BOOL* pbPDelta );


Purpose
Parameters

Determine if P Delta is selected in Frame.


pbPDelta
True if PDelta is selected

GetSelectedSteelJoistTables ([in, out] BSTR* pbstrDefStandardTableName, [in, out] BSTR* pbstrAltStandardTableName, [in, out] BSTR*
pbstrDefConstShearTableName, [in, out] BSTR* pbstrAltConstShearTableName, [out, retval] long* plRetVal);

Purpose
Parameters

Get the steel joist table names.


pbstrDefStandardTableName
pbstrAltStandardTableName
pbstrDefConstShearTableName
pbstrAltConstShearTableName
plRetVal

Default standard table name


Alternate standard table name
Default Constant Shear table name
Alternate Constant Shear table name
Error code. If value is non zero then check
GetLastError

GetSelfWeightIncludes ([out] long* plIncColSelfWeight,[out] long*plIncBeamSelfWeight,[out] long* plIncWallSelfWeight);


Purpose
Parameters

To get the self-weight flags for column, beams and walls.


plIncColSelfWeight
1 = include self-weight for columns, 0 = do not include self-weight
plIncBeamSelfWeight 1 = include self-weight for beams, 0 = do not include self-weight
plIncWallSelfWeight
1 = include self-weight for walls, 0 = do not include self-weight

GetSlabsInSlabPerimeterIDArray ([in] long lMatID, [in, out] long* palSlabIDs);


Purpose
Parameters

Get a list of Slab prop IDs that overlap a given mat perimeter.
lMatID
Mat perimeter unique ID
palSlabIDs
List of IDs of type eTypeFoundationMatSlab

ModelIsTensionOnly ([in, out] BOOL* pbTensionOnly, [out, retval] long* plRetVal)


Purpose

Find out if any tension only members exist. If they do, this is considered a tension only
model.
pbTensionOnly
TRUE = there exists at least one member that is tension only thus
the model is a tension only model.
plRetVal
Error code. If value is non zero then check GetLastError

Parameters

Reset ();
Purpose

Internal use only.

SetColBeamDsgnStatus ();
Purpose

Internal use only.

SetDBandLatStatus ();
Purpose

Internal use only.

SetEHotColdFormed ([in] long lVal);


Purpose
Parameters

Set BS 5950 Hollow Sections setting.


lVal
0 = Cold Formed, 1 = Hot Finished

SetEuroCodeFactor ();
Purpose

Internal use only

SetFoundationDesignValid ();

Purpose

Internal use only

SetGravityLoadFramingFlag ();
Purpose

Internal use only

SetnCut ();
Purpose

Internal use only

SetNumAnalyzedLoadCases ();
Purpose

Internal use only

IModelGeometry1
Philosophy: This interface is for accessing and setting information about the geometry of the model. This includes dimensions of members,
framing, story and floor type data. While information can be obtained on a member-by-member basis, all of the information relates to the
physicality of the model (rather than specific information about a member, such as material properties). The Member Data Interface is where
specific information about members can be found.
Comment 1: In the sections the Start of a member refers the end of the member that is closest to the bottom left corner of the model when
looking at the model in plan view. The End of a member refers to the end that is closest to the top right corner of the model.
Comment 2: Several of the original methods in IModelGeometry1 are no longer supported. The code will continue to work as it does currently
but these methods will not be modified or updated in any future releases. In the documentation below, these methods have been grayed out
and a note has been added intructing the user as to which method should be used in its place. It is not necessary to replace these methods in
exisiting code but new code should be written with the more current methods.
GetAllMemberIDsFor ([in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] long* lNumIDs, [out] long** ppalIDs);
Purpose
Parameters

Get all member IDs for a given member type and material type.
eMemType
Member type used to find members
eMaterial
Material type used to find members
lNumIDs
Number of members found.
ppalIDs
Array of IDs. Size of array is lNumIDs

GetBeamDepthFramingIntoColumn ([in] long lColID, [out] double* pdMaxMajorDepth, [out] double* pdMinMajorDepth, [out] double*
pdMaxMinorDepth, [out] double* pdMinMinorDepth);
Purpose

Get the max and minimum beam depths that are framing into a column. Note: The max
and min depths will be on opposite sides. So if a column has two beams of different
depths framing into one face and no beams framing into the opposite face, the min value

Parameters

will be zero.
lColID
pdMaxMajorDepth
pdMinMajorDepth
pdMaxMinorDepth
pdMinMinorDepth

Column Unique ID
Max beam depth framing into the major face of the column
Min beam depth framing into the major face of the column
Max beam depth framing into the minor face of the column
Min beam depth framing into the minor face of the column

GetBeamGeomInfo ([in] long lBeamID, [out] long* plBeamLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]
double* pdXStart, [out] double* pdYStart, [out] double* pdZStart, [out] double* pdXEnd, [out] double* pdYEnd, [out] double* pdZEnd, [out]
double* pdStartSupportX, [out] double* pdStartSupportY, [out] double* pdStartSupportZ, [out] double* pdEndSupportX, [out] double*
pdEndSupportY, [out] double* pdEndSupportZ, [out] double* pdStartCantLength, [out] double* pdMidSpanLength, [out] double*
pdEndCantLength);
Purpose
Parameters

Get beam Geometry information including its location in the 3D model.


lBeamID
Unique Beam ID
plBeamLabel
Beam Label as seen in model
peGravOrLat
Gravity or Lateral member
peMaterial
Material Type
pdXStart
Global X coordinate location at start of Beam These values are at
the end of the cantilever if the beam has one at the left end
pdYStart
Global Y coordinate location at start of Beam
pdZStart
Global Z coordinate location at start of Beam
pdXEnd
Global X coordinate location at end of Beam - These values are at
the end of the cantilever if the beam has one at the end
pdYEnd
Global Y coordinate location at end of Beam
pdZEnd
Global Z coordinate location at end of Beam
pdStartSupportX
Global X coordinate location of Support at start of Beam These
values are the same as pdXStart if beam does not have a cantilever
at its start
pdStartSupportY
Global Y coordinate location of Support at start of Beam
pdStartSupportZ
Global Z coordinate location of Support at start of Beam
pdEndSupportX
Global X coordinate location of Support at end of Beam - These
values are the same as pdX2 if beam does not have a cantilever at
its end
pdEndSupportY
Global Y coordinate location of Support at end of Beam
pdEndSupportZ
Global Z coordinate location of Support at end of beam
pdStartCantLength Cantilever length at start of Beam
pdMidSpanLength Middle span length
pdEndCantLength Cantilever length at end of Beam

GetBeamRigidLinkInfo ([in] long lBeamID, [out] double* dIX, [out] double* dIY, [out] double* dIZ, [out] double* dJX, [out] double* dJY, [out]
double* dJZ, [out] long* lIMemberID, [out] long* lJMemberID);
Purpose
Parameters

Determine rigid link end coordinates and supporting member IDs.


lBeamID
Unique ID of the beam
dIX
X coordinate at the supported end of the rigid link at the I
end of the beam

dIY
dIZ
dJX
dJY
dJZ
lIMemberID
lJMemberID

Y coordinate at the supported end of the rigid link at the I


end of the beam
Z coordinate at the supported end of the rigid link at the I
end of the beam
X coordinate at the supported end of the rigid link at the J
end of the beam
Y coordinate at the supported end of the rigid link at the J
end of the beam
Z coordinate at the supported end of the rigid link at the J
end of the beam
Unique ID of the member supporting the rigid link at the I
end of the beam
Unique ID of the member supporting the rigid link at the J
end of the beam

GetBeamSupportDims ([in] long lBeamID, [out] double *pdSuppLengthStart, [out] double *pdSuppWidthStart, [out] double *pdSuppLengthEnd,
[out] double *pdSuppWidthEnd);
Purpose
Parameters

Get dimensions of the member supporting the given beam.


lBeamID
Beams unique ID
pdSuppLengthStart Support Length parallel to beam span at start of beam
pdSuppWidthStart
Support width perpendicular to beam span at start of beam
pdSuppLengthEnd Support Length parallel to beam span at end of beam
pdSuppWidthEnd
Support width perpendicular to beam span at end of beam

GetBeamSupportInfo ([in] long IBeamID, [out] EUniqueMemberTypeID* peSupportTypeStart, [out] long* plSupportIDStart, [out]
EUniqueMemberTypeID* peSupportTypeEnd, [out] long* plSupportIDEnd);
Purpose
Parameters

Get information on the end supports of a beam.


IBeamID
Beam ID
peSupportTypeStart Support Type at start of Beam (i.e. Column, Beam, Wall)
plSupportIDStart
Member ID of support at start of beam
peSupportTypeEnd Support Type at end of Beam (i.e. Column, Beam, Wall)
plSupportIDEnd
Member ID of support at end of beam

GetBraceGeomInfo ([in] long lBraceID, [out] long* plBraceLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]
double* pdXTop, [out] double* pdYTop, [out] double* pdZTop, [out] double* pdXBottom, [out] double* pdYBottom, [out] double*
pdZBottom);
Purpose
Parameters

Get Brace Geometry information including its location in the 3D model.


lBraceID
Unique Brace ID
plBraceLabel
Brace Label as seen in model
peGravOrLat
Gravity or Lateral member
peMaterial
Material Type
pdXTop
Global X coordinate location at top of Brace
pdYTop
Global Y coordinate location at top of Brace
pdZTop
Global Z coordinate location at top of Brace

pdXBottom
pdYBottom
pdZBottom

Global X coordinate location at bottom of Brace


Global Y coordinate location at bottom of Brace
Global Z coordinate location at bottom of Brace

GetColIDAtBracedLevel ([in] long nStartColID, [in] EAXIS eAxis, [out] long* plTopStoryColID, [out] long* plBotStoryColID, [out] long*
plTopStoryNo, [out] long* plBotStoryNo);
Purpose

Parameters

Determine at which level up a column stack a beam (or slab) frames into the column axis
in question. Column is braced in axis by beam, wall, and/or slab. The angle at which a
beam is considered bracing a column (and if the deck/slab braces the column) is set by
the engineer in either the steel column program or the RAM Concrete Analysis module.
Change of angle or material up a column stack automatically results in the column being
considered braced.
nStartColID
Col ID for a column in the stack to look at
eAxis
Column local Axis to retrieve braced info about
plTopStoryColID
ID of the column at the top of the col stack braced in the nAxis.
Note that this is the col that is braced at its top.
plBotStoryColID
ID of the column at the bottom of the col stack braced in the nAxis.
Note that this is the col that is braced at its bottom.
plTopStoryNo
Story number of the top column
plBotStoryNo
Story number of the bottom column

GetColumnGeomInfo ([in] long lColumnID, [out] long* plColumnLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial,
[out] double* pdXBottom, [out] double* pdYBottom, [out] double* pdZBottom, [out] double* pdXTop, [out] double* pdYTop, [out] double*
pdZTop, [out] double* pdOrientation, [out] long * plAtFnd );
Purpose
Parameters

Get column geometry information.


lColumnID
Columns Unique ID
plColumnLabel
Column Label as seen in model
peGravOrLat
Gravity or Lateral member
peMaterial
Material Type
pdXBottom
Bottom of column global X coordinate location
pdYBottom
Bottom of column global Y coordinate location
pdZBottom
Bottom of column global Z coordinate location
pdXTop
Top of column global X coordinate location
pdYTop
Top of column global Y coordinate location
pdZTop
Top of column global Z coordinate location
pdOrientation
Major axis orientation in degrees. 0 degrees indicates that major
axis is parallel to global X-axis. Positive angle rotates column
counter-clockwise.
plAtFnd
0 Indicates column is not at a foundation level, 1 = Indicates
column is at foundation level

GetColumnLoadSharing ([in] long lColumnID, [out] long* plLoadSharing);


Purpose
Parameters

Indicates the type of deck the member is under. 2


lColumnID
Unique ID of the column
plLoadSharing
-1 = no deck

0 = the column is entirely under a two-way deck


1 = the columns ie entirely under a one-way deck
2 = the column is under both a two-way and a one-way deck.

GetColumnRigidLinkInfo ([in] long lColumnID, [out] double* dJX, [out] double* dJY, [out] double* dJZ, [out] long* lIMemberID, [out] long*
lJMemberID);
Purpose
Parameters

Determine rigid link end coordinates and supporting member IDs.


lColumnID
Unique ID of the column
dJX
X coordinate at the supported end of the rigid link at the J
end of the column
dJY
Y coordinate at the supported end of the rigid link at the J
end of the column
dJZ
Z coordinate at the supported end of the rigid link at the J
end of the column
lIMemberID
Unique ID of the member supporting the rigid link at the I
end of the column

GetColumnStack ([in] long IColID, [out] long* plNumInStack, [out] long** ppalStackIDs);
Purpose
Parameters

Get IDs for all the columns that are in the same stack as IMemberID.
IColID
Columns Unique ID
plNumInStack
Number of columns in column stack
ppalStackIDs
Array of unique IDs. Size of array is plNumInStack

GetColumnStackBetween ([in] long lColBotID, [in] long lColTopID, [out] long* plNumInStack, [out] long** ppalColIDs);
Purpose
Parameters

Get list of columns IDs between to given columns. This can be used to find the columns
that are between brace levels when there are dummy levels.
lColBotID
Top column unique ID
lColTopID
Bottom column unique ID
plNumInStack
Number of columns in list
ppalColIDs
Array of column unique IDs

GetColumnStackMatchMaterial ( [in] long lColID, [in, out] long* plNumInStack, [in, out] long** plStackIDs );
Purpose
Parameters

Comments

Get contiguous Column Stack with same material type as lColID.


IColID
Columns Unique ID
plNumInStack
Number of columns in column stack
ppalStackIDs
Array of unique IDs. Size of array is plNumInStack
This function is similar to GetColumnStack which does not check for material properties.

GetDeckInfo ([in] long lStory, [in] long lDeck, [out] BSTR* pbstrSize, [out] double* pdThickness, [out] long* plNumDeckPoints, [out] double**
ppadXpts, [out] double** ppadYpts, [out] double** ppadZpts, [out] long* plNumOpenings);
Purpose
Parameters

to get information about each deck.


lStory
Story number
lDeck
Deck number (on that specific story)
pbstrSize
Deck name

pdThickness
plNumDeckPoints
ppadXpts
ppadYpts
ppadZpts
plNumOpenings

Thickness of the deck


Number of points in the deck polygon
Array of doubles containing the X coordinates of the deck polygon
Array of doubles containing the Y coordinates of the deck polygon
Array of doubles containing the Z coordinates of the deck polygon
Number of openings in the deck

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetFloorTypeInfo ([in] long lFlrTypeNo, [out] BSTR * pbstrFlrTypeID, [out] long* plNumBeams, [out] long* plNumColumns, [out] long*
plNumWalls, [out] long * plNumFootings);
Purpose
Parameters

Get information for a given floor type.


lFlrTypeNo
Floor type index starting with 0
pbstrFlrTypeID
Floor type label
plNumBeams
Total number of beams in story
plNumColumns
Total number of columns in story
plNumWalls
Total number of walls in story
plNumFootings
Total number of Footings in story. Footings will only be used if there
are no columns, beams or walls below the footing

GetFootingGeomInfo ([in] long lFootID, [out] long* plFootLabel, [out] EMATERIALTYPES* peMaterial, [out] double* pdXStart, [out] double*
pdYStart, [out] double* pdXEnd, [out] double* pdYEnd, [out] double* pdLeft, [out] double* pdRight, [out] double* pd, [out] double*
pdBottom, [out] double* pdZ, [out] double* pdThick, [out] double* pdAngle);
Purpose
Parameters

Comments

Get spread and continuous footing geometry information.


lFootID
The unique Footing ID
plFootLabel
The label number in the RAM SS
peMaterial
Material Type
pdXStart
Start global X coordinate location
pdYStart
Start global Y coordinate location
pdZStart
Start global Z coordinate location
pdXEnd
End global X coordinate location
pdYEnd
End global Y coordinate location
pdZEnd
End global Z coordinate location
Assuming footing is parallel to the global X axis - Distance to footing
pdLeft
left edge from start point left to slab edge
pdRight
Distance to footing right edge from end point right to slab edge
pdTop
Distance to footing top edge from centerline
pdBottom
Distance to footing bottom edge from centerline
pdZ
Footing top of slab (TOS) elevation
pdThick
Footing thickness
Footing angle of rotation wrt global axis - Mostly required for spread
pdAngle
footings
Note1: For spread footings pdXStart, pdYStart, pdZStart and pdXEnd, pdYEnd, pdZEnd
will be identical.

Note2: As of 6/10/03 the footing dimensions are the default values and do not reflect the
footing final design dimensions

GetGridInfoForGridSys ([in] long lGridSysID, [out] SGridLineInfo* pXRadial, [out] SGridLineInfo* pYCircular);
Purpose
Parameters

Get the location of the grids in the grid system.


lGridSysID
Grid index number
pXRadial
X or Radial grid information
pYCircular
Y or Circular grid information

GetGridSysInfo ([in] long lGridSysID, [out] BSTR* pbstrLabel, [out] SGridSysType* peType, [out] double* pdXOffset, [out] double* pdYOffset,
[out] double* pdRotation, [out] long* plNumXRadialGrids, [out] long* plNumYCircularGrids);
Purpose
Parameters

Grid system information.


lGridSysID
Grid System index number
pbstrLabel
Grid system label
peType
Grid System type as eGridOrthogonal, eGridSkewed or
eGridRadial
pdXOffset
Global x offset of grid system
pdYOffset
Global Y offset of grid system
pdRotation
Global rotation of grid system
plNumXRadialGrids
Number of X or Radial Grids
plNumYCircularGrids
Number of Y or Circular Grids

GetGridSysLabelsAtStory ([in] long lStoryNoOrID, [in] double dXLoc, [in] double dYLoc, [out] long* plGrydSysID, [out] BSTR* pbstrXGridLabel,
[out] BSTR* pbstrYGridLabel);
Purpose
Parameters

Get the labels of the grid system intersection at a given story. If no grids are at the given
location the global location of the point is returned.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
dXLoc
Global X location of point
dYLoc
Global Y location of point
plGrydSysID
Grid system index number
pbstrXGridLabel
X or Radial Grid label at location
pbstrYGridLabel
Y or Circular grid label at location

GetIDForMemMatTypeAtStory ([in] long lStoryNo, [in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMatType, [out] long**
ppalUniqueIDs, [out] long* plListSize);
Purpose
Parameters

Get a list of unique IDs for a given member type and material type at a story
lStoryNo
Story number starting with 0 for the lowest story
eMemType
Member Type
eMatType
Material Type
ppalUniqueIDs
array of Unique IDs
plListSize
Number of unique IDs in halUniqueIDs

Comments

Starting with v9.0 use GetNumMembersOnStory( ) to get the member ids on a


story. For more information, see Getting Member Information.

GetIDForMemTypeAtStory ([in] long lStoryNoOrID, [in] EUniqueMemberTypeID eMemType, [out] long** ppalUniqueIDs, [out] long* plListSize);
Purpose
Parameters

Get all member IDs for a given member type at a story.


lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
eMemType
Member type used to find members
ppalUniqueIDs
Array of IDs. Size of array is plListSize
plListSize
Number of members found.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatWallGroupGeom ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [out] double *pdXCentroid, [out] double *pdYCentroid, [out] double
*pdZCentroid, [out] double *pdAngle, [out] long *plNumWallsColsInGroup, [out] long *palWallsColsListInGroup);
Purpose
Parameters

Get lateral wall group geometry info.


lStoryNoOrID
Story index starting with 0 for the first level or Story unique
ID (unique ID is preferred)
lWallGroupIndex
Wall group index number
pdXCentroid
Global X-coordinate location of wall group centroid
pdYCentroid
Global Y-coordinate location of wall group centroid
pdZCentroid
Global Z-coordinate location of wall group centroid
pdAngle
Angle defining major direction of wall
plNumWallsColsInGroup
Total number of walls and columns assigned to wall group
palWallsColsListInGroup
List of member Unique IDs for all walls and columns that
are part of the wall group at the given story. NOTE This
array must be dimensioned to a size of 99 before the
function is called. The function will then set the unique IDs
in the array and fill the unused spaces with a value of -1

GetListGridSysOn_InStory ([in] long lStoryNoOrID, [out] long** ppalGridSysID);


Purpose
Parameters

Get list of grid indexes for all grids that are on for a given story.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
ppalGridSysID
Array of grid indexes Array size is plNumGridSysStory

GetListGridSysOn_InFloorTyp ([in] long lFlrTypeNo, [out] long** ppalGridSysID);


Purpose
Parameters

Get list of grid indexes for all grids that are on for a given floor type.
Floor type number starting with 0 for the first one and going up
lFlrTypeNo
to (plNumFloorTypes 1) for the last floor type
ppalGridSysID
Array of grid indexes Array size is plNumGridSysFloorTyp

GetMemberID ([in] long lStoryNo, [in] long lMemNo, [in] EUniqueMemberTypeID eMemType, [out] long* plUniqueID);
Purpose
Parameters

Comments

Comments

Get the unique member ID given the member story info and member type.
lStoryNo
Story number starting with 0 for the lowest story and going up to the
(total number of stories 1)
lMemNo
Member index number starting with 0 and going up to (total number
of member at a given type in story 1)
eMemType
Member type
plUniqueID
Members Unique ID
VB/VBA users will need to use this method to get a member ID before they can get any
other information for that member because all the other Get ID methods dimension an
array inside DA and so are not supported by VB/VBA. C++ users can use any one of the
Get ID methods including the ones that dimension arrays inside the DA method.
Starting with v9.0 use GetNumMembers( ) to get the member ids. For more
information, see Getting Member Information.

GetMemberLocFromID ([in] long lUniqueID, [out] long * plStoryNo, [out] long* plMemNo, [out] EUniqueMemberTypeID* peMemType);
Purpose
Parameters

Get member index number, story, and type from a unique ID.
lUniqueID
Members Unique ID
plStoryNo
Story number starting with 0 for the first level
Member index number. This would be the value lMemNo that would
be sent into the method GetMemberID.
plMemNo
peMemType
Member type used to find members

GetMemberStoryLabelFromID (long lMemberID, BSTR* pbstrStoryName, long * plMemberLabel);


Purpose
Parameters

To get the story label given a member id.


lMemberID
A members unique id.
pbstrStoryName
Label for the story the member is on.
plMemberLabel
Label (number) for the given member. This is the same number
displayed to the screen by any view member number
command

GetNumBeamsOnStory ([in] long lStoryNo, [out] long * plNumBeams);


Purpose
Parameters
Comments

Get total number of beams on a story


lStoryNo
Story number starting with 0 for the first level
plNumBeams
Total number of beams in story
Starting with v9.0 use GetNumMembersOnStory( ). For more information see Get
Member Information.

GetNumDecksOnStory ([in] long lStory, [out] long* plNumDecks);


Purpose
Parameters

to get the number of decks on a given story.


lStory
Story number
plNumDecks
Number of decks on the given story.

GetNumFloorTypes ([out] long* plNumFloorTypes);


Purpose
Parameters
Comments

Total number of floor types defined in RAM Modeler


plNumFloorTypes Total number of floor type
Starting with v9.0 use GetNumMembers( )

GetNumGridSysInModel ([out] long* plNumGridSys);


Purpose
Parameters

Total number of grid systems defined in model.


plNumGridSys
Total number of grid systems defined in model

GetNumGridSysOn_InFloorTyp ([in] long lFlrTypeNo, [out] long* plNumGridSysFloorTyp);


Purpose
Parameters

Total number of grid systems that are visible (on) for a given floor type.
lFlrTypeNo
Floor type number starting with 0 for the first one and going
up to (plNumFloorTypes 1) for the last floor type
plNumGridSysFloorTyp
Total number of grid systems that are on given floor type

GetNumGridSysOn_InStory ([in] long lStoryNoOrID, [out] long* plNumGridSysStory);


Purpose
Parameters

Total number of grid systems that are visible (on) for a given story.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique
ID (unique ID is preferred)
plNumGridSysStory
Total number of grid systems that are on a given story

GetNumStories ([out] long* plNumStories);


Purpose
Parameters
Comments

Get number of story levels in model


plNumStories
Number of stories
Starting with v9.0 use GetNumMembers( ) to get the number of stories in the
model.

GetNumStoryPerimeters ( [in] long lStoryNoOrID, [out] long* plNumPerimeters );


Purpose
Parameters

Total number of grid systems that are visible (on) for a given story.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique
ID (unique ID is preferred)
plNumPerimeters
Total number of slab edge perimeters on a given story

GetStoryConcSlabThicknessArea ([in] long lStoryNoOrID, [out] long* plNumSlabAreas, [out] double** ppadThickness, [out] double**
ppadArea,[in] BSTR** ppbstrLabels);
Purpose
Parameters

Return total area and thickness for all concrete slabs on a story.
lStoryNo
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
plNumSlabAreas
Total number of unique slabs

ppadThickness
ppadArea
ppbstrLabels

List of slab thickness


List of slab areas
List of slab labels

GetStoryElevation ([in] long lStoryNoOrID, [out] double * pdStoryElev);


Purpose
Parameters

Get story elevation off the ground level. Sum of all the floor heights below and including
the given story.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
pdStoryElev
Story elevation from the ground level

GetStoryInfo ([in] long lStoryNo, [out] BSTR * pbstrStoryID, [out] BSTR * pbstrFloorID, [out] double* pdFlrHeight, [out] long* plNumBeams, [out]
long* plNumColumns, [out] long * plNumWalls, [out] long * plNumBraces, [out] long * plNumFootings);
Purpose
Parameters

Comments

Get information for a given story level.


lStoryNo
Story number starting with 0 for the first level and going up to
(plNumStories 1) for the top (roof) level
pbstrStoryID
Story Label
pbstrFloorID
Floor type label
pdFlrHeight
Story height
plNumBeams
Total number of beams in story
plNumColumns
Total number of columns in story
plNumWalls
Total number of walls in story
plNumBraces
Total number of braces in story
plNumFootings
Total number of Footings in story. Footings will only be used if there
are no columns, beams or walls below the footing
Starting with v9.0 use GetNumMembers( ) to get the member counts at a story.
FloorID and FloorHeight are still valid when accessed through this method.

GetStoryLabel ([in] long lStoryNum, [out] BSTR* pbstrStoryLabel);


Purpose
Parameters

Get story label


lStoryNum
pbstrStoryLabel

Story number starting with 0 for the first level and going up to
(plNumStories 1) for the top (roof) level
Story Label

GetStoryPerimeter ( [in] long lStoryNoOrID, [in] long lPerimeter, [out] long* pplXpts, [out] long* pplYpts, [out] long* pplZpts );
Purpose
Parameters

Total number of grid systems that are visible (on) for a given story.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique
ID (unique ID is preferred)
lPerimeters
Perimter index
pplXpts
Array of X coordinates for the perimeter indicies
pplYpts
Array of Y coordinates for the perimeter indicies
pplZpts
Array of Z coordinates for the perimeter indicies

GetStorySpliceInfo ([out] long* lNumStories, [out] long** ppalSplices);

Purpose
Parameters

Gets the splice flag for each story level.


lNumStories
The number of stories
ppalSplices
An array of values that indicate if the story is spliced.
1 = TRUE, there is a splice
0 = FALSE, there is not a splice

GetWallGeomInfo ([in] long lWallID, [out] long* plWallLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]
double* pdXTopStart, [out] double* pdYTopStart, [out] double* pdZTopStart, [out] double* pdXTopEnd, [out] double* pdYTopEnd, [out]
double* pdZTopEnd, [out] double* pdZBottomStart, [out] double* pdZBottomEnd, [out] long* plStartAtFnd, [out] long* plEndAtFnd);
Purpose
Parameters

Get wall geometry information.


lWallID
The unique Wall ID
plWallLabel
The label number in the RAM SS
peGravOrLat
Gravity or Lateral member
peMaterial
Material Type
pdXTopStart
Top start corner global X coordinate location
pdYTopStart
Top start corner global Y coordinate location
pdZTopStart
Top start corner global Z coordinate location
pdXTopEnd
Top end corner global X coordinate location
pdYTopEnd
Top end corner global Y coordinate location
pdZTopEnd
Top end corner global Z coordinate location
pdZBottomStart
Wall lower coordinate elevation corresponding to start corner
pdZBottomEnd
Wall lower coordinate elevation corresponding to end corner
plStartAtFnd
1= start of wall specified is at a foundation level
plEndAtFnd
1= end of wall specified is at a foundation level

GetWallLoadSharing ([in] long lWallID, [out] long* plLoadSharing);


Purpose
Parameters

Indicates the type of deck the member is under.


lWallID
Unique ID of the column
plLoadSharing
-1 = no deck
0 = the column is entirely under a two-way deck
1 = the columns ie entirely under a one-way deck
2 = the column is under both a two-way and a one-way deck.

GetWallSectionDimProps ([in] long lWallID, [out] double* pdThickness, [out] double* pdCrackSectFactor);
Purpose
Parameters

Get wall section dimension properties.


lWallID
The unique Wall ID
pdThickness
Wall thickness
pdCrackSectFactor
Cracked section factor used to reduce moment of inertia values

IsColumnAHanger ([in] long lColID, [out] BOOL* bHanger);


Purpose
Parameters

Determine if a column is a standard or hanging column.


lColID
Unique ID of the column
bHanger
1 if hanger, 0 if standard column

IsItAnOffsetColumn ([in] long lColID, [out] BOOL* pbOffsetCol);


Purpose
Parameters

Determine if a column is offset.


lColID
Unique ID of the column
pbOffsetCol
1 if it is offset, 0 if it is not offset

PointIsExposed ([in] long lStoryNoOrID, [in] double dX, [in] double dY, [retval, out] long * plPtExposed);
Purpose

Parameters

NOTE:

This function determines if a given point is attached to the diaphragm or not.


There are three possible scenarios:
1. the point is completely outside the diaphragm and therefore exposed.
2. the point is inside the diaphragm and also inside an opening and therefore exposed
3. the point is inside the diaphragm but not inside any opening and therefore NOT
exposed.
lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
dX
X-coord
dY
Y-coord
plPtExposed
0: If the point is exposed. (scenarios 1 and 2)
1: If the point is NOT exposed. (scenario 3)
Another way to think of this: If a point is exposed it is detached from the diaphragm. If a
point is not exposed it is attached to the diaphragm.

Reset ();;
Purpose

Internal use only.

IModelGeometry2
Philosophy: (see ModelGeometry1 above)
GetBeamSpanInformation ([in] long lBeamID, [out] double * pdLeftCantlLen, [out] double * pdMidSpanLength, [out] double *
pdRightCantlLength, [out, retval] long* plResult);
Purpose
Parameters

Get span lengths for beam.


lBeamID
pdLeftCantlLen
pdMidSpanLength
pdRightCantlLength
plResult

The unique beam ID


Length of left cantilever
Length of mid span
Length of right cantilever
0 = success, greater than 0 = an error occurred.

GetColumnSupportInfo ([in] long lColumnID, [in, out] long *plMemberID, [in, out] EUniqueMemberTypeID *peSupportType, [in, out] BOOL
*pbAtFoundation, [out,retval] long* plRetVal);
Purpose

Get the column's controlling support member. If there is more than one member

supporting the column, the order of priority is Column, Wall and then beam.
lColumnID
Column unique ID
plMemberID
ID of member supporting the column.
If multiple walls are located only one of them is returned
peSupportType
Support member type
pbAtFoundation
Indicates that the bottom of lColumnID is at the foundation
level
If a foundation is assigned to the bottom of the column then
the foundation ID and type will be returned
plRetVal
Error code. If value is non zero then check GetLastError

Parameters

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetFinalPolygonPointsArray ( [in] long lPolygonID,[out] long lPolygonIndex,[out] long lArraySize, [out] SCoordinate paLoc, [out] double, pdArea,
[out] double pdPerimeter, [out,retval] long* plRetVal );
Purpose

Get the column's controlling support member. If there is more than one member
supporting the column, the order of priority is Column, Wall and then beam.
lPolygonID
Polygon unique ID
lPolygonIndex
Polygon index
lArraySize
Size of the array of indices
paLoc
Array of indices
pdArea
Polygon area
pdPerimeter
Perimeter length
plRetVal
Error code. If value is non zero then check GetLastError

Parameters

GetFndDimensionInfo ([in] long lFndID, [out, retval] SFND_DATA* pfndData);


Purpose
Parameters

Get the foundation dimension and location info.


lFndID
Foundation Unique ID
pfndData
Foundation info struct

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetLatWallGroupGeom ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [out] long* plWallGroupLabel, [out] double *pdXCentroid, [out] double
*pdYCentroid, [out] double *pdZCentroid, [out] double *pdAngle, [out] long *plNumWallsInGroup, [out] long *plWallListInGroup, [out,
retval] long* plResult);
Purpose
Parameters

Get the information on a wall group.


lStoryNoOrID
Story index starting with 0 for the first level or Story unique ID
(unique ID is preferred)
lWallGroupIndex
Wall group index from 0 to total number of wall groups on story
plWallGroupLabel
Wall group label
pdXCentroid
Wall group Centroid location in the global X-axis
pdYCentroid
Wall group Centroid location in the global Y-axis
pdZCentroid
Wall group Centroid location in the global Z-axis
pdAngle
Wall group rotation angle with 0.0 degrees parallel to X-axis
plNumWallsInGroup
Total number of walls and columns in group
plWallListInGroup
List of unique IDs for all walls and columns in group. Array must
be dimensioned to be of size 100
plResult
Return error code.

GetMemberInfoAtColumn ([in] long lColumnID, [in] EDA_MEMBER_LOC eColumnEnd, [in] double dBeamToMajorFaceAngle, [out] long*
plColumnAboveID, [in] long lNumBeams, [out] BEAM_INFO_AT_COLUMN* paBeamAtColumn, [in] long lNumBraces, [out]
BRACE_INFO_AT_COLUMN* paBraceAtColumn);
Purpose
Parameters

Get information on members that are framing into column.


lColumnID
Column unique ID
eColumnEnd
Location of member -eTop = 10, eBottom = 20,
dBeamToMajorFaceAngle If angle between column major axis and beam is less than
or equal to the angle, the beam is assumed to be framing
into column major axis
plColumnAboveID
Unique ID of column framing into top of lColumnID
lNumBeams
Size of paBeamAtColumn
paBeamAtColumn
Array of information for beams framing into column
lNumBraces
Size of paBraceAtColumn
paBraceAtColumn
Array of information for braces framing into column

GetMemberInfoAtPointOnStory ( [in] double dx, [in] double dy, [in] long lStoryID, [in, out] EUniqueMemberTypeID* peSupportType, [in, out] long*
plSupportID, [out, retval] long* plRetval );
Purpose
Parameters

Comments

To determine the member that is located at a point in space on a story. 3.


dx, dy
Point in plan to locate member under
lStoryID
The story Unique ID
The type of member that is at this point in space on the story
peSupportType
provided (will return foundationType if nothing at the point).
plSupportID
The uniqueID of the member at the point (-1 if nothing there)
plRetval
This method searches for a support member in the following sequence: Column, beam,
wall.

GetNumFinalPolygonPoints ( [in] long lPolygonID, [out] long lPolygonIndex, [out] long plNumPoints, [out, retval] long* plRetval );
Purpose
Parameters

To determine the member that is located at a point in space on a story. 3.


lPolygonID
Polygon unique ID
lPolygonIndex
Polygon index
plNumPoints
Number of polygon indices
plRetval

GetNumFinalPolygons ( [in] long lPolygonID, [in] long lMaxNumEdges, [in] BOOL bAllowDuplicatePoints, [out] long plNumPolygons, [out, retval]
long* plRetval );
Purpose
Parameters

To determine the member that is located at a point in space on a story. 3.


lPolygonID
Polygon unique ID
lMaxNumEdges
Maximum number of edges
bAllowDuplicatePoints True if duplicate points are allowed
plNumPolygons
Number of polygons
plRetval

GettNumMembersAtColumn ( [in] long lColumnID, [in] EDA_MEMBER_LOC eColumnEnd, [in] double dBeamToMajorFaceAngle, [out] long*
plNumBeams, [out] long* plNumBraces);
Purpose
Parameters

Get the total number of members framing into the end of the column.
lColumnID
Column unique ID
eColumnEnd
Location of member -eTop = 10, eBottom = 20
dBeamToMajorFaceAngle If angle between column major axis and beam is less than or
equal to this angle, the beam is assumed to be framing into
column major axis
plNumBeams
Total number of beams framing into column
plNumBraces
Total number of braces framing into column

GetNumPolygonRawPoints ([in] long lPolygonID, [in] BOOL bClipToPerimeter, [in, out] long* plNumPoints, [out,retval] long* plRetVal);
Purpose
Parameters

Get the number of points that made of a polygon.


lPolygonID
Polygon ID
bClipToPerimeter
True = clip the raw polygon to the slab edge perimiter
plNumPoints
Number of Points that make up the polygon
plRetVal
Error code. If value is non zero then check GetLastError

GetPolygonPropID ([in] long lPolygonID, [in, out] long* plPropID, [in, out] EUniqueMemberTypeID* pePropertyType, [out,retval] long* plRetVal);
Purpose
Parameters

Comment

Returns the property ID that has been assigned to the polygon. This can only be used for
polygons that can have properties assigned to them.
lPolygonID
Polygon Unique ID
plPropID
Return Property ID. Set to -1 if the polygon does not have a property
pePropertyType
Return Property Type
plRetVal
Error code. If value is non zero then check GetLastError
Used for eTypeDeckOrSlab, eTypeSurfaceLoading, eTypeFoundationMatSlab.
Must check plPropID to make sure it is not -1 before using plPropID for any other
function calls

GetPolygonRawPointsArray ([in] long lPolygonID, [in] BOOL bClipToPerimeter, [in] long lArraySize, [in, out] SCoordinate* paLoc, [in, out]
double* pdArea, [in, out] double* pdPerimeter, [out,retval] long* plRetVal);
Purpose
Parameters

Get array of points defining the polygon.


lPolygonID
Polyon Unique ID
bClipToPerimeter
True = clip the raw polygon to the slab edge perimiter
lArraySize
Expected Size of paLoc
paLoc
Polygon corner coordinates
pdArea
Area of polygon
pdPerimeter
Perimiter length of polygon
plRetVal
Error code. If value is non zero then check GetLastError

GetWallSupportInfo ( [in] long lWallID, [out] EUniqueMemberTypeID peSupportTypeStart, [out] long plSupportIDStart, [out]
EUniqueMemberTypeID peSupportTypeEnd, [out] long plSupportIDEnd, [out,retval] long* plRetVal);
Purpose
Parameters

Get array of points defining the polygon.


lWallID
Wall unique ID
peSupportTypeStart
EUniqueMemberTypeID
plSupportIDStart
Start support unique ID
peSupportTypeEnd
EUniqueMemberTypeID
plSupportIDEnd
End support unique ID
plRetVal
Error code. If value is non zero then check GetLastError

IModelStatus1
Philosophy: ModelStatus keeps track of the interaction between the RAM Structural System modules. This interface is used to tell ModelStatus
when an action has occurred so it can track the impact on other modules. Modules also use this interface to find out if their status was changed
by another module.
ActionOccurred ();
Purpose

Internal use only.

ActionWithCountOccurred ();
Purpose

Internal use only.

DesignIsValid ( [in] WhichModule eWhich, [out] BOOL bDesignIsValid );


Purpose
Parameters

To find out the status of a module.


eWhich
Which module to get the status of.
bDesignIsValid True if design is valid

GetDispInterfacePointerByEnum ();

Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetNumOpeningChanges ();
Purpose

Internal use only.

GetNumWallChanges ();
Purpose

Internal use only.

GetOpeningChanges ();
Purpose

Internal use only.

GetWallChanges ();
Purpose

Internal use only.

InitializeModelStatus ();
Purpose

Internal use only.

IsModelDirty ();
Purpose

Internal use only.

KillModelStatus ();
Purpose

Internal use only.

RedesignMe ();
Purpose

Internal use only.

ReinTableChanged ();
Purpose

Reset ();

Internal use only.

Purpose

Internal use only.

ResetOpeningChanges ();
Purpose

Internal use only.

ResetWallChanges ();
Purpose

Internal use only.

ShowModStatDialogFor ();
Purpose

Internal use only.

WhatsMyStatus ( [in] WhichModule eWhich, [out] model_status* peStatus );


Purpose
Parameters

To find out the status of a module.


eWhich
Which module to get the status of.
peStatus
Status of the requested module.

IRamDataAccess2
Philosophy: To provide access to the version info for DataAccess.
IsModelInUse ([out, retval] long);
Purpose
reval

Determine if the model is in use by another application. 1.


1 if model is in use, 0 if not.

GetVersion ([out, retval] double *pdVersion);


Purpose
Parameters

Gets the versions of DataAccess being accessed. 1.


pdVersion
Version number, i.e. 9.01

ISteelColumnState
Philosophy: To provide information on the state of Steel Column
GetColAISCSelection ( [out] string *pbstrSection, [out] long *plStlColBS5950_2000, [out, retval] long *plRetVal );
Purpose
Parameters

Get the steel column code selection.


pbstrSection
Code selection label
plStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

GetColPlateInfo ( [out] double *pdPlateFPC, [out] double *pdPlateFy, [out] double *pdPlateMinFaceDim, [out] double *pdPlateMinSideDim, [out]
double *pdPlateIncDim, [out] double *pdPlateIncThick, [out] double *pdPlateMinFootPar, [out] double *pdPlateMinFootPerp, [out] double
*pdMinPlateFootDepth, [out, retval] long *plRetVal );
Purpose
Parameters

Get the baseplate criteria.


pdPlateFPC
Concrete compressive strength
pdPlateFy
Plate yield strength
pdPlateMinFaceDim
Minimum dimension from face of column
pdPlateMinSideDim
Minimum dimension from side of column
pdPlateIncDim
Plate dimension increment
pdPlateIncThick
Plate thickness increment
pdPlateMinFootPar
Minimum footing width parallel to the column
pdPlateMinFootPerp
Minimum footing width perpendicular to the column
pdMinPlateFootDepth Minimum footing depth
plRetVal
Error code. If value is non zero then check GetLastError

GetColumnSkipLoaded ( [out] BOOL *pbSkipLoaded, [out, retval] long *plRetVal );


Purpose
Parameters

Get the skip loading criteria.


pbSkipLoaded
True if skip loading is selected
plRetVal
Error code. If value is non zero then check GetLastError

GetDeckBracesColumn ( [out] long *plDeckBracesColumn, [out, retval] long *plRetVal );


Purpose
Parameters

Get the skip loading criteria.


plDeckBracesColumn 1 if deck braces column is selected, 0 if not
plRetVal
Error code. If value is non zero then check GetLastError

GetDispInterfacePointerByEnum ();
Purpose

Internal use only.

GetInterfacePointer();
Purpose

Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

GetMaxBraceAngle ( [out] double *pdVal, [out, retval] long *plRetVal );


Purpose

Maximum angle from column axis for which beam braces the column.

Parameters

pdVal
plRetVal

Maximum angle
Error code. If value is non zero then check GetLastError

GetMaxSplitReactionAngle ( [out] double *pdVal, [out, retval] long *plRetVal );


Purpose
Parameters

Maximum angle from column axis at which beam reaction is not split between column
sides.
pdVal
Maximum angle
plRetVal
Error code. If value is non zero then check GetLastError

GetNumColLines ( [out] long *plNumColLines, [out, retval] long *plRetVal );


Purpose
Parameters

The number of steel column lines.


plNumColLines
Number of steel column lines
plRetVal
Error code. If value is non zero then check GetLastError

GetPlateAISCSelection ( [out] string *pbstrSection, [out] long *plStlColBS5950_2000, [out, retval] long *plRetVal );
Purpose
Parameters

Get the base plate code selection.


pbstrSection
Code selection label
plStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

GetStlColBS5950200 ( [out] long *plVal, [out, retval] long *plRetVal );


Purpose

Get the base plate code selection.


plVal
1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

GetTrialSizeData ( [out] long *plNumTrialSizes, [out] BSTR *pbstrWTrialSize1, [out] BSTR *pbstrWTrialSize2, [out] BSTR *pbstrWTrialSize3,
[out] BSTR *pbstrTTrialSize1, [out] BSTR *pbstrTTrialSize2 , [out] BSTR *pbstrTTrialSize3, [out] BSTR *pbstrPTrialSize1, [out] BSTR
*pbstrPTrialSize2, [out] BSTR *pbstrPTrialSize3, [out] BOOL *pbUseTG1, [out] BOOL *pbUseTG2 , [out] BOOL *pbUseTG3, [out, retval] long
*plRetVal );
Purpose
Parameters

Trial group criteria.


plNumTrialSizes
pbstrWTrialSize1
pbstrWTrialSize2
pbstrWTrialSize3
pbstrTTrialSize1
pbstrTTrialSize2
pbstrTTrialSize3
pbstrPTrialSize1
pbstrPTrialSize2
pbstrPTrialSize3
pbUseTG1
pbUseTG2
pbUseTG3
plRetVal

Number of trial sizes


I Section trial group 1 label
I Section trial group 2 label
I Section trial group 3 label
Rectangular HSS trial group 1 label
Rectangular HSS trial group 2 label
Rectangular HSS trial group 3 label
Round HSS trial group 1 label
Round HSS trial group 2 label
Round HSS trial group 3 label
True if trial group 1 is selected
True if trial group 2 is selected
True if trial group 3 is selected
Error code. If value is non zero then check GetLastError

Reset ( );
Purpose

Internal use only.

SetColAISCSelection ( [in] string bstrSection, [in] long lStlColBS5950_2000, [out, retval] long *plRetVal );
Purpose
Parameters

Set the steel column code selection.


bstrSection
Code selection label
lStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

SetColPlateInfo ( [in] double dPlateFPC, [in] double dPlateFy, [in] double dPlateMinFaceDim, [in] double dPlateMinSideDim, [in] double
dPlateIncDim, [in] double dPlateIncThick, [in] double dPlateMinFootPar, [in] double dPlateMinFootPerp, [in] double dMinPlateFootDepth, [out,
retval] long *plRetVal );
Purpose
Parameters

Set the baseplate criteria.


dPlateFPC
Concrete compressive strength
dPlateFy
Plate yield strength
dPlateMinFaceDim
Minimum dimension from face of column
dPlateMinSideDim
Minimum dimension from side of column
dPlateIncDim
Plate dimension increment
dPlateIncThick
Plate thickness increment
dPlateMinFootPar
Minimum footing width parallel to the column
dPlateMinFootPerp
Minimum footing width perpendicular to the column
dMinPlateFootDepth
Minimum footing depth
plRetVal
Error code. If value is non zero then check GetLastError

SetColumnSkipLoaded ( [in] BOOL bSkipLoaded, [out, retval] long *plRetVal );


Purpose
Parameters

Set the skip loading criteria.


bSkipLoaded
True if skip loading is selected
plRetVal
Error code. If value is non zero then check GetLastError

SetDeckBracesColumn ( [in] long lDeckBracesColumn, [out, retval] long *plRetVal );


Purpose
Parameters

Set the skip loading criteria.


lDeckBracesColumn
1 if deck braces column is selected, 0 if not
plRetVal
Error code. If value is non zero then check GetLastError

SetMaxBraceAngle ( [in] double dVal, [out, retval] long *plRetVal );


Purpose
Parameters

Maximum angle from column axis for which beam braces the column.
dVal
Maximum angle
plRetVal
Error code. If value is non zero then check GetLastError

SetMaxSplitReactionAngle ( [in] double dVal, [out, retval] long *plRetVal );


Purpose
Parameters

Maximum angle from column axis at which beam reaction is not split between column
sides.
dVal
Maximum angle

plRetVal

Error code. If value is non zero then check GetLastError

SetPlateAISCSelection ( [in] string bstrSection, [in] long lStlColBS5950_2000, [out, retval] long *plRetVal );
Purpose
Parameters

Set the base plate code selection.


bstrSection
Code selection label
lStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

SetStlColBS5950200 ( [in] long lVal, [out, retval] long *plRetVal );


Purpose

Set the base plate code selection.


lVal
1 if BS 5950 2000, 0 if BS 5950 1990
plRetVal
Error code. If value is non zero then check GetLastError

SetTrialSizeData ( [in] long lNumTrialSizes, [in] BSTR bstrWTrialSize1, [in] BSTR bstrWTrialSize2, [in] BSTR bstrWTrialSize3, [in] BSTR
bstrTTrialSize1, [in] BSTR bstrTTrialSize2 , [in] BSTR bstrTTrialSize3, [in] BSTR bstrPTrialSize1, [in] BSTR bstrPTrialSize2, [in] BSTR
bstrPTrialSize3, [in] BOOL bUseTG1, [in] BOOL bUseTG2 , [in] BOOL bUseTG3, [out, retval] long *plRetVal );
Purpose
Parameters

Trial group criteria.


lNumTrialSizes
bstrWTrialSize1
bstrWTrialSize2
bstrWTrialSize3
bstrTTrialSize1
bstrTTrialSize2
bstrTTrialSize3
bstrPTrialSize1
bstrPTrialSize2
bstrPTrialSize3
bUseTG1
bUseTG2
bUseTG3
plRetVal

Number of trial sizes


I Section trial group 1 label
I Section trial group 2 label
I Section trial group 3 label
Rectangular HSS trial group 1 label
Rectangular HSS trial group 2 label
Rectangular HSS trial group 3 label
Round HSS trial group 1 label
Round HSS trial group 2 label
Round HSS trial group 3 label
True if trial group 1 is selected
True if trial group 2 is selected
True if trial group 3 is selected
Error code. If value is non zero then check GetLastError

ISteelColumnState2
Philosophy: To provide information on the state of Steel Column
BOOL bMakeBasePlateSquare
Purpose
Parameters

Get/set square baseplate criterion


bMakeBasePlateSquare Boolean input/output

RamDataAccess1
Philosophy: This interface is used exclusively for obtaining pointers to other interfaces.
GetInterfacePointer([in] REFIID riid, [out, retval] LPUNKNOWN* pVal);
Purpose
Parameters
Comments

Returns the pointer to a specific interface.


riid
Interface ID
pVal
Interface pointer is returned via this pointer
This method is used by C++ programs accessing the interfaces.

GetInterfacePointerByEnum ([in] EINTERFACES nInterface, [out, retval] LPUNKNOWN* pVal);


Purpose
Parameters
Comments

Get a DA interface pointer using the EINTERFACES enumerator.


nInterface
Interface enum
pVal
Returned interface
This should not be used for VB/VBA or macro languages

GetDispInterfacePointer ([in] REFIID riid, [out, retval] LPDISPATCH* pVal);


Purpose
Parameters
Comments

Get a DA interface pointer that can be used in automation compatible languages


using the EINTERFACES enumerator.
riid
Interface ID
pVal
Automation Compatible Interface pointer is returned via this pointer
This cannot be used by VB/VBA or macro languages

GetDispInterfacePointerByEnum ([in] EINTERFACES nInterface, [out, retval] LPDISPATCH* pVal);


Purpose
Parameters
Comments

Get a DA interface pointer using the EINTERFACES enumerator. This function


should be used for VB/VBA and macro languages.
nInterface
Interface enum
pVal
Automation Compatible Interface pointer is returned via this pointer
This is the method that VB/VBA or macro language users should use.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);


Purpose
Parameters

Comments

To get information about why a method failed.


pbstrShortError
Short message about the failure
pbstrLongError
Longer message about the failure
plErrorID
Error code
This method is implemented in each interface. Calling it from any interface will
return the last error regardless of which interface generated the error.

Common Structure Definitions


BAR_SPACING
Reinforcement spacing information for concrete column
Type

Variable Name

Comments

double
double
double
double
double
double
double
double
double
int
int
int
int
int
int
int
int
int

dClearCover
dFlexMax
dFlexMin
dReinMax
dReinMin
dSpiralMax
dSpiralMin
dTiesMax
dTiesMin
nClearCover
nFlexMax
nFlexMin
nReinMax
nReinMin
nSpiralMax
nSpiralMin
nTiesMax
nTiesMin

Reinforcement clear cover. User entered value. If set to zero, code value will be used.
Flexural reinforcement maximum spacing. User entered value. If set to zero, code value will be used.
Flexural reinforcement minimum spacing. User entered value. If set to zero, code value will be used.
Flexural reinforcement ratio maximum limit. User entered value. If set to zero, code value will be used.
Flexural reinforcement ratio minimum limit. User entered value. If set to zero, code value will be used.
Spiral maximum spacing. User entered value. If set to zero, code value will be used.
Spiral minimum spacing. User entered value. If set to zero, code value will be used.
Tie maximum spacing. User entered value. If set to zero, code value will be used.
Tie minimum spacing. User entered value. If set to zero, code value will be used.
Reinforcement clear cover. 0 = use code, 1 = use user value
Flexural reinforcement maximum spacing. 0 = use code, 1 = use user value
Flexural reinforcement minimum spacing. 0 = use code, 1 = use user value
Flexural reinforcement ratio maximum limit. 0 = use code, 1 = use user value
Flexural reinforcement ratio minimum limit. 0 = use code, 1 = use user value
Spiral maximum spacing. 0 = use code, 1 = use user value
Spiral minimum spacing. 0 = use code, 1 = use user value
Tie maximum spacing. 0 = use code, 1 = use user value
Tie minimum spacing. 0 = use code, 1 = use user value

BEAM_INFO_AT_COLUMN
Information on beam framing into column
Type

Variable Name

Comments

double
double
EBeamSpanType
EDA_MEMBER_LOC
long
long
long
long
long

dBeamColumnAngle
dVerticalSlopeAngle
eSpan
eSupportEnd
lBeamID
lColumnFace
lMajorMomFixed
lMinorMomFixed
lTorFixed

Angle in plan between beam and column relative to column major axis
Angle in vertical plane - positive indicates that the far end of brace is above the column joint
Left, middle, right of span. When there is a cantilever there will be two entries in joint data
Left or right end
Beams Unique ID number
1-Major top, 2-minor right, 3-major bottom, 4-minor left
0 = released, 1 = fixed
0 = released, 1 = fixed
0 = released, 1 = fixed

BRACE_INFO_AT_COLUMN
Information on brace framing into column
Type

Variable Name

Comments

double
double
EDA_MEMBER_LOC
long
long
long
long
long

dBraceColumnAngle
dVerticalSlopeAngle
eBraceEnd
lBraceID
lColumnFace
lMajorMomFixed
lMinorMomFixed
lTorFixed

Angle in plan between brace and column relative to column major axis
Angle in vertical plane positive indicates that the far end of brace is above the column joint
Bottom, Top
Brace Unique ID number
1-Major top, 2-minor right, 3-major bottom, 4-minor left
0 = released, 1 = fixed
0 = released, 1 = fixed
0 = released, 1 = fixed

EDA_REIN_PLACE_SET
Bar set information
Type

Variable Name

Comments

double
double
double
double

dAs_prv
dAs_Req
dBarSpacing
dCapacity

Provided area of reinforcement


Required area of reinforcement
Reinforcement spacing provided
Capacity of provided rebar

EDA_SEG_SET_INFO
Bar set placement location information
Type

Variable Name

Comments

BOOL
BOOL
double
double
double
double

bEndSup
bStartSup
dEndSeg
dMaxVal
dMinVal
dStartSeg

TRUE = There is a support at end of segment


TRUE = There is a support at start of segment
End segment location
Maximum value in segment
Minimum value in segment
Start segment location

SAnalysisCaseInfo
Analysis case information. Each load case will generate one or more analysis cases.
Type

Variable Name

Comments

BOOL

bAnalyzed

BOOL
BSTR
ELoadCaseType
EAnalysisSubType
long
long

bGenerated
bstrLabel
eLoadType
eSubType
lLoadCaseID
lUniqueID

True = Member Forces are available for this Analysis Case. In some situations, an analysis case can be
analyzed by one module but not another.
True = generated Analysis case. For positive, negative and Sum live load cases this would not be true.
Analysis load case label
Load case type for this analysis load case
Indicates the analysis sub type as positive, negative or sum
Load Case UID that the analysis load case originated from
Analysis Load Case UID.

SBAR_PATTERN
Bar Pattern definition
Type

Variable Name

Comments

BOOL
char
long
long
SREIN_PROP
SREIN_PROP

bValid
cPatternLabel
lGroupNumber
lUniqueID
rpLongBarReinProp
rpTieBarReinProp

TRUE if both bars appear in the Rein_prop table and they are both selected
Bar pattern label
Reference back to the pattern group to which this pattern belongs
Unique to each pattern this id number is never reused.
Longitudinal reinforcement properties
Transverse reinforcement properties

SBM_BAR_SET
Bar Set information. A bar set is a set of reinforcement bars that all have the same properties and are located in the same place.
Note there may be more than one bar set in a given location for longitudinal bars.
Type

Variable Name

Comments

BOOL
long
long
long
long
float
float
float
float
float
float
float
float
float
float
float

bSetPassed
eBarLayerLoc
eBarPlacement
eEndCondition
eStartCondition
fAs_prv
fAs_Req
fBarDepth
fBarSpacing
fCapacity
fDevelLength
fDevelLengthEnd
fDevelLengthStart
fEndLoc
fStartLoc
fTrueBarDepth

TRUE = bar set has passed design checks from start to end of bar set.
Cast to EBAR_PLACEMENT
Indicates if bar set is for top or bottom reinforcement . Cast to EBAR_PLACEMENT
Cast to EBAR_END_CONDITION
Cast to EBAR_END_CONDITION
Provided area of steel
Required area of steel
Reinforcement bar effective depth
Reinforcement spacing provided
Capacity of provided reinforcement
Bar development length
Development length for end of bar set
Development length for start of bar set
Same as fStartLoc
If value is different from dBarDepth then it is part of two layer set

long
long
long

lMaxBarsInLayer
lNumBars
lNumLayersOrLegs

long

lReinIndexNum

long

lSetID

Maximum number of bars in any layer if lNumLayersOrLegs = 2 and bar set is not transverse
Number of bars in bar set
Number of layers for multi layer reinforcement in beams Or number of shear legs if bar set is for transverse
reinforcement
Reinforcement bar index number used to find bar properties. lReinIndexNum can be used to directly index
into the array that is returned by GetRebarTable_ConcBeam
Bar set ID

SBM_BAR_SET_BSTR
Bar Set information string. A bar set is a set of reinforcement bars that all have the same properties and are located in the same
place. Note there may be more than one bar set in a given location for longitudinal bars.
Type

Variable Name

Comments

BSTR
long

bstrBarLabel
lSetID

Bar set label


Bar set ID

SBM_RES
Individual concrete beam span design results
Type

Variable Name

Comments

long
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float
float

eDeflectionResultsState
fBarSpacingBotLong
fBarSpacingSide
fBarSpacingTopLong
fBarSpacingTrans
fBotReinRatio
fBotReinRatioLoc
fClearCoverBottom
fClearCoverSide
fClearCoverTop
fDeflectionValueError
fdShearCheckLocFromFace
fTopReinRatio
fTopReinRatioLoc
fTorsionCapPrv
fTorsionCapReq
fTrueBarCoverBot
fTrueBarCoverTop

long
long

lBeamLineID
lBeamUniqueID

State of deflection results


Bottom longitudinal bar spacing
Side reinforcement spacing (not used in v8.0.2 or 8.1)
Top longitudinal bar spacing
Transverse bar spacing
Bottom reinforcement ratio
Location where fBotReinRatio was calculated
Clear cover to bottom bars
Clear cover to side bars
Clear cover to top bars
Deflection value error
Location of shear check from face of support
Top reinforcement ratio
Location where fTopReinRatio was calculated
Provided torsional capacity
Required torsional capacity
Same as fTrueBarCoverTop for bottom bars
True bar cover to top reinforcement calculated from actual clear cover, transverse reinforcement , longitudinal
top bar diameters and number of layers
Beam line ID
Unique Beam ID

float
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long

lBotLongBarSpacingError
lBotReinRatioComboID
lBotReinRatioError
lDeflectionErrror
lFlexBarBotError
lFlexBarTopError
lSideLongBarSpacingError
lSpanIndex
lStory
lTopLongBarSpacingError
lTopReinRatioComboID
lTopReinRatioError
lTorsionError
lTransBarError
lTransBarSpacingError
lTrueBarCoverBotError
lTrueBarCoverTopError

Design warning code associated with bottom bars spacing


Combo ID for max rein ratio
Similar to lTopReinRatioError for bottom bars
Deflection error code
Design warning code for bottom flexural reinforcement
Design warning code for top flexural reinforcement
Design warning code for Side reinforcement spacing (not used in v8.0.2 or 8.1)
Order of this beam in beam line starting with 0 for first beam
Story where beam line is located
Design warning code associated with top bars spacing
Combo ID for maximum reininforcement ratio
Design warning code associated with reinforcement ratio check
Design warning code for torsional capacity check
Design warning code associated with transverse bars
Design warning code associated with transverse bars spacing
Same as lTrueBarCoverTopError for bottom bars
Design warning code for fTrueBarCoverTop verses actual user defined bar cover

SBM_RES_BSTR
Beam design message strings.
Type

Variable Name

Comments

BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
BSTR
long

bstrBotCoveMsg
bstrBotLongBarSpacingMsg
bstrBotReinRatioMsg
bstrDeflectionMsg
bstrDesignMark
bstrFlexBarBotMsg
bstrFlexBarTopMsg
bstrSectionErrors
bstrSideLongBarSpacingMsg
bstrTopCoverMsg
bstrTopLongBarSpacingMsg
bstrTopReinRatioMsg
bstrTorsionMsg
bstrTransBarMsg
bstrTransBarSpacingMsg
lBeamUniqueID

Bottom cover message


Bottom longitudinal bar spacing message
Bottom reinforcement ratio message
Deflection message
Design Mark
Bottom flexural bar message
Top flexural bar message
Section error message
Side longitudinal bar spacing message
Top Cover spacing message
Top longitudinal bar spacing message
Top reinforcement ratio message
Torsion message
Transverse bar message
Transvers bar spacing message
Beam unique ID

SBML_RES
Concrete beam line design result which relate to all the beams in the beam line
Type

Variable Name

Comments

BOOL
BOOL
BOOL
BOOL

bLongBarCheckBot
bLongBarCheckTop
bReqFlxReinOnly
bTransBarCheck

double
long
long
long
long
long
long

dVersion
eResultState
eUserSpecState
lBeamLineID
lNumCantilevers
lNumSpans
lStory

Similar to bTransBarCheck for longitudinal bottom reinforcement


Similar to bTransBarCheck for longitudinal top reinforcement
TRUE = Only flexure required reinforcement data is available. There is no reinforcement avalable
TRUE = Transverse Reinforcement was checked but not optimized.
FALSE = Transverse Reinforcement was both optimized and checked
Data version number only to be used by RAM
Map to ERESULTS_STATE
EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design
Beam line number
Number of cantilevers in span
Total number of spans in beam line. Cantilever and back span are considered as one span
Story number starting with 0 for the first story

SCOL_PATRES
Concrete column bar pattern results
Type

Variable Name

Comments

BOOL
BOOL
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double

bAmplifyMoments_Major
bAmplifyMoments_Minor
dBarSpacingMaj
dBarSpacingMin
dBetad_Major
dBetad_Minor
dCapRatioMax
dCapRatioMnMaj
dCapRatioMnMin
dCapRatioPhiDsn
dCapRatioPhiPn
dCapRatioReqAxial
dCapRatioReqMMajorBot
dCapRatioReqMMajorTop
dCapRatioReqMMinorBot
dCapRatioReqMMinorTop
dClearCover
dCm_Major
dCm_Minor
dIg_Major

TRUE if moments were amplified per ACI 10.12.3


TRUE if moments were amplified per ACI 10.12.3
Longitudinal Bar spacing parallel to major direction
Longitudinal Bar spacing parallel to minor direction
Beta d per ACI-318 99 10.12.3 in major direction
Beta d per ACI-318 99 10.12.3 in minor direction
Controlling Axial Load / Biaxial Moment Capacity ratio. When > 1.0 column is over stressed
Nominal moment capacity in major direction
Nominal moment capacity in minor direction
Capacity reduction factor used for max capacity
Nominal reduced axial load capacity
Required axial capacity for controlling combo
Required Major moment at bottom capacity for controlling combo
Required Major moment at top capacity for Controlling combo
Required Minor moment at bottom capacity for controlling combo
Required Minor moment at top axial capacity for controlling combo
Bar clear cover to transverse reinforcement
Cm per ACI-318 99 10.12.3 in major direction
Cm per ACI-318 99 10.12.3 3 in minor direction
Ig (gross mom inert) per ACI-318 99 10.12.3 in major direction

double
double
double
double
double
double
double
double
double
double
double
double
double
double

dIg_Minor
dKlr_Major
dKlr_Minor
dLamdaNS_Major
dLamdaNS_Minor
dMaxTensionStressRatio
dPc_Major
dPc_Minor
dPu_Major
dPu_Minor
dReinRatio
dReinRatioMax
dReinRatioMin
dSPBeamCapMinMajor

double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double
double

dSPBeamCapMinMinor
dSPBMnBotMajorCCWDir
dSPBMnBotMajorCWDir
dSPBMnBotMinorCCWDir
dSPBMnBotMinorCWDir
dSPBMnTopMajorCCWDir
dSPBMnTopMajorCWDir
dSPBMnTopMinorCCWDir
dSPBMnTopMinorCWDir
dSPBMprBotMajorCCWDir
dSPBMprBotMajorCWDir
dSPBMprBotMinorCCWDir
dSPBMprBotMinorCWDir
dSPBMprTopMajorCCWDir
dSPBMprTopMajorCWDir
dSPBMprTopMinorCCWDir
dSPBMprTopMinorCWDir
dSPMnBottomMaj
dSPMnBottomMin
dSPMnColAboveMaj
dSPMnColAboveMin
dSPMnTopMaj
dSPMnTopMin
dSPMprBottomMaj
dSPMprBottomMin
dSPMprColAboveMaj
dSPMprColAboveMin
dSPMprTopMaj
dSPMprTopMin

Ig (gross mom inert) per ACI-318 99 10.12.3 in minor direction


KL/r ratio for major axis bending
KL/r ratio for minor axis bending
LamdaNS per ACI-318 99 10.12.3 3 in major direction
LamdaNS per ACI-318 99 10.12.3 3 in minor direction
Max bar tension stress ratio used for splice selection
Pc per 10.12.3 ACI-318 99 10.12.3 in major direction
Pc per 10.12.3 ACI-318 99 10.12.3 in minor direction
Factored Axial load for controlling slenderness case in major direction
Factored Axial load for controlling slenderness case in minor direction
Pattern reinforcement ratio
Max reinforcement ratio limit
Min reinforcement ratio limit
Controlling minimum total nominal capacity of concrete beams framing into the major axis faces of
the column
Same as above for minor face
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Counter Clockwise Orientation
Clockwise Orientation
Nominal unfactored flexural capacity of column at bottom in major direction
Nominal unfactored flexural capacity of column at bottom in minor direction
Nominal Major bending capacity at bottom of column above
Nominal Minor bending capacity at bottom of column above
Nominal unfactored flexural capacity of column at top in major direction
Nominal unfactored flexural capacity of column at top in minor direction
Probable unfactored flexural capacity of column bottom in major direction
Probable unfactored flexural capacity of column bottom in minor direction
Probable Major bending capacity at bottom of column above
Probable Minor bending capacity at bottom of column above
Probable unfactored flexural capacity of column at top in major direction
Probable unfactored flexural capacity of column top in minor direction

double
double
double
double
double
EDA_COL_COMBO_LOC
EDA_CONC_CODE
ECONC_FRAME_TYPE
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long
long

dSPVSeismicMaj
dSPVSeismicMin
dTorsionPhi
dTorsionPrvCap
dTorsionReqCap
eCapRatioComboLoc
eDsnCode
eFrameType
eSlenderClass_Major
eSlenderClass_Minor
lBarPatternID
lBarSpacingError
lCapRatioComboID
lCapRatioError
lCapRatioPatternID
lColumnID
lComboID_Major
lComboID_Minor
lErrorColumnVBeamMajor
lErrorColumnVBeamMinor
lNumShearSegments
lPatternDsnID
lReinRatioMaxComboID
lReinRatioMaxError
lReinRatioMaxPatternID
lReinRatioMinComboID
lReinRatioMinError
lReinRatioMinPatternID
lShearLegsParalellMaj
lShearLegsParalellMin
lSlenderness_klrError
lSlenderness_PuPcError
lSPSurfaceID
lSurfaceID
lTorsionComboID
lTorsionError
lTorsionPatternID

Calculated minimum shear capacity of column for special provisions


Calculated minimum shear capacity of column for special provisions
Torsion capacity reduction factor
Torsional provided section capacity
Torsional required capacity
Location along column where dCapRatioMax was calculated
Concrete design code used ACI318_99
Design frame type
Slender class if it must be considered (eSlenderType) slender in major axis
Slender class if it must be considered (eSlenderType) slender in minor axis
Bar Pattern Unique ID
Bar spacing error code
Load combination ID producing dCapRatioMax
Design warnings code encountered in capacity ratio calculation
Column pattern loading producing dCapRatioMax
Columns Unique ID
Load combo index for controlling slenderness case in major direction
Load combo index for controlling slenderness case in major direction
Design warning codes for Column v. Beam capacity check
Design warning codes for Column v. Beam capacity check
Number of transverse reinforcement bar sets SCOL_TRANSRES
Bar pattern design ID
ID of load combination producing dReinRatioMax
Design warnings encountered in max reinforcement ratio limit check
Column pattern loading producing dReinRatioMax
ID of load combination producing dReinRatioMin
Design warnings encountered in min reinforcement ratio limit check
Column pattern loading producing dReinRatioMin
Number of shear legs parallel to major axis
Number of shear legs parallel to minor axis
Design warning code associated with the KL/r check
Design warning code associated with the Pu/Pc ratio check
Interaction surface used for special provisions
Interaction surface Unique ID
Load combination producing dTorsionReqCap
Design warnings related to Torsional capacity check
Column pattern loading producing dTorsionReqCap

SCOL_PATRES_BSTR
Type

Variable Name

Comments

bstr
bstr

bstrBarSpacingMsg
bstrCapRatioMsg

Bar spacing design warning


Capacity ratio design warning

bstr
bstr
bstr
bstr
bstr
bstr
bstr
bstr
long
long

bstrErrorColumnVBeamMajor
bstrErrorColumnVBeamMinor
bstrReinRatioMaxMsg
bstrReinRatioMinMsg
bstrSlenderness_ klrErrorMsg
bstrSlenderness_PuPcErrorMsg
bstrSurfaceFile
bstrTorsionMsg
lColumnID
lPatternDsnID

Error strings for Column v. Beam capacity check in column major direction
Error strings for Column v. Beam capacity check in column minor direction
Reinforcement ratio max limit design warning
Reinforcement ratio min limit design warning
Slenderness kl/r check design warning
Slenderness Pu/Pc check design warning
Name of file containing interaction surface diagrams
Torsion capacity check design warning
Columns Unique ID
Bar pattern design ID

SCOL_RES
Concrete column result basic information
Type

Variable Name

Comments

double
long
long
long
long
long

dConcElasticMod
eCode
eResultState
eUserSpecState
lColumnID
lNumPatterns

Concrete modulus of elasticity


Maps to CODE. if eCode == NoCodeDefined, there is no final design
Maps to ERESULTS_STATE
EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design
Columns Unique ID
Indicates number of bar pattern results (SCOL_PATRES) available for column

SCOL_TRANSRES
Type

Variable Name

Comments

BOOL

bShearBarControlDirMaj

double
double
double
double
double
double
double
long
long
long
long
long
long
long
EDA_REIN_PLACE_SET

dShearConcCapMaj
dShearConcCapMin
dShearPhiReducFactor
dShearReqCapMaj
dShearReqCapMin
dShearStlCapMaj
dShearStlCapMin
eTransBarType
lColumnID
lCombo
lPattern
lPatternDsnID
lSegNumber
lShearError
ReinPlaceSet

TRUE = design controlled by major direction shear, FALSE = controlled by minor direction
shear
Major direction concrete capacity
Minor direction concrete capacity
Shear capacity reduction factor
Major direction shear forces
Minor direction shear forces
Major direction shear reinforcement capacity
Minor direction shear reinforcement capacity
Type of transverse reinforcing
Columns Unique ID
Load combo used to design this segment
Column pattern loading used to design this segment
Bar pattern design ID
This bar patterns segment number in column
Shear check design warning
Reinforcement placement info.

EDA_SEG_SET_INFO

SegSetInfo

Segment set information

SCOL_TRANSRES_BSTR
Type

Variable Name

Comments

BSTR
long
long
long

bstrShearMsg
lColumnID
lPatternDsnID
lSegNumber

Shear check design warnings.


Columns Unique ID
Bar pattern design ID
This bar patterns segment number in column

SComboParams_DA
Code specific input parameters used in load combination generator.
Type

Variable Name

Comments

BOOL
BOOL
BOOL
float
float
float
int
int
int
int

bCheckBoxArray
bLCaseSpcSetting
bUseOnly
fLCaseSpc1
fLCaseSpc2
fValues
nComboBox5Index
nComboBoxIndex
nNumVarsFor2
nNumVarsFor5

These are the settings for control 3 the table of check box values. There can be up to 9 check boxes.
This is used with control 4. A value of TRUE indicates that load case specific values are available.
This is used with control 4. A value of TRUE disables the Use Code option.
For Control 4. This is the first load case specific value.
For Control 4. This is the second load case specific value.
These are the values associated with control 1 in the load combo generator. There can be up to 10 control 1 values.
This is the setting for control 5 the drop down combo box for code for combinations
This is the setting for control 2 the drop down combo box for template
Number of entries for control 2
Number of entries for control 5

SConcScheduleMark
Concrete beam or column schedule mark for a member. Only available after the DXF schedule for the member type has be
generated
Type

Variable Name

Comments

BSTR
BSTR
EDXFMarkAssignedBy
long
long

bstrScheduleMark
bstrScheduleMarkPrevious
eMarkChangedBy
lMemberID
lTime

long

lTimePrevious

Concrete Schedule mark


Concrete Schedule previous mark
Mark assigned by
Member unique ID
Time stamp of when mark was assigned.
The time is the number of seconds after January 1, 1970 UTC.
In C++ projects use CTime
Time stamp of when previous mark was assigned.
The time is the number of seconds after January 1, 1970 UTC.
In C++ projects use CTime

SCoordinate
Concrete beam or column schedule mark for a member. Only available after the DXF schedule for the member type has be
generated
Type

Variable Name

Comments

double
double
double

dXLoc
dYLoc
dZLoc

X coordinate
Y coordinate
Z coordinate

SDeckProp
Composite one way steel deck properties
Type

Variable Name

Comments

BOOL
BSTR
double

bShoredConstruction
bstrDeckLabel
dAngle

double
double
double
double
double
double
double
double
double
double
double
double
long
long
long
long
int

dAreaOfConcInRibPerUnitLength
dAvgConcRibWidth
dConcStressCap
dConcThickAboveFlute
dDistBotDeckToConcCentroid
dNominalRibHeight
dRibSpacing
dSelfWeight
dStudDiameter
dStudLength
dStudStressCapacity
dUnitWeight
lCounter
lDeckType
lFibreType
lUniqueID
nFibreType

Shored Construction TRUE = shored


Label user provided for this individual Deck Property
This is the deck orientation angle. It is only filled if SSlabProp is filled using the DeckSlab polygon
UID. Otherwise it will be set to -1 to indicate that the value is unknown.
Area Of Conc In Rib Per Unit Length for ASD design only
Average Concrete Rib Width
Concrete Stress Capacity
Conc Thickness Above Flute/rib
Dist Bot Deck To Conc Centroid for ASD design only
Nominal Rib Height
Rib Spacing
Steel deck self weight (units pcf)
Stud Diameter
Stud Length
Stud Stress Capacity
Deck system self weight (units psf)
Number of times where property is assigned
Deck Table Index
Fibre Type
Property Unique ID
Fibre Type

SDIAGRAM
Analysis or design information used to generate a diagram. This data is similar to an envelope but only holds one value at a
location and not a max and min range of values. For example it can be used to define a moment, shear or deflection diagram.
Type

Variable Name

Comments

float
float
long

fLocation
fValue
lValueLC

Distance or location along member for values below


Value at fLocation
Load combination number (or other) that produced fValue. -1 indicates that load combo index number is not available.

SENVELOPE
Analysis and design data that is represented as a maximum and minimum envelope. This data is usually in an array of SEnvelope
structures which would represent the data along the members length.
Type

Variable Name

Comments

float
float
float
long
long

fLocation
fMax
fMin
lMaxLC
lMinLC

Distance or location along member for values below


Max. value at fLocation
Min. value at fLocation
Load combination number that produced fMax. -1 indicates that load combo index number is not available.
Load combination number that produced fMin. -1 indicates that load combo index number is not available.

SFND_CONT_REINF
Continuous foundation reinforcement information.
Type

Variable Name

Comments

double
double
double
double

m_dSecReinDepthBotX
m_dSecReinDepthBotY
m_dSecReinDepthTopX
m_dSecReinDepthTopY

Depth to the bottom bars in the X direction


Depth to the bottom bars in the Y direction
Depth to the top bars in the X direction
Depth to the top bars in the Y direction

SFND_DATA
Foundation information for spread and continuous foundations
Type

Variable Name

Comments

BOOL
BOOL
double
double
double
double
double
double
double
double
double
double
double
double
EMATERIALTYPES
long

bDesignDimensions
bUserDefined
dAngle
dBottom
dLeft
dLength
dRight
dThick
dTop
dX1
dX2
dY1
dY2
dZ
eMaterial
lLabel

TRUE = dimensions returned are from the design results


TRUE = the footing is user defined
angle of the footing w.r.t the global axis
distance from bottom edge of fnd to last supported member
distance from left edge of fnd to center line
length of footing. For spreads, this is top + bottom
distance from right edge of fnd to center line
thickness of the footing
distance from top edge of fnd to first supported member
Foundation location in plan
Foundation location in plan
Foundation location in plan
Foundation location in plan
z location of fnd in the global axis
Material type
Footing Number as displayed in RAM Foundation

SFND_ISO_REINF
Isolated foundation reinforcement information.
Type

Variable Name

Comments

BOOL
double
double
double
double
double
long
long
long
long

bSetResistsTension
dAs_prv
dAs_Req
dBarSpacing
dCapacity
dLength
lMaxBarsInLayer
lNumBars
lNumLayersOrLegs
lReinIndexNum

Flag for resists tension


Provided area of steel
Required are of steel
Bar spacing
Capacity
Length
Maximum number of bars in a layer
Number of bars
Number of layers or shear legs
Reinforcing index number

SFND_REINF_OTHER_DATA
Isolated foundation reinforcement information.
Type

Variable Name

Comments

BOOL
double
double
double

bHooked
dCoverBottom
dCoverSide
dCoverTop

1 if bars are hooked, 0 if not


Bar cover to bottom concrete face
Bar cover to side concrete face
bar cover to top concrete face

SForce
Internal member forces and moments. See IForces1 for sign convention
Type

Variable Name

Comments

double
double
double
double
double
double
double
long

dLocation
dMx_maj
dMy_min
dMz_Torsion
dVx_maj
dVy_min
dVz_Axial
lAnalysisCaseID

Location
Moment induced by a shearing force dVx_maj
Moment induced by a shearing force dVy_min
Torsion
Shear parallel to member major direction
Shear parallel to member minor direction
Axial force where Compression is positive
Analysis load case UID for this member forc results

Type

Variable Name

Comments

double
double
double

dX
dY
dZ

X coordinate
Y coordinate
Z coordinate

SForce3D
3D force location

SFoundationMatInfo
Mat foundation information
Type

Variable Name

Comments

double

dTopOfSlabOffset

Mat foundation datum from base of story

SGridLineInfo
Grid line information
Type

Variable Name

Comments

BOOL
BOOL
BOOL
BOOL
BOOL
BSTR
double
double
double
long

bExtMax
bExtMin
bLabelI
bLabelJ
bSnapTo
bstrLabel
dCoordinate
dExtMax
dExtMin
lID

TRUE = Limit grid line to maximum extent


TRUE = Limit grid line to minimum extent
TRUE = Add label at start of grid line
TRUE = Add label at end of grid line
TRUE = A snap point is provided for this grid if it intersects another grid with bSnapTo also set to true
Grid Label
Grid location from the grid system origin
Grid line maximum value
Grid line minimum value
Grid index number

SLoad
A single load associated with a load case. The units are based on the type of load. Point loads are in kips, line loads in kip/in
and surface loads in kip/in2
Type

Variable Name

Comments

double
double
double
double
double
double
long

dMx
dMy
dMz
dP
dVx
dVy
lLoadCaseID

Rotational force about the global X axis (Right hand rule for positive direction on all moments)
Rotational force about the global Y axis
Rotational force about the global Z axis
Downward acting force (positive loads are downward)
Force parallel to global X axis (positive in global X direction)
Force parallel to global Y axis (positive in global Y direction)
Load case UID for this load

SLoadCase_CmbGen_DA
Load case information for generated load combinations
Type

Variable Name

Comments

BOOL
unsigned char
unsigned char

bUseFlag
cLabel
cSymbol

unsigned char
unsigned char
float

cTmpleCaseCode
cType
fLCaseSpecific

Flag indicating if this case has been selected for use in combination generation
String label that identifies the load case. This label CANNOT be used to uniquely identify a load case.
Symbol used to represent this load case in the load combinations (D, Lp, W1, W2, E1, E2). This symbol
uniquely identifies the load case.
Symbol used to represent this category of load case in the template file (D, Lp, W, E)
String that indicates the type of load.
Used for Use Calculated for Rho for appropriate codes

float
float
float
int

fLCaseSpecificX
fLCaseSpecificY
fLoadCaseAngle
nAnalyzeNo

int
int
int

nDirOfLoadInX
nDirOfLoadInY
nLCaseIndex

Parameter applied to load in the X direction as indicated by the combo generator


Parameter applied to load in the Y direction as indicated by the combo generator
Angle that resultant force acts on the structure w.r.t the global axes.
Index into the member forces array. If this is -1 it means that the load case is not analyzed and therefore does
not have member forces associated with it.
Direction indicator 0 = no load in X, 1 = pos X, -1 = Neg X
Direction indicator 0 = no load in Y, 1 = pos Y, -1 = Neg Y
Load Case index

SLoadCaseInfo
Load case properties
Type

Variable Name

Comments

BOOL
BSTR
EFRAMETYPE
ELoadCaseType
long

bGenerated
bstrLabel
eFrameType
eLoadType
lUniqueID

True = generated load case


Load case string label
EFRAMETYPE Load case to be used on lateral, gravity or either frame type
Load Case type
Load Case UID.

SLoadCombos_CmbGen_DA
Generated load combination data
Type

Variable Name

Comments

BOOL
BOOL
unsigned char

bTensionOnly
bUseFlag
cComboIncludes

unsigned char
float
int

cComboString
Factors
LoadCase

int
int
int

nComboNum
nStatus
NumTerms

Currently not used


Flag that indicates if this load combo is to be used.
String of symbols separated by commas. This can be used to quickly see which cases are included in a
combination.
String representation of the load combination
Array of up to 5 factors
array of up to 5 load case indices. The load case from this array combines with the factor in the Factors array to
create a load combo term.
Load combo number
0 = Unavailable, 1 = Available
Number of terms in the load combination

SNodalLoadData
Nodal load information
Type

Variable Name

Comments

BSTR
double
double
double
double
double
double

bstrLabel
dFx
dFy
dFz
dX
dY
dZ

Label user provided for this individual nodal load


Nodal Force in the global X directions
Nodal Force in the global Y directions
Nodal Force in the global Z directions
The x coordinate of the nodal load
The y coordinate of the nodal load
The z coordinate of the nodal load

SREIN_PROP
Concrete Reinforcement bar properties
Type

Variable Name

Comments

BOOL
BOOL
char
double
double

bFlex
bShear
cLabel
dArea
dDiameter

TRUE = Bar used for flexure


TRUE = Bar used for shear/torsion
Reinforcement bar label
Bar nominal area
Bar nominal diameter

SSECTIONS
Concrete Section properties
Type

Variable Name

Comments

char
char
float
BOOL

achPanLabelLeft
achPanLabelRight
Area
bUseFlangeThick

BOOL

bUseWidth

int
float
double
float
float
float
float
float
float
float
float

Counter
Depth
dPanDepth
fCrackedAxialFactor
fCrackedFlexureFactor
fCrackedTorsionFactor
FlangeThickness
fRightOH
Ix
Iy
J

Pan joist label used to create left side of section


Pan joist label used to create right side of section
Section area. (Value is not defined for Ts with missing flange dimensions and all pan joists)
TRUE = user defined Flange Thickness, FALSE = use calculated Flange Thickness based on member location and
connectivity in model
TRUE = user defined Width(s), FALSE = use calculated flange width based on member location and connectivity in
model. This is true for all Rectangular and circular section. It is false for all pan joists and T sections where the user has
not explicitly defined the flange overhangs.
Counter indicates how many members are using this section.
Depth of rectangular section, Total depth of T section, do not use this value if the section is a Pan section
Web depth from bottom of flange to bottom of web.
Cracked section factor used to reduce area
Cracked section factor used to reduce flexural moment of inertia values
Cracked section factor used to reduce torsional moment of inertia values
Flange thickness for T sections where flange is defined
Right Overhang, used only for Beam T-Sections where the user has defined the flange overhangs.
Major axis bending moment of inertia (Value is not defined for Ts with missing flange dimensions and all pan joists)
Minor axis bending moment of inertia (Value is not always defined)
Torsional constant of section. (Value is not defined for Ts with missing flange dimensions and all pan joists)

long
float
float
char
int
float
float

lUniqueID
SAx
SAy
SectionName
Shape
WebThickness
Width

Section property unique ID


Major axis effective shear area (Value is not defined for Ts with missing flange dimensions and all pan joists)
Minor axis effective shear area (Value is not defined for Ts with missing flange dimensions and all pan joists)
Section label. Can be a total of 15 characters
Variable maps to ECONC_OTHER_SEC
Web thickness for T sections
Width of rectangular section, Diameter of circular section, Left overhang if T Section

SSlabProp
Concrete slab properties assigned to elevated floors and mat foundations
Type

Variable Name

Comments

BSTR
double
double
double
double
long
int

bstrLabel
dAngle
dOffsetFromTOS
dSelfWeight
dThickness
lUniqueID
nCounter

Label user provided for this individual Slab Property


Deck angle for one way deck span
Slab offset from story or mat foundation top of slab
Slab self wight in lb/sf
Slab thickness
Slab Property unique ID
Number of times where property is assigned

Common Enumerator Definitions

COMBO_MATERIAL_TYPE
Type of load combination.

Value

Description

ANALYSIS_CUSTOM
CONC_SHEAR_WALL_CUSTOM
CONC_SHEAR_WALL_GEN
FND_CONCRETE
FND_CUSTOM_CONC
FND_CUSTOM_SOIL
FND_SOIL
NONE_DEFINED
RAM_CONCRETE
RAM_CONCRETE_CUSTOM
STEEL_CUSTOM
STEEL_GRAV
STEEL_SPEC
STEEL_SPEC_CUSTOM
STEEL_STAND

RAM Frame custom combos


RAM Concrete Shear Wall custom combos
RAM Concrete Shear Wall generated combos
RAM Foundation generated concrete combos
RAM Foundation custom concrete combos
RAM Foundation custom soil combos
RAM Foundation generated soil combos
No combinations defined
RAM Concrete generated combos
RAM Concrete custom combos
RAM Frame Steel custom combos
RAM Steel gravity load combinations.
RAM Frame Steel Special provisions generated combos
RAM Frame Steel Special provisions custom combos
RAM Frame Steel Standard provisions generated combos

E_BARLAYERS_OPTION
Bar layers option for concrete members.

Value

Description

BarLayers1Only
BarLayers2Allowed
BarLayersUseDefault

Use only one layer of bars


Allow up to 2 layers of bars
Use global default for number of layers of bars

E_BARSIZE_OPTION
Bar size option for concrete members.

Value

Description

BarSizeUseDefault
BarSizeUseDefined

Use global default for bar size


Use assigned bar size

E_COVER_OPTION
Clear cover option for concrete members.

Value

Description

CoverUseDefault
CoverUserDefined

Use global default for clear cover


Use user defined clear cover

E_GAP_OPTION
Gap option for space between longitudinal bar layers

Value

Description

GapUseDefault
GapUserDefined

Definition
Definition

E_LINKSPC_OPTION
Link spacing option for Chinese concrete members.

Value

Description

LinkSpacingUseDefault
LinkSpacingUserDefined

Use global default for link spacing


Use user defined link spacing

E_SHEARLEGS_OPTION
Shear legs option for concrete members.

Value

Description

ShearLegsUseDefault
ShearLegsUserDefined

Use global default for number of shear legs


Use user defined number of shear legs

E_STIRRUPS_OPTION
Stirrup option for concrete members.

Value

Description

Stirrups135Hook
StirrupsClose
StirrupsHoop
StirrupsOpen
StirrupsUseDefault

Design with 135 Hook stirrups


Design with Closed stirrups
Design with Hoop stirrups
Design with Open stirrups
Use global default

EAggregateType
Concrete aggregate type.

Value
eConcAggLWC
eConcAggNWC
eConcAggOther

Description
Light weight concrete
Normal weight concrete
Normal weight concrete

EAnalysisResultType
Module analysis results to be used for member internal forces.

Value
DefaultResultType
OtherResultType
RAMConceptResultType
RAMConcreteResultType
RAMFoundationResultType
RAMFrameResultType
RAMGravityResultType

Description
Results taken from most appropriate source based on members framing and material type.
(not yet implemented)
Results from RAM Concept Analysis (not yet implemented)
Results from RAM Concrete Analysis
Results from RAM Foundation Analysis (not yet implemented)
Results from RAM Frame Analysis
Results from RAM Steel Analysis

EAnalysisSubType
The load case sub type.

Value
AnalysisSum
Negative
NoSubType
Positive

Description
Sum case
Negative case
No sub type
Positive case

EAnalyzeFlag
Indicates if the corresponding member is to be optimized by RAM Structural System, or simply analyzed

Value
eAnalyze
eOptimize
eOptimizeStuds

Description
Design will be analyzed
Design will be optimized
Size will be analyzed, studs will be optimized (used only for beams)

EAxis
Used to indicate axis.

Value
EMajorAxis
EMinorAxis

Description
Specifies the major axis
Specifies the minor axis

EBarEndCondition
Reinforcement bar end condition or shape. Note this enum is not defined in DA it will need to be defined manually by user.

Value
eBarEndClosed
eBarEndContinuous
eBarEndHook135
eBarEndHook90
eBarEndHoop
eBarEndLapSpliced
eBarEndMechanical
eBarEndStraight
eBarEndU

Description
Closed stirrup
Continuous
135 Deg. hook
90 Deg. hook
Seismic Hoop Stirrup
Lap spliced bar
Mechanical connector
Straight
U Stirrup

EBeamConnectionType
Type of connection at the end of the beam in RAM Frame.

Value
eBCTCustom
eBCTNone
eBCTRBS

Description
Custom connection stiffness settings
No connection assigned
Reduced beam section

eBCTSidePlate
eBCTSpring

SidePlate connection
Spring connection

EBeamCoordLoc
Coordinate locations for the beam.

Value
eBeamEnds
eBeamSupports

Description
End location of the beam. Tip of cantilever if one exists. Otherwise
the end is the support location.
Support location of the beam.

EBeamFilter
Filter the for the collection of beams

Value
eBeamFilter_BeamLineNo
eBeamFilter_FrameType
eBeamFilter_Material
eBeamFilter_NoFilter

Description
Concrete beam line number
EFRAMETYPE
EMATERIALTYPES
Remove previous filters

EBeamSpan
Beam condition at a face of a column

Value
eBackspanBeam
eCantileverBeam
eNoBeam
eStubCantileverBeam

Description
Backspan of beam at column face
Cantilevered beam at column face
No beam at column face
Stub cantilever at column face

EBeamSpanType
Defines Part of beam span type.

Value
eLeftCantl
eMidSpan

Description
Left cantilever of beam
Beam mid span

eNoSpanDefined
eRightCantl

No span part defined An error could have been encountered


Right cantilever of beam

EBoundaryFlags
How the zone is to be handled in respect to concrete shear wall boundary element design.

Value
EBFMaybe
EBFNo
EBFYes

Description
No boundary but check
No boundary and do not check
Check boundary

EBuildingCode
List of building codes that can be used during design.

Value
eCodeAustralia
eCodeBOCA
eCodeBritish
eCodeCanada
eCodeChina
eCodeEurocode
eCodeHongKong
eCodeIBC_Alternate
eCodeIBC_General
eCodeSBC
eCodeUBC_Method1
eCodeUBC_Method2

Description
BOCA
BS 6399
NBC of Canada
GB 50009
Eurocode
HongKong
IBC Roof Live Load Reduction Alternate
IBC Roof Live Load Reduction General
SBC
UBC Roof Live Load Reduction Method 1
UBC Roof Live Load Reduction Method 2

ECANImportanceCategory
Importance Category for Live Load Reduction when NBC of Canada is selected as the Live Load Reduction code in the list of building
codes that can be used during design.

Value
eCANHigh
eCANLow
eCANNormal
eCANPostDisaster

Description
High
Low
Normal
Post-Disaster

EColumnFilter
Filter for the collection of columns.

Value
eColFilter_ColStack
eColFilter_FrameType
eColFilter_Material
eColFilter_NoFilter

Description
Column stack
EFRAMETYPE
EMATERIALTYPES
Remove previous filters

ECombinationSourceType
Indicates whether the combination is custom or generated.

Value
eCustomCombo
eCustomInternal
eGeneratedCombo
eGeneratedInternal

Description
Custom or user-defined load combination
Interanally defined custom load combination
Generated load combination
Internally defined generated combination

ECOMBOTYPES
Enumerates the RAM Frame combination types.

Value

Description

EFrameAnalysisCustomCombos
EFrameSteelSeismicCustomCombos
EFrameSteelSeismicGenCombos
EFrameSteelStdCustomCombos
EFrameSteelStdGenCombos

Custom combos in Analysis Load Combinations mode


Custom combos in Steel Seismic mode
Generated combos in Steel Seismic mode
Custom combos in Steel Standard mode
Generated combos in Steel Standard mode

ECompDeckPropsFilter
Filter by composite deck properties.

Value

Description

eCDPFilter_DeckType
eCDPFilter_NoFilter

Composite deck
Removes previous filters

ECompoundLoadCaseState
Indicates what the compound state of the load case.

Value
eCompoundLoadCase
eMergedLoadCase
ePrimaryLoadCase

Description
Compound load case
Merged load case
Load cannot be broken down into sub loads

ECONC_FRAME_TYPE
Concrete lateral frame type.

Value

Description

ConcFrameType_Intermediate Intermediate moment frame design


ConcFrameType_Ordinary
Ordinary moment frame design
ConcFrameType_Special
Special moment frame design

ECONC_OTHER_SEC
Concrete and Other section shapes.

Value
ECircle
ENone
EOther
EPanJoist
ERect
ET

Description
Circular section
No section
Other type not defined
Pan joist section (calculated by RAM Structural System)
Rectangular section
Tee section

EConceptConcSkipCase
Skip load cases from RAM Concept.

Value
eCCSkipFull
eCCSkipMaxMomMajor
eCCSkipMaxMomMinor

Description
Full loading
Maximum major moment
Maximum minor moment

eCCSkipMinMomMajor
eCCSkipMinMomMinor

Minimum major moment


Minimum minor moment

EConcSectPropsFilter
Concrete section property filter.

Value
eCSPFilter_MemType
eCSPFilter_NoFilter
eCSPFilter_Shape

Description
EUniqueMemberTypeID (beam, column, vertical brace)
Remove previous filters
ECONC_OTHER_SEC

ECptCksumStatusBits
Concept integration options for the story.

Value
eCCSDirectGravLoads
eCCSStructAboveStory
eCCSStructOnStory
eCCSTransferGravLoads
eCCSTransferlatLoads

Description
Direct gravity loads options
Structure above story options
Structure on story options
Transfer gravity loads options
Transfer lateral loads options

ECptStyTimeStampType
Concept integration time stamp options.

Value
eTSConceptMajorRead
eTSConceptMinorRead
eTSConceptWrite
eTSMajorChange1
eTSMinorChange1

Description
Major read from Concept
Minor read from Concept
Write to Concept
Major change
Minor change

EDA_COL_COMBO_LOC
Column evaluated combination results location along column length.

Value

Description

COMBO_AT_BOTTOM
COMBO_AT_END
COMBO_AT_SPAN
COMBO_AT_START
COMBO_AT_TOP

Combo value at bottom of column


Combo value at end of beam
Combo value along column span
Combo value at start of beam
Combo value at top of column

EDA_CONC_CODE
Concrete design code.

Value
eACI318_02
eACI318_05
eACI318_08
eACI318_11
eACI318_95
eACI318_99
eAS3600
eAS3600_09
eBS8110_97
eCanadian
eCP_65
eEuroCode
eGB50010
eNoCodeDefined

Description
ACI 318-02
ACI 318-05
ACI 318-08
ACI 318-11
ACI 318-95
ACI 318-99
AS3600-01
AS3600-09
BS 8110-97
Canadian
CP 65
Eurocode
GB 500010
No code selected

EDA_MEMBER_LOC
Location relative to a member. Some locations are not relevant to all members.

Value
eBottom
eBottomEnd
eBottomStart
eEnd
eEndSupportCantilever
eEndSupportMidSpan
eStart
eStartSupportCantilever
eStartSupportMidSpan

Description
Bottom of column or brace
Bottom end of wall
Bottom start of wall
End of member
Cantiliver end reaction at end support
Mid span reaction at end support
Start of member
Cantiliver end reaction at start support
Mid span reaction at start support

eTop
eTopEnd
eTopStart

Top of column or brace


Top end of wall
Top start of wall

EDBFieldType
Data types.

Value
E_DB_FIELD_BOOL
E_DB_FIELD_DATE
E_DB_FIELD_DOUBLE
E_DB_FIELD_LONG
E_DB_FIELD_STRING

Description
Boolean
Date
Double
Long
String

EDBRelationRule
Relation rule.

Value
E_DB_RELATION_CASCADE
E_DB_RELATION_DEFUALT
E_DB_RELATION_NONE
E_DB_RELATION_NULL

Description
Cascade
Default
None
Null

EDeckFilter
Filter by deck property.

Value
eDeckFilter_NoFilter
eDeckFilter_Type

Description
Remove previous filters
EDeckType

EDeckType
Type of deck.

Value
eDeckType_Composite
eDeckType_Concrete

Description
Composite Deck
Concrete Slab

eDeckType_NonComposite

Non-composite Deck

EDefaultOrAlternate
Whether the default table directory is used (Tables) or the alternate directory is used (Working)

Value

Description

eAlternate1
eDefault

Use alternate 1 directory


Use default directory

EDiaphragm
Type of diaphragm.

Value
eNoDiaphragm
eRigidDiaphragm

Description
No diaphragm
Rigid diaphragm

EDiaphragmDeckDirTypes
Type of decks contained in diaphragm.

Value
eDDDirTypeOneAndTwoWay
eDDDirTypeOnlyOneWay
eDDDirTypeOnlyTwoWay
eDDDirTypeUndefined

Description
Diaphragm contains one way and two way decks
Diaphragm only has one way decks
Diaphragm only has two way decks
Diaphragm has undefined deck type

EDiaphragmSource
Source of diaphragm information

Value
eDSFrameAnalysis
eDSModelData

Description
Diaphragm information comes from RAM Frame
Diaphragm information comes from model geometry

EDRAWINGCOLOR
Color that a member type is displayed in.

Value
eConcBraceColor
eConcGravBeamColor
eConcGravColColor
eConcGravWallColor
eConcJoistBeamColor
eConcLatBeamColor
eConcLatColColor
eConcLatWallColor
eDeckColor
eDiagramsColor
eFoundationColorColor
eGridLabelColor
eGridLineColor
eJoistColor
eLoadsColor
eOtherBraceColor
eOtherGravBeamColor
eOtherGravColColor
eOtherGravWallColor
eOtherLatBeamColor
eOtherLatColColor
eOtherLatWallColor
eSlabEdgeColor
eSlabOpenColor
eSmartbeamColor
eSteelBraceColor
eSteelGravBeamColor
eSteelGravColColor
eSteelLatBeamColor
eSteelLatColColor
eTextColor
eWebOpeningColor
eWestokCELLBEAMColor

Description
Concrete brace
Concrete gravity beam
Concrete gravity column
Concrete gravity wall
Concrete joist beam
Concrete lateral beam
Concrete lateral column
Concrete lateral wall
Deck
Diagram
Foundation
Grid label
Grid line
Steel Joist
Loads
Other brace
Other gravity beam
Other gravity column
Other gravity wall
Other lateral beam
Other lateral column
Other lateral wall
Slab edge
Slab opening
Smartbeam
Steel brace
Steel gravity beam
Steel gravity column
Steel lateral beam
Steel lateral column
Text
Web opening
Westok cellular beam

EDXFMarkAssignedBy
Member DXF schedule mark assigned by category.

Value

Description

DXFMarkGenRAMSS
DXFMarkother
DXFMarkUser

Mark generated by RAM SS


Mark assigend by other
Mark assigned by user

EEdge
Edges of a wall.

Value
eTopEdge
eBottomEdge

Description
Top edge of wall
Bottom edge of wall

EFieldType
Data type for field.

Value
eFTBool
eFTDouble
eFTLong
eFTString

Description
Define
Define
Define
Define

EFloorTypeElements
Various elements modeled on a floor type.

Value

Description

eFTEAll
eFTEBeamsJoists
eFTEColumns
eFTEDecks
eFTEGrids
eFTELoads
eFTENone
eFTEWalls

Combination of all of the above (except eFTENone).


Beams and joists
Columns
Decks
Grids.
Loads
None: do not use
Walls

EFloorTypeFilter
Filter for floor type.

Value

Description

eFTFilter_NoFilter
eFTFilter_UsedInStory

Remove previous filters


Filter for floor type used in story

EFndReinfLoc
Foundation reinforcement locations.

Value
eFRLLengthBottom
eFRLLengthTop
eFRLSide
eFRLWidthBottom
eFRLWidthTop

Description
Bottom Length
Top Length
Side
Bottom Width
Top Width

EFrameMemberForceSource
Concrete frame members gravity force source.

Value
eFMFSFrameAnalysis
eFMFSGravityAnalysis

Description
Gravity forces come from Frame analysis
Gravity forces come from Concrete analysis

EFRAMETYPE
Frame type.

Value
MemberIsEither
MemberIsGravity
MemberIsLateral
MemberIsNone

Description
Either type (cannot be used for assigning to a member)
Gravity member
Lateral member
Neither assigned (do not use)

EGRAVLOADTYPE
Gravity live load type.

Value

Description

EFloorLoad
ENonRedLoad
ERoofLoad
EStorageLoad

Reducible live load


Non-reducible live load
Roof live load
Storage live load

EGRAVPTLOADSOURCE
Source of point load on member.

Value

Description

EPtLoadFrameColTransferThruOneWaySlab
EPtLoadFromFrameBeamReact
EPtLoadFromFrameColReact
EPtLoadFromGravBmReact
EPtLoadFromGravColReact
EPtLoadGravColTransferThruOneWaySlab
EPtLoadPassedThruFrameWall
EPtLoadPassedThruGravWall
EPtLoadSourceUndefined
EPtLoadSSGhostBeamGeneratedInRG
EPtLoadUserApplied

Frame column transfer through one way deck


Point load from frame beam reaction
Point load from frame column reaction
Point load from gravity beam reaction
Point load from gravity column reaction
Gravity column transfer through one way deck
Pt load passed down through a frame wall
Pt load was passed down through a gravity wall
Unknown source for point load
Point load from ghost beam generated in RAM Gravity
User applied point load

EGridAxis
Type of grid.

Value
eGridXorRadialAxis
eGridYorCircularAxis

Description
X grid if in orthogonal grid system; Radial grid if in radial grid system
Y grid if in orthogonal grid system; Circular grid if in radial grid system

EGridFilter
Grid filter.

Value
eGFilter_GridAxis
eGFilter_NoFilter

Description
EGridAxis
Removes previous filter

EGridSystemFilter
Grid system filter.

Value
eGSFilter_NoFilter
eGSFilter_OrientationType

Description
Removes previous filter
SGridSysType

EHorizBraceFilter
Horizontal brace filter.

Value
eHBFilter_Material
eHBFilter_NoFilter

Description
EMATERIALTYPES
Removes previous filter

EINTERFACES
Enumerator used to get pointers to specific DA interfaces.

Value
IConcAnalysis1_INT
IConcAnalysisState_INT
IConcBeamState_INT
IConcBeamState2_INT
IConcCntlrCommon1_INT
IConcColModState2_INT
IConcept_INT
IConcreteModule_INT
IDatabase_INT
IDBIO1_INT
IForces_INT
IForces2_INT
IGravityLoads_INT
IGravitySteelDesign_INT
ILoading_INT
IMemberData_INT
IMemberData2_INT
IModel_INT

Description
IConcAnalysis1
IConcAnalysisState1
IConcBeamState1
IConcBeamState2
IConcCntlrCommon1
IConColModeState2
IConcept
IConcColModState1
IDatabase
IDBIO1
IForces1
IForces2
IGravityLoads1
IGravitySteelDesign1
ILoading1
IMemberData1
IMemberData2
IModel

IModelData_INT
IModelData2_INT
IModelGeometry_INT
IModelGeometry2_INT
IModelStatus_INT
IRamDataAccess2_INT
ISteelColumnState_INT
ISteelColumnState2_INT

IModelData1
IModelData2
IModelGeometry1
IModelGeometry2
IModelStatus1
IRAMDataAccess2
ISteelColumnState1
ISteelColumnState2

EIsolatedFndFilter
Isolated foundation filter.

Value
eIFFilter_NoFilter
eIFFilter_Type

Description
Spread footing
EIsolatedFndType

EIsolatedFndType
Type of foundation.

Value
elFndContinuous
eIFndSpread
eIFndPileCap

Description
Continuous footing
Spread footing
Pile cap footing

EJoistType
Type of steel joist.

Value
eJstCloseUniform
eJstCustom
eJstGirderClosePtLoads
eJstGirderEqualPtLoads
eJstKCS
eJstREquivalent
eJstSJIEquivalent
eJstSpecial

Description
Close enough to uniform load
Custom label, Uniform Load
Joist Girder, Close Enough to Equal Point Loads
Joist Girder, Equal Point Loads
KCS Joist
Equivalent Uniform Load, Ed Ryan (Vulcraft) method
Equivalent Uniform Load, SJI method
Special Joist

eJstStandard
eNotAJst

Standard joist with uniform load


Not a steel joist

EJstNonUniformLoadOption
Joist criteria option for joists with non-uniform loads.

Value

Description

eStlJstNonUniSelectFromCSTable Select joist sizes from Constant Shear table


eStlJstNonUniUseEquivalentMethod Use Uniform Equivalent Method to pick joist sizes
eStlJstNonUniUsexxGSP
Use xxGSP label

EJstUniformLoadOption
Joist criteria option for joists with uniform loads.

Value

Description

eStlJstUniSelectFromCSTable
Select joist sizes from Constant Shear table
eStlJstUniSelectFromStandardTable Select joist sizes from standard table
eStlJstUniUseCustomLabel
Use custom label for joist sizes

EKFAC_ASSIGN
Identifies what the current setting assigned to the column is for effective length.

Value
UseGlobalKFac
UseNomoForKFac
UseThis

Description
Use the global criteria for this column (in specified axis)
Use the nomograph for this column (in the specified axis)
Use the assigned K factor for this column (in the specified axis)

ELINELOADSOURCE
Identifies the source of the gravity line load on the member.

Value

Description

ELineLoadFromEdge
From slab edge
ELineLoadFromSurfaceLoad
From surface load
ELineLoadPassedThruFrameWall From frame wall above

ELineLoadPassedThruGravityWall From gravity wall above


ELineLoadSelfWeight
From self weight. Only includes for the member in question. Does not
include deck or supported wall self weight.
ELineLoadSourceUndefined
From unidentified source
ELineLoadUserApplied
From applied line load

ELoadCaseFilter
Load case type filter.

Value

Description

eLoadCaseFilter_FrameType
EFrameType
eLoadCaseFilter_GeneratesDesignForces Load case produces member forces (no Eigen, center of rigidity, etc.)
eLoadCaseFilter_NoFilter
Removes previous filters

ELoadCaseType
Type of load case

Value
BalancedLCa
ConstructionDeadLCa
ConstructionLiveLCa
DeadLCa
DynamicLCa
LiveLCa
LiveReducibleLCa
LiveRoofLCa
LiveStorageLCa
LiveUnReducibleLCa
MassDeadLCa
NotionalDeadLCa
NotionalLiveLCa
NotionalRoofLCa
OtherLCa
PartitionLCa
SeismicLCa
SnowLCa
VirtualLCa
WindLCa

Description
Balanced Load
Construction Dead Load
Construction Live
Dead Load
Dynamic Load
Live Load
Live Reducible
Live Roof Load
Live Storage
Live Unreducible
Mass Dead Load
Notional Dead Load
Notional Live Load
Notional Roof Load
Other Load
Partition Load
Seismic Load
Snow Load
Virtual Load
Wind Load

ELoadCombinationFilter
Load combination filter.

Value

Description

eLoadComboFilter_InclGravityOnly Combos that only contain gravity terms


eLoadComboFilter_InclLateral
Combos that contain lateral terms
eLoadComboFilter_NoFilter
Removes previous filters

EMATERIALTYPES
Type of material.

Value
EAnyMaterial
EConcreteMat
ENoneMaterial
EOtherMat
ESmartbeamBeamMat
ESteelJoistMat
ESteelMat
EWallPropConcreteMat
EWallPropOtherMat
EWestokCELLBEAMMat

Description
Any (cannot be used for assigning to a member)
Concrete
None or N/A (cannot be used for assigning to a member)
Other
Smartbeam
Steel Joist
Steel
Concrete Wall
Other Wall
Westok cellular beam

EMemberInPolyCategory
Category of members to look for in polygon.

Value
eAboveMemPolyCat
eBelowMemPolyCat
eEndMemPolyCat
ePassThroughMemPolyCat
eStartMemPolyCat

Description
Members that are in the story above polygon
Members that have thier start end inside the polygon
Members that end inside polygon
Members that pass through the level - Not implemented / future item
Members that start inside the given polygon (Not Implemented)

EMemberOrientation
Member orientation

Value
eOrientHorizontal
eOrientUnknown
eOrientVertical

Description
Horizontal orientation
Unknown orientation
Vertical orientation

EMemberSide
Side of a member something is associated with

Value
eMemBothSides
eMemLeftSide
eMemNoSide
eMemRightSide

Description
Both sides of member
Left side of member
Center of member
Right side of member

EMergeState
Flag that indicates if the load case is single, merged or included in a merge.

Value
eLoadCaseUsedInAMerge
eMergedLdCase
eSingleLoadCase

Description
Load case that is included in a merged load case.
Merged load case.
Single load case

EOtherSectPropsFilter
Filter for other type sections.

Value
eOPSFilter_MemType
eOPSFilter_NoFilter

EPartialReloadType
Partial reload of the database.

Description
EUniqueMemberTypeID (beams, columns, vertical braces).
Remove previous filters

Value
eReloadMDF
eReloadRAMFrameAnalysis

Description
Define
Define

EPileConfiguration
Pile group configuration.

Value
ePileConfig2PileGroup
ePileConfig5PileGroup
ePileConfig5SqrPileGroup
ePileConfig7PileGroup
ePileConfig8PileGroup
ePileConfigRectangular
ePileConfigTriangular

Description
Rectangular 2-pile Pile group
Rectangular 5-pile Pile group
Square 5-pile Pile group
Rectangular 7-pile Pile group
Rectangular 8-pile Pile group (piles not arranged in rows/columns)
Rectangular pile group (user defined number of piles)
Triangular 3-pile pile group configuration

ERawWallSectionCutFilter
Raw wall section cut filter.

Value
eRWSCFilter_Module
eRWSCFilter_NoFilter

Description
EWhichModule (Frame Shear Wall Forces or Concrete Shear Wall)
Remove previous filter

EReactionNodeFilter
Reaction node filter.

Value
eRNFilter_NoFilter
eRNFilterAtFoundation
eRNFilterNodeInSlabEdge
eRNFilterNodeSupportMember

ERoofLLType
Type of roof live load.

Description
Remove previous filter
Foundation nodes
Nodes within the slab edge
Nodes that support members above

Value
eRoofLoadsAreSnow
eRoofLoadsAreReducible
eRoofLoadsUnReducible

Description
Roof loads are snow
Roof loads are reducible
Roof loads are unreducible

ESeismicProvFrameType
Type of frame type for steel seismic provisions.

Value
eSP_CBF
eSP_CBF_K
eSP_CBF_V
eSP_EBF
eSP_IMF
eSP_NoFrameType
eSP_OMF
eSP_SCBF
eSP_SCBF_K
eSP_SCBF_V
eSP_SMF

Description
Ordinary concentrically braced frame
Ordinary concentrically braced frame K type
Ordinary concentrically braced frame V/Chevron type
Eccentrically braced frame
Intermediate moment frame
No frame type assigned
Ordinary moment frame
Special concentrically braced frame
Special concentrically braced frame K type
Special concentrically braced frame V/Chevron type
Special moment frame

ESIDESWAY_ASSIGN
Identifies what the current setting assigned to the column is for sidesway.

Value
ItIsBraced
ItIsUnbraced
UseGlobalSS

Description
The column is braced for this column (in the specified axis)
The column is unbraced for this column (in the specified axis)
Use the global criteria for this column (in specified axis)

ESlabActions
Identifies if the deck is one way or two way.

Value
eDSAOneWay
eDSATwoWay

Description
One way deck
Two way deck

ESMARTBEAMTYPE
Castellated or Celular (Smartbeam) beam type.

Value

Description

SMARTBEAM_CAST
SMARTBEAM_CELL

Castellated beam
Cellular beam

ESnowLoadType
Snow load type.

Value

Description

eSLTConstant
eSLTDrift

Constant Snow Load


Drift Snow Load

EStateStatus
Status of an items state.

Value
eStateCurrent
eStateNotAvail
eStateNotCurrent

Description
Items state is current
State is unavailable
Items state is not current

ESTEEL_ROLLED_FLAG
Roll flag for steel member

Value
EStlBuilt
EStlRolled

Description
Built up shape
Rolled shape

ESTEEL_SEC
Steel section shapes

Value
EStlChannel
EStlDoubleL

Description
Channel
Double Angle

EStlFlatBar
EStlLSection
EStlNone
EStlPipe
EStlRoundBar
EStlStar
EStlTSection
EStlTube
EStlWF

Flat Bar
Single Angle
No section
Round HS
Round Bar
Star seismic
T Section
Rectangular HS
I-Section (Wide Flange)

ESteelDesignCode
Design code for steel members.

Value
eAISC36005ASD
eAISC36010ASD
eAISC36005LRFD
eAISC36010LRFD
eAS4100_99
eASD
eBS5950_1990
eBS5950_2000
eCANCSA_1994
eEurocode3
eLRFD

Description
AISC 360-05 ASD
AISC 360-10 ASD
AISC 360-05 LRFD
AISC 360-10 LRFD
AS4100-99
ASD 9th Edition
BS5950:1990
BS5950:2000
CAN/CSA-S16.1-94
Eurocode
LRFD 3rd Edition

ESteelShapes
Steel section shapes.

Value
ESSChannel
ESSDoubleAngle
ESSFlatBar
ESSISection
ESSRectangularHS
ESSRoundBar
ESSRoundHS
ESSSingleAngle

Description
Channel
Double Angle
Flat Solid Bar
I-Section (wide flange)
Rectuangular Hollow Section
Round Solid Bar
Round Hollow Section
Single Angle

ESSTee
ESSUnknown

Tee
Unknown

ESubLoadCaseType
Source or Type of the ELoadCaseType

Value
eCenterOfRigidity
eEigen
eGeneratedStoryLoad
eGravityLoad
eImportedLoad
eNodalLoad
eNoSubType
eResponseSpectra
eUserDefinedStoryLoad

Description
Center of Rigidity
Eigen
Generated story load
Gravity load type
Imported load
Nodal load
No sub load type
Response Spectra
User defined story load

ETensionCompressionMemType
Indicates whether members takes tension, compression, or both.

Value
ECompressionOnlyMem
ETensionCompressionMem
ETensionOnlyMem

Description
Member takes compression only
Member takes both tension and compression
Member takes tension only

ETimeStampAction
Action for time stamp retrieval.

Value
eTSAdd
eTSDelete
eTSChange

Description
Add
Delete
Change

ETimeStampProperty
Property for time stamp retrieval.

Value
eTSFloorType
eTSNoProp
eTSReframeFlag
eTSSize

Description
Floor type
No particular property
Floor reframe
Member size

EUniqueMemberTypeID
Member type.

Value
eTypeAll
eTypeAnalysisCase
eTypeBeam
eTypeBrace
eTypeColumn
eTypeConcDeflCrit
eTypeConcSectionProp
eTypeCouplingBeam
eTypeDeckOrSlab
eTypeDeckProp
eTypeFloorOpening
eTypeFloorPenetrations
eTypeFloorPerimeter
eTypeFloorType
eTypeFoundation
eTypeFoundationLineLoading
eTypeFoundationMatPerimeter
eTypeFoundationMatSlab
eTypeFoundationPointLoading
eTypeFoundationSurfaceLoading
eTypeGrid
eTypeGridSystem
eTypeHorizontalBrace
eTypeLastType
eTypeLineLoading
eTypeLineLoadSetProp
eTypeLoadCase
eTypeMesh
eTypeNodalLoad

Description
All members
Member is an analysis case
Member is a beam
Member is a vertical brace
Member is a column
Member is a concrete deflection criteria
Member is a concrete section
Meber is a coupling beam
Member is a deck or slab
Member is a composite deck property set
Member is an opening in a floor (slab opening)
Member is a floor penetration
Member is a floor perimeter (slab edge)
Member is a floor type
Member is a foundation
Member is a foundation line load
Member is a mat foundation perimeter
Member is a mat foundation slab definition
Member is a foundation point load
Member is a foundation surface load
Member is a grid
Member is a grid system
Member is a horizontal brace
Member is last type
Member is a line load
Member is a line load property set
Member is a gravity load case
Member is a mesh
Member is a nodal load

eTypeNodalLoadProp
eTypeNode
eTypeNonCompDeckProp
eTypeNonComposite
eTypeNone
eTypeOther
eTypeOtherSectionProp
eTypePile
eTypePileConfiguration
eTypePointLoading
eTypePointLoadSetProp
eTypeSectionCut
eTypeSidePlate
eTypeSlabProp
eTypeSnowLoad
eTypeSnowLoadSetProp
eTypeSteelDeflCrit
eTypeStory
eTypeSurfaceLoading
eTypeSurfaceLoadSetProp
eTypeWall
eTypeWallOpening
eTypeWallRebar
eTypeWallSectionDsnCut

Member is a nodal load property set


Member is a node
Member is a noncomposite deck property set
Member is a noncomposite deck polygon
No type, or not applicable
Member is an Other section
Member is an Other section property
Member is a pile definition
Member is a pile configuration
Member is a point load
Member is a point load property set
Member is a section cut
Member is a SidePlate
Member is a concrete slab property set
Member is a snow load polygon
Member is a snow load property set
Member is a steel deflection criteria
Member is a story
Member is a surface load polygon
Member is a surface load property set
Member is a wall
Member is a wall opening
Member is wall reinforcing
Member is a wall design section cut

EUnits
Type of unit system.

Value
eUnitsEnglish
eUnitsMetric
eUnitsSI

Description
English units
Metric Units
SI Units

EUserOverride
Indicates if the corresponding value is user overridden

Value

Description

eUserNA

Not Applicable

eUserNo
eUserYes

Value is not overridden by user


Value is user defined or overridden

EVerticalBraceFilter
Vertical brace filter.

Value
eVBFilter_Material
eVBFilter_NoFilter

Description
EMATERIAL
Remove previous filters

EWallFilter
Wall filter.

Value
eWallFilter_FrameType
eWallFilter_Material
eWallFilter_NoFilter

Description
EFRAMETYPE
EMATERIAL
Remove previous filters

EWebOpenPosition
Position of web opening in beam web.

Value
eWebOpenCentered
eWebOpenOffsetToBot
eWebOpenOffsetToCenter
eWebOpenOffsetToTop

Description
Opening is centered in beam web
Opening position is offset from top of beam to bottom of opening
Opening position is offset from top of beam to center of opening
Opening position is offset from top of beam to top of opening

EWebOpenShape
Shape of web opening.

Value
eRectOpening
eCircularOpening

Description
Rectangular opening
Circular opening

EWhichFontAndColor
Font and color for reports.

Value
BodyFontColor
HeaderFontColor
HeadingFontColor
TitleFontColor

Description
Report body
Report header
Report heading
Report title

model_status
Status of a module.

Value

Description

ModelFailedToLoad
ModHadNO_CHANGE
ModIsINVALID
ModIsNOTAVAIL
ModIsNotRead
ModIsVALID
NoRelevantMembers

Model failed to load


There has been no change that requires rerunning this module.
The module status is invalid
The module status is not available
Module is not ready
The module status is valid
No relevant members for the module

module_status_light
Status color of a module.

Value

Description

LIGHT_IS_GREEN
LIGHT_IS_GREY
LIGHT_IS_LIGHTBLUE
LIGHT_IS_RED
LIGHT_IS_YELLOW
NO_LIGHT_COLOR

Status light is green


Status light is grey
Status light is light blue
Status light is red
Status light is yellow
Status light has no color

rein_change_type
Reinforcement change

Value

Description

Rein_ContentsChange
Rein_NameChange
Rein_NoChange

Reinforcement changed
Name changed
No changed

WhichModule
RAM Structural System modules.

Value
AllModules
IAmFramingTables
IAmRamConcreteAnalysis
IAmRamConcreteBeam
IAmRamConcreteColumn
IAmRamConcreteShearWall
IAmRamFoundation
IAmRamFrameAnalysis
IAmRamFrameDrift
IAmRamFrameLCombo
IAmRamFrameSpecial
IAmRamFrameStandard
IAmRamManager
IAmRamModeler
IAmRamSteelBeam
IAmRamSteelColumn

Description
All RAM Structural System modules
Framing Tables
RAM Concrete Analysis
RAM Concrete Beam
RAM Concrete Column
RAM Concrete Shear Wall
RAM Foundation
RAM Frame Analysis Load Cases
RAM Frame Drift Control
RAM Frame Analysis Load Combinations
RAM Frame Seismic Provisions
RAM Frame Standard Provisions
RAM Manager
RAM Modeler
RAM Steel Beam
RAM Steel Column

Appendix A - RAM Object Model Diagram


Collection Objects
Standard Object

Properties
UID
Properties

GetCount()
Get( in long ) > pItemInterface
GetAt(long index) > pItemInterface
Filter(in Criteria)?
Add() > pItemInterface()
Delete( in UID )

Model

Can Get Here From Model

FloorTypes

FloorType
Decks

Deck

SlabPerimeters

SlabPerimeter

SlabOpenings

SlabOpening

LayoutBeams

LayoutBeam

LayoutColumns

LayoutColumn

LayoutWalls

LayoutWall

Points

Point

SlabEdges

SlabEdge

WebOpenings

WebOpening

Points

Point

Points

Point

Beams

Beam

IConcreteCriteria

ISteelCriteria

LayoutHorizBraces

LayoutHorizBrace

LayoutIsolatedFnds

LayoutIsolatedFnd

LayoutContFnds

LayoutIContFnd

LayoutMatPerims

LayoutMatPerim

LayoutMatPropPolys

Stories

LayoutMatPropPoly

Story

Piles

Pile

PileConfigurations

PileConfiguration

ConcSectProps

ConcSecProp

OtherSectProps

OtherSectProp

CompDeckProps

CompDeckProp

ConcSlabProps

ConcSlabProp

Columns

Column

Walls

Wall

VerticalBraces

VerticalBrace

HorizBraces

HorizBrace

IsolatedFnds

IsolatedFnd

ContFnds

NonCompDeckProps

ContFnd

MatFndPropPolys

MatPropPoly

MatFndPerims

LayoutMatPerim

NonCompDeckProp

GridSystems

GridSystem

SteelMaterials

SteelMaterial

ConcreteMaterials

ConcreteMaterial

OtherMaterials

OtherMaterial

Grids

Grid
ClippedFndProps

ClippedFndProp

Points

Point

Appendix B Using DataAccess from VB/VBA


The following information applies to VB and VBA programmers. It outlines some things to be aware of when using RAM DataAccess
from VB and includes information to help get you started

Limitations of DataAccess from VB/VBA


VB and VBA do not support the full set of COM features that are used in RAM DataAccess. As a consequence there are some minor
differences in the method variable types, return values and error handling. Also a number of methods cannot be used in these
programming environments. Most, but not all, of the methods that cannot be used have equivalent methods in the new interfaces
that are compatible with VB/VBA. Also in most cases there are equivalent methods that will still let the user retrieve the required data
with a little more effort.
Equivalent VB/VBA variable types
Below is a list of the variable types seen in this documentation and their equivalent VB/VBA types
DA Type
long
double
float
bstr

dw
struct
enum
BOOL

VB/VBA Type
long
double
single
string
Long
User Defined Data Type. These do not need to be defined in VB/VBA they should to
be accessed directly from the definitions that are provided in DA
Enum
Long - True = 1 False = 0

If a variable has the letter a as a prefix, it indicates that the variable is an array and it must be dimensioned before it is used in the
DA method.
Return Values
If a variable has the letter p as a prefix it indicates that the value of that variable will be set by the DA method and then can be used
by your application.
When the last variable in the parameter list has [out, retval] before it, the DA method behaves like a VB/VBA Function rather than a
VB/VBA Sub. This means that that there will be a return value for the DA method. In VB/VBA you will not need to add that value to
the parameter list for the method, you can simply set that variable equal to that DA method.

Incompatible methods
If you see a method with ha prefix or ** pa in front of any of the variables in the method list you will not be able to call that method
from VB/VBA because the method dimensions the array inside DA which VB/VBA does not support.
RAMDataAccGeom.GetIDForMemMatTypeAtStory is an example of such a method. When you try to compile a program that is using
such a method you will get the following Compile Error:

Getting Started with DataAccess in VB/VBA


DA will already be installed on your computer if you have RAM Structural System v8.0 or later installed. Below you will find
instructions on getting started with DA. You will also find sample VB and Excel VBA projects in the DA Toolkit to give you an
example of how to use DA in your next program.
NOTE 1: Though the VB/VBA Object Browser and the document containing the list of comparison functions between DA and PI, the
user should be able to find the functions that they require.
NOTE 2: You will want to install the RAM Common Control toolkit which is included with the RAM DataAccess toolkit before trying to
run the VB or Excel VBA examples.

Adding RAM Data Access (DA) to your VBA Project

Open VBA. In MS Word select from the menu Tools-Macro-Visual Basic Editor
In the VBA Editor menu select Tools-References
In the References dialog box select the RAMDataAccess 2.0 Type Library

Adding RAM Data Access (DA) to your VB Project

Open a new project in VB


Select References from the Project menu
In the References dialog box select the RAMDataAccess 2.0 Type Library

Browsing through the DA functions

From the View menu in VB or VBA Editor select Object Browser or press the F2 key on your keyboard

In the Object Browser select RAMDATAACCESSLib from the list of available libraries.
You will see on the left side of the Object Browser a list of:
o DA Structures
o DA Enumerators
o DA Interfaces which in turn contain all the functions in DA
Selecting one of these items will show their contents on the right side of the browser.
Selecting an item from the list on the right (for example a function name) will display some information about that item in the
panel below. For each function the information includes the function name, parameter list and return type as well as a short
description of the function.

Basic Steps to using DA

Dimension and Set as New the main interface to DA


Dim RAMDataAcc As RAMDATAACCESSLib.RamDataAccess1
Set RAMDataAcc = New RAMDATAACCESSLib.RamDataAccess1
Dimension and Set all the other interfaces that are needed using RAMDataAcc.
Dim RAMDataAccIDBIO As RAMDATAACCESSLib.IDBIO1
Set RAMDataAccIDBIO = RAMDataAcc.GetInterfacePointerByEnum(IDBIO1_INT)
Dim RAMDataAccModelData As RAMDATAACCESSLib.IModelData1
Set RAMDataAccModelData = RAMDataAcc.GetInterfacePointerByEnum(IModelData_INT)
Dim RAMDataAccGeom As RAMDATAACCESSLib.IModelGeometry1
Set RAMDataAccGeom = RAMDataAcc.GetInterfacePointerByEnum(IModelGeometry_INT)
Load the model by defining a string that includes the model name and complete path
strDBName = "C:\Ram\data\ RAMConcreteTest.rss" 'Include path and file extension in name of model.
RAMDataAccIDBIO.LoadDataBase strDBName
When you are done with an interface you need to release it by setting it to nothing
Set RAMDataAccIDBIO = Nothing

Error Handling
One of the advantages of using VB/VBA is that the error handling is built into the system. When you call a method you will need to
check if there was an error and then decide what to do based on the error. After every DA method call, it is a good idea to check for
errors and respond to them. It is very important to trap errors and deal with them, otherwise the program will most likely crash. You
can get the same error message from any initialized interface. You do not need to call the GetLastError for the interface that you had
just used.
After each function call include the following error trap:
'Error Checking
If Err.Number <> 0 Then

InterfaceName.GetLastError strErrorShort, strErrorLong, lErrorNum


If lErrorNum <> 0 Then
MsgBox strErrorLong, Title:="Error!"
End If
End If
For most functions created in v8.2 and later you will notice a plRetVal as the last parameter. plRetVal will provide a return error code
that may not be critical but should be verified. This is different than the S_OK, E_FAIL and E_NOTIMPL which in general are critical
(COM related) errors. The plRetVal will provide you with an error code that you can use to decide if you want to ignore the error or if
you need to in some way change the program flow due to the error.
For all VB/VBA programs, the plRetVal will be the return value for the function. See example code in the toolkit for more information.

Appendix C Using RAM DataAccess in a Visual C++ Project


Because RAM DataAccess is a COM DLL, it is language and environment independent. It can be used by VB or VBA programs
(although limitations do exist), Delphi, C++ and others. This appendix addresses its use though C++ programs.
RAM International developers use the Microsoft Visual Studio so the instructions and examples here will reflect that environment. It
is not, however, a requirement. Any C++ development environment will work, although slight modifications might be necessary.
The following examples show RAM DataAccess used with Smart Pointers (See Appendix D). This is the easiest way to use the
COM Library as it hides the details of using COM. If you are interested in COM and want to take a more COM-ish approach
(experiment with QueryInterface), you can do that.
The examples show how to open the database and create a report that lists all of the beams on each story. While the example itself
is very simplistic, it does illustrate the use of the RAM DataAccess library as well as how to work with the geometric information in
the library.

General Instructions for using RAM DataAccess


Using Interface Pointers
Regardless of the type of application you are going to create, the following pattern for using RAM DataAccess to access the
Structural System database will be used.
First: Get the interface pointer to IRAMDataAccess1.
Next: Using that pointer, create pointers to other interfaces that RAM DataAccess makes available.
For instance, to load a database into memory, you need the IDBIO1 interface pointer so that you can use the LoadDataBase
method. First you must get the IRAMDataAccess1 interface pointer and then use it to create an IDBIO1 interface pointer. Once you
have that pointer, you can use the LoadDataBase method. Dont forget to call IDBIO1::CloseDatabase when done with the model.

Strings and COM


COM passes strings in the form of BSTRs. If the method you will be using has a BSTR in the parameter list, you will need to do the
following conversions.
Getting a String FROM RAM DataAccess:
First declare a BSTR locally and use it to retrieve the string from DataAccess.

BSTR bstrJobName;
m_pIModel-> get_strJobName(&bstrJobName);
The CString constructor will do the conversion from BSTR to CString
CString strJobName(bstrJobName);
Release the BSTR memory
::SysFreeString(bstrJobName);
Passing a String INTO RAM DataAccess:
There are 2 ways to convert to a BSTR.
This method only works for CStrings:
CString strName = My String;
BSTR bstrName;
bstrName = strName.AllocSysString();
This method works for all strings, including CStrings:
CString strName = My String;
BSTR bstrName;
bstrName = _bstr_t(strName);
OR
char cName[100];
strcpy(cName, My String);
BSTR bstrName;
bstrName = _bstr_t(cName);

Memory management and RAM DataAccess


RAM DataAccess uses double pointers (pointers-to-pointers) for passing arrays for data through the COM interface. The advantage
to the client application is that it is not necessary to know the size of the array before the method is called. The disadvantage is that it
is a more complex method of memory management. When you find a method that has a double pointer pp in the parameter list,
the following steps must be taken to manage the memory correctly.

The following method is used to get the entire rebar table for the concrete column program. Notice that an array of SREIN_PROPs
will be passed by a double pointer.
GetRebarTable_ConcCol([out] long* pnNum,[out] SREIN_PROP** pReinProp);
Example:
First declare the variables:
long nNumRebar;
SREIN_PROP* pReinProp;

// declaration of an SREIN_PROP pointer

The pointer is passed into the method using the & operator which means that it is actually a pointer to the pointer that is passed
into the method.
m_pIModelData->GetRebarTable_ConcCol(&nNumRebar, &pReinProp);
Internally, RAM DataAccess performs the memory allocation necessary and the data is filled into the array.
Once the client is done using the pointer, it must deallocate the memory.
CoTaskMemFree(pReinProp);
NOTE: VB and VBA are not able to use pointers in the manner and are thus not able to gain access to functions that use this method
of memory management.

The Basics
These steps must be followed for any C++ application that will use RAM DataAccess. There is flexibility as to where in your code you
choose to implement these commands.
1. Import RAM DataAccess.dll into your project. This can be done in the header file of the class that will use the dll or in the cpp
file. We recommend putting this code in the header file.
#import "C:\Ram10\prog\RamDataAccess.dll"
using namespace RAMDATAACCESSLib;
Note that #import has a number of optional parameters that you can use. Their use or non-use controls how COM will throw
errors.

2. Declare an instance of the RAMDataAccess1 interface as follows. We recommend doing this in the header file and making
your IRamDataAccess1Ptr a member variable of the class, but they can be local variables as well.
IRamDataAccess1Ptr m_pDA;
3. Assuming you have chosen to use IRamDataAccess1Ptr as a member variable: In the constructor for your class (in the cpp
file), create the IRamDataAccess1Ptr. (If you will be using it as a local variable, this function call must appear at the beginning
of each function with which you will be using RAM DataAccess.)
For a Console App:
CoInitialize(NULL);
m_pDA.CreateInstance( _T("RAMDataAccess.RamDataAccess1.1") );
CoInitialize is a necessary step for a console app.
For MFC Apps that include Automation support:
m_pDA.CreateInstance( _T("RAMDataAccess.RamDataAccess1.1") );
4. Use the m_pDA pointer created above to gain access to other interface pointers.
IModelPtr pIModel = m_pDA->GetInterfacePointerByEnum(IModel_INT);
5. Use the newly created interface pointer to access the library methods.
IStoriesPtr pIStories = pIModel->GetStories();
long lNumStories = pIStories->GetCount();
6. Be sure to close the database and release the pointers. The destructor is a good place to do that.
IDBIO1Ptr pDBIO = m_pDA->GetInterfacePointerByEnum(IDBIO1_INT);
if ((m_strModelName != "") && (pDBIO != NULL) )
{
pDBIO->CloseDatabase();
}

pDBIO.Release();
m_pDA.Release();
pDBIO = NULL;
m_pDA = NULL;

SAMPLE PROGRAM: A Console App


This is the simplest approach to a C++ project. Data will be entered through a Console Window (essentially a DOS window) or it can
be read in from a file. Data is then displayed to the Console Window or written out to a file. There is no Graphical User Interface.

To Begin:

Start a new project in the Developer Studio.


Select Win32 Console Application from the list.
Enter a Project Name and click OK
On the dialog box that follows, select the last radio button (include MFC support).

A quick note about MFC support: MFC is a library specific to the Microsoft Devolvement environment. Using it tends to make
projects larger but it has several nice features that might make that worth it. For instance, strings are very easy to manipulate with
the CString class. Writing to a file is made very easy using the CFile class. These are not available without MFC support.

Programming
When the project was created, a file projectname.cpp was created and in it, a function called _tmain. The else section of the
conditional statement is where you will write you code. You could write your entire program there but we recommend using classes
and functions to modularize your code.
In the SampleConsoleApp example, a class is created that contains all of the code for accessing RAM DataAccess and for creating a
report from the database. The class is accessed from the _tmain function.
Unzip the SampleConsoleApp example that is included in the RAM DataAccess toolkit and open it in the developers studio. Follow
through the steps listed in The Basics to see how they are implemented in a Console App.

Appendix D - Using RAMDataAccess in C++ with Smart Pointers


To include DA in a C++ project using smart pointers requires a few simple steps as follows:
1. Set up the MSVC++ project to include ActiveX Components and Automation.
2. In the file or class that is going to need to call DA functions you will need to import the dll as follows:
#import relative or exact path \RamDataAccess.dll raw_interfaces_only
Note that raw_interfaces_only is optional. When raw_interfaces_only is not used COM will throw a _com_error error which
needs to be caught by using a catch (_com_error e ) statement. See example C++ project for more information on how the
code changes based on whether raw_interfaces_only is used or not.
3. Instantiate a pointer to DA in a function as follows:
using namespace RAMDATAACCESSLib;
IRamDataAccess1Ptr pDA;
// Get the DataAccessManager Pointer (and create the object/load dll) pDA.CreateInstance(
_T("RAMDataAccess.RamDataAccess1.1") );
4. Get Smart pointers to all required interfaces:
IModelGeometry1Ptr pIMGeom( pDA );
5. Call functions from the interfaces and check the return error:
HRESULT hr = pDBIO->LoadDataBase(bstrName);
if (SUCCEEDED(hr))
{}
else
{
long lErrorCode;
BSTR bstrErrorShort, bstrErrorLong;
pDBIO->GetLastError(&bstrErrorShort, &bstrErrorLong, &lErrorCode);
CString strErrorShort (bstrErrorShort);
CString strErrorLong (bstrErrorLong);
::SysFreeString(bstrErrorShort); //Free the BSTR
::SysFreeString(bstrErrorLong); //Free the BSTR
}

6. Note that before strings can be passed to a COM function they need to be converted to BSTR variable types as follows:
To send a pointer to a string so it can be filled in DA
BSTR bstrStory;
m_pIModelGeometry->GetStoryLabel(nStory, &bstrStory);
strStory = bstrStory;
::SysFreeString(bstrStory); //Free the BSTR memory

To send a string into DA:


BSTR bstrName;
CString strName = _T("C:\\Ram80\\data\\Smallish");
bstrName = strName.AllocSysString();
pDBIO->LoadDataBase(bstrName);

7. When a parameter in a function starts with **pa this indicates that the array will be dimensioned in the DA function. It is
however the calling functions responsibility to free the memory after the dimensioned array is no longer needed by using the
CoTaskMemFree as follows:
if(paBeamLineResults != NULL)
CoTaskMemFree(pBeamLineResults);
The TestDA project shows an example of how to use DA in a C++ project. DA is used in the CTestDADoc.cpp file. You can see an
example of the #include at the top of the file and the instantiation and use of the DA and its interfaces in CTestDADoc::OnTestDA
method.
Using smart pointers makes COM dlls act more like regular pointers to C++ classes and allows MS Dev Studio to provide the list of
methods that are available for each interface as well as the list of parameters once you have selected the method. Getting interfaces
is also significantly easier (it all acts more like VB). For more information on smart pointers look for the #import help topic in
MSVC++.
To run the example place a break point in CTestDADoc::OnTestDA and select Open from the file menu.

Appendix E Additional Load Case Information


Load Case Type labels:
Label
RAMUSER
RAMUSERNODAL_type

Meaning
Gravity load modeled in RAM Modeler
Nodal load modeled in RAM Modeler where:
W for wind, S for seismic, O for other, V for virtual
type

W_User
Wind_code_direction

User defined story force of type Wind


Generated Wind force where:
is the code selected to generate the forces
code
direction

EQ_User
EQ_code_dir_eccentricity

Dyn_code_CQC_direction

Eigen Solution
Center of Rigidity
Virtual Load Case_User

indicates the direction of the force (X or Y)

User defined story force of type Earthquake (seismic)


Generated Earthquake force where:
is the code selected to generate the forces
code
indicates the direction of the force (X or Y)
dir
eccentricity +E = positive eccentricity
-E = negative eccentricity
Dynamic Load Case using Response Sprectra
is the code selected to generate the forces
code
if code is not shown this indicates a general CQC
solution.
indicates the direction of the force (X or Y)
dir
Dynamic Load Case using Eigen Solutions.
Center of Rigidity
Virtual Load Case to be used in RAM Drift Control.

Load Case Types (as integers):


Value
RamSteelLoadType = 0
NodalLateralLoadType =1
WindLoadType = 2
SeismicLoadType = 3
DynamicLoadType = 4
OtherLoadType = 5

Load Type
Gravity Load case modeled in RAM Modeler
Nodal Lateral load modeled in RAM Modeler
Wind defined in RAM Frame
Seismic defined in RAM Frame
Dynamic defined in RAM Frame
Other defined in RAM Frame

Load Case Sub-Load Types (as integers):


Load Type
RamSteelLoadType

Sub-Load Type
GRAVITY_LOAD

0x0001

Dead Load

POS_RED_LL
POS_STORAGE_LL
POS_NONRED_LL

0x0002
0x0008
0x0080

3 types of positive
Live Load

NEG_RED_LL
NEG_STORAGE_LL
NEG_NONRED_LL

0x0004
0x0010
0x0100

3 types of
negative Live
Load

POS_ROOF_LL

0x0020

NEG_ROOF_LL

0x0040

Positive Roof Live


Load (can be
reducible or snow)
Negative Roof
Live Load (can be
reducible or snow)

NodalLateralLoadType WIND_NODAL2
SEISMIC_NODAL2
OTHER_NODAL2
VIRTUAL_NODAL2
WindLoadType
SeismicLoadType
DynamicLoadType
EIGEN_SOLUTION2
RESPONSE_SPECTRA2
RESPONSE_SPECTRA_UBC972
RESPONSE_SPECTRA_IBC20002
OtherLoadType
USER_DEFINED_STORY2
CENTER_RIGIDITY2
VIRTUAL_LOADCASE2

0
1
2
3

0
1
2
3
0
1
2

4 types of nodal
lateral loads

4 types of
Dynamic loads
3 types of Other
loads.

Appendix F Shear wall interface constants


IWallCodeResult Hint Flags
0: No Hint
1: Function not found (internal error)
2: Other internal error
3: All checks pass (no hint required)
4: No hint possible
6: Increase concrete area of cross-section
7: Increase depth
8: Increase breadth
9: Increase concrete grade
10: Increase number of curtains
12: Increase area of tension reinforcement
13: Increase area of compression reinforcement
14: Increase bar spacing
15: Increase reinforcement area and increase bar spacing
16: Decrease bar spacing
17: Increase longitudinal reinforcement area
18: Increase reinforcement area and decrease bar spacing
20: Increase transverse reinforcement area

IWallLimitCheck General Classification Code


0: Axial
1: Shear
2: Flexural
3: Axial Flexural
4: Clear Cover
5: Concrete Strength
6: Bar Size
7: Bar Spacing
8: Reinforcement Ratio
9: Bar Placement
10: Reinforcement Detailing
11: Fire Limit State
12: Confinement
13: Member Dimensions

IWallLimitCheck Specific Classification Code


14: Axial strength
15: Flexural strength in design axis 1
16: Flexural strength in design axis 2
17: Shear strength in the design axis 1
18: Shear strength in the design axis 2
19: Positive flexural strength
20: Negative flexural strength
21: Minimum horizonal reinforcement ratio
22: Minimum vertical reinforcement ratio
23: Maximum horizonal reinforcement ratio
24: Maximum vertical reinforcement ratio
25: Minimum horizontal bar spacing
26: Minimum vertical bar spacing
27: Maximum horizontal bar spacing
28: Maximum vertical bar spacing
29: Maximum tie reinforcement bar spacing
30: Minimum horizontal bar size
31: Maximum horizontal bar size
32: Minimum vertical bar size
33: Maximum vertical bar size
34: Minimum tie bar size
35: Minimum wall thickness
36: Minimum longitudinal reinforcement ratio
37: Maximum allowable shear stress in design axis 1
38: Maximum allowable shear stress in design axis 2
39: Tensile strength
40: Compressive strength
41: Minimum tie reinforcement bar spacing
42: Minimum transverse reinforcement
43: Maximum side bar spacing

Você também pode gostar