Top Banner
RAM DataAccess Developer’s Guide August 2007 RAM International 2744 Loker Avenue West, Suite 103 Carlsbad, CA 92010 Telephone: (760) 431-3610 Toll Free: (800) 726-7789 Fax: (760) 431-5214
286
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: RAM Data Access Developers Guide

RAM DataAccess

Developer’s Guide

August 2007

RAM International 2744 Loker Avenue West, Suite 103

Carlsbad, CA 92010 Telephone: (760) 431-3610 Toll Free: (800) 726-7789

Fax: (760) 431-5214

Page 2: RAM Data Access Developers Guide

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, RAM International 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 user’s satisfaction. The contents of these written materials may include technical inaccuracies or typographical errors and may be revised without prior notice.

Copyright attribution: © 2007, Bentley Systems, Incorporated. All rights reserved.

Trademark attribution: RAM Structural System, RAM Manager, RAM Modeler, RAM Steel, RAM Frame, RAM Foundation and RAM Concrete are either registered or unregistered trademarks or

service marks of Bentley Systems, Incorporated or one of its direct or indirect wholly-owned subsidiaries. Other brands and product names are trademarks of their respective owners.

Page 3: RAM Data Access Developers Guide

Table of Contents DISCLAIMER......................................................................................................................................................................................... 2 Introduction ............................................................................................................................................................................................ 9 Basic Concepts of the RAM Object Model ............................................................................................................................................. 9

RAM Structural System Model ........................................................................................................................................................... 9 RAM Object Model Architecture ......................................................................................................................................................... 9

General Information ............................................................................................................................................................................. 11 Version Information .......................................................................................................................................................................... 11 Definitions and Naming Convention ................................................................................................................................................. 11 Method Return values ...................................................................................................................................................................... 12 Database Units................................................................................................................................................................................. 12 A Note about this Documentation..................................................................................................................................................... 13

Getting Started..................................................................................................................................................................................... 13 Opening a Model .............................................................................................................................................................................. 13 Starting a New Model ....................................................................................................................................................................... 13

Creating a floor type ......................................................................................................................................................................................... 13 Defining grid systems ....................................................................................................................................................................................... 14 Creating a story ................................................................................................................................................................................................ 14 Adding columns ................................................................................................................................................................................................ 14 Adding beams, walls or horizontal braces ........................................................................................................................................................ 14 Adding vertical braces ...................................................................................................................................................................................... 14 Defining material properties for a member ....................................................................................................................................................... 15 Assigning sizes to steel members .................................................................................................................................................................... 15 Assigning section properties to concrete members.......................................................................................................................................... 15 Assigning section properties to ‘Other’ members ............................................................................................................................................. 16

Updating an existing model .............................................................................................................................................................. 16 Updating a column............................................................................................................................................................................................ 16 Updating beams, walls, horizontal braces ........................................................................................................................................................ 17 Updating a vertical brace.................................................................................................................................................................................. 17

Reading an existing model ............................................................................................................................................................... 17 Getting section properties for concrete members............................................................................................................................................. 17 Getting section properties for ‘Other’ members................................................................................................................................................ 17 Getting material properties for a member......................................................................................................................................................... 17

The Obejct Model Interfaces................................................................................................................................................................ 18 IModel .............................................................................................................................................................................................. 18

IModel Properties ............................................................................................................................................................................................. 28 ISteelCriteria .................................................................................................................................................................................... 29

ISteelCriteria Properties ................................................................................................................................................................................... 29 IConcreteCriteria .............................................................................................................................................................................. 30

Page 4: RAM Data Access Developers Guide

IConcreteCriteria Properties ............................................................................................................................................................................. 30 IFrameAnalysisCriteria ..................................................................................................................................................................... 32

IFrameAnalysisCriteria Properties.................................................................................................................................................................... 32 IFloorTypes ...................................................................................................................................................................................... 32 IFloorType ........................................................................................................................................................................................ 34

IFloorType Properties ....................................................................................................................................................................................... 36 IDecks .............................................................................................................................................................................................. 37 IDeck ................................................................................................................................................................................................ 38

IDeck Properties ............................................................................................................................................................................................... 38 ISlabEdges....................................................................................................................................................................................... 40 ISlabPerimeters................................................................................................................................................................................ 39 ISlabPerimeter ................................................................................................................................................................................. 40

ISlabPerimeter Properties ................................................................................................................................................................................ 40 ISlabEdge......................................................................................................................................................................................... 40

ISlabEdge Properties........................................................................................................................................................................................ 41 ISlabOpenings.................................................................................................................................................................................. 42 ISlabOpening ................................................................................................................................................................................... 42

ISlabOpening Properties .................................................................................................................................................................................. 43 ILayoutBeams .................................................................................................................................................................................. 43 ILayoutBeam .................................................................................................................................................................................... 45

ILayoutBeam Properties ................................................................................................................................................................................... 46 IWebOpenings ................................................................................................................................................................................. 48 IWebOpening ................................................................................................................................................................................... 49

IWebOpening Properties .................................................................................................................................................................................. 49 ILayoutHorizBraces.......................................................................................................................................................................... 49 ILayoutHorizBrace............................................................................................................................................................................ 52

ILayoutHorizBrace Properties........................................................................................................................................................................... 53 ILayoutColumns ............................................................................................................................................................................... 55 ILayoutColumn ................................................................................................................................................................................. 57

ILayoutColumn Properties ................................................................................................................................................................................ 58 ILayoutWalls..................................................................................................................................................................................... 59 ILayoutWall ...................................................................................................................................................................................... 61

ILayoutWall Properties ..................................................................................................................................................................................... 62 ILayoutIsolatedFnds......................................................................................................................................................................... 63 ILayoutIsolatedFnd........................................................................................................................................................................... 65

ILayoutIsolatedFnd Properties.......................................................................................................................................................................... 66 ILayoutContinuousFnds ................................................................................................................................................................... 66 ILayoutContinuousFnd ..................................................................................................................................................................... 68

ILayoutContinuousFnd Properties .................................................................................................................................................................... 69

Page 5: RAM Data Access Developers Guide

ILineLoadSets .................................................................................................................................................................................. 69 ILineLoadSet .................................................................................................................................................................................... 71

Properties ......................................................................................................................................................................................................... 71 IPointLoadSets................................................................................................................................................................................. 71 IPointLoadSet................................................................................................................................................................................... 72

Properties ......................................................................................................................................................................................................... 72 IStories ............................................................................................................................................................................................. 73 IStory................................................................................................................................................................................................ 74

IStory Properties............................................................................................................................................................................................... 77 IBeams............................................................................................................................................................................................. 78 IBeam............................................................................................................................................................................................... 79

IBeam Properties.............................................................................................................................................................................................. 80 IHorizBraces..................................................................................................................................................................................... 81 IHorizBrace ...................................................................................................................................................................................... 83

IHorizBrace Properties ..................................................................................................................................................................................... 84 IVerticalBraces ................................................................................................................................................................................. 85 IVerticalBrace................................................................................................................................................................................... 87

IVerticalBrace Properties.................................................................................................................................................................................. 88 IColumns .......................................................................................................................................................................................... 90 IColumn............................................................................................................................................................................................ 92

IColumn Properties........................................................................................................................................................................................... 93 IWalls ............................................................................................................................................................................................... 95 IWall ................................................................................................................................................................................................. 96

IWall Properties ................................................................................................................................................................................................ 98 IRawWallOpenings........................................................................................................................................................................... 99 IRawWallOpening .......................................................................................................................................................................... 100

IRawWallOpening Properties ......................................................................................................................................................................... 100 IFinalWallOpenings ........................................................................................................................................................................ 101 IFinalWallOpening.......................................................................................................................................................................... 102

IFinalWallOpening Properties......................................................................................................................................................................... 102 IRawWallSectionCuts..................................................................................................................................................................... 102 IRawWallSectionCut....................................................................................................................................................................... 104

IRawWallSectionCut Properties ..................................................................................................................................................................... 105 IIsolatedFnds.................................................................................................................................................................................. 105 IIsolatedFnd ................................................................................................................................................................................... 107

IIsolatedFnd Properties .................................................................................................................................................................................. 108 IContinuousFnds ............................................................................................................................................................................ 108 IContinuousFnd.............................................................................................................................................................................. 109

IContinuousFnd Properties............................................................................................................................................................................. 110

Page 6: RAM Data Access Developers Guide

IPileConfigurations ......................................................................................................................................................................... 111 IPileConfiguration........................................................................................................................................................................... 112

IPileConfiguration Properties.......................................................................................................................................................................... 112 IPiles .............................................................................................................................................................................................. 112 IPile ................................................................................................................................................................................................ 113

IPile Properties ............................................................................................................................................................................................... 113 IDiaphragms................................................................................................................................................................................... 114 IDiaphragm..................................................................................................................................................................................... 115 IConcSectProps ............................................................................................................................................................................. 115 IConcSectProp ............................................................................................................................................................................... 118

IConcSectProp Properties .............................................................................................................................................................................. 118 IOtherSectProps............................................................................................................................................................................. 119 IOtherSectProp .............................................................................................................................................................................. 121

IOtherSectProp Properties ............................................................................................................................................................................. 122 ICompDeckProps ........................................................................................................................................................................... 122 ICompDeckProp............................................................................................................................................................................. 124

ICompDeckProp Properties............................................................................................................................................................................ 124 IConcSlabProps ............................................................................................................................................................................. 125 IConcSlabProp ............................................................................................................................................................................... 126

IConcSlabProp Properties .............................................................................................................................................................................. 126 INonCompDeckProps..................................................................................................................................................................... 126 INonCompDeckProp ...................................................................................................................................................................... 127

INonCompDeckProp Properties ..................................................................................................................................................................... 127 ISteelMaterials ............................................................................................................................................................................... 127 ISteelMaterial ................................................................................................................................................................................. 128

ISteelMaterial Properties ................................................................................................................................................................................ 128 IConcreteMaterials ......................................................................................................................................................................... 128 IConcreteMaterial ........................................................................................................................................................................... 128

IConcreteMaterial Properties.......................................................................................................................................................................... 128 IOtherMaterials............................................................................................................................................................................... 129 IOtherMaterial ................................................................................................................................................................................ 129

IOtherMaterial Properties ............................................................................................................................................................................... 129 ILoadCases .................................................................................................................................................................................... 129 ILoadCase...................................................................................................................................................................................... 131

ILoadCase Properties..................................................................................................................................................................................... 131 ILoadCombinations ........................................................................................................................................................................ 131 ILoadCombination .......................................................................................................................................................................... 134

ILoadCombination Properties ......................................................................................................................................................................... 134 ILoadCombinationTerms................................................................................................................................................................ 134

Page 7: RAM Data Access Developers Guide

ILoadCombinationTerm.................................................................................................................................................................. 135 ILoadCombinationTerm Properties................................................................................................................................................................. 135

ILineLoadPropertySets................................................................................................................................................................... 136 ILineLoadPropertySet..................................................................................................................................................................... 137

Properties ....................................................................................................................................................................................................... 137 IPointLoadPropertySets ................................................................................................................................................................. 137 IPointLoadPropertySet ................................................................................................................................................................... 138

Properties ....................................................................................................................................................................................................... 138 IPointLoads .................................................................................................................................................................................... 139 IPointLoad ...................................................................................................................................................................................... 139

IPointLoad Properties ..................................................................................................................................................................................... 139 IMemberForces .............................................................................................................................................................................. 140 IMemberForce................................................................................................................................................................................ 140

IMemberForce Properties............................................................................................................................................................................... 140 ISteelBeamDesignResult ............................................................................................................................................................... 141 IAnalyticalResult............................................................................................................................................................................. 141 IGridSystems.................................................................................................................................................................................. 142 IGridSystem ................................................................................................................................................................................... 143

IGridSystem Properties .................................................................................................................................................................................. 143 IModelGrids.................................................................................................................................................................................... 144 IModelGrid...................................................................................................................................................................................... 145

IModelGrid Properties..................................................................................................................................................................................... 145 IPoints ............................................................................................................................................................................................ 146 IPoint .............................................................................................................................................................................................. 147 IPropertyDefinitions ........................................................................................................................................................................ 148 IPropertyDefinition.......................................................................................................................................................................... 150

IPropertyDef Properties .................................................................................................................................................................................. 152 IProperties...................................................................................................................................................................................... 152 IProperty......................................................................................................................................................................................... 153

IProperty Properties........................................................................................................................................................................................ 154 Original DataAccess Interfaces.......................................................................................................................................................... 155

Common Methods.......................................................................................................................................................................... 155 IRamDataAccess1.......................................................................................................................................................................... 155 IRamDataAccess2.......................................................................................................................................................................... 156 IDBIO1 ........................................................................................................................................................................................... 156 IModelData1................................................................................................................................................................................... 159 IModelData2................................................................................................................................................................................... 162 IModelGeometry1........................................................................................................................................................................... 169 IModelGeometry2........................................................................................................................................................................... 179

Page 8: RAM Data Access Developers Guide

IConcColModState1 ....................................................................................................................................................................... 182 IConcColModState2 ....................................................................................................................................................................... 185 IMemberData1 ............................................................................................................................................................................... 185 IMemberData2 ............................................................................................................................................................................... 193 IConcBeamState1 .......................................................................................................................................................................... 195 IConcBeamState2 .......................................................................................................................................................................... 200 IModelStatus1 ................................................................................................................................................................................ 204 IConcCntlrCommon1...................................................................................................................................................................... 204 ILoading1 ....................................................................................................................................................................................... 206 IGravityLoads1 ............................................................................................................................................................................... 210 IGravitySteelDesign1...................................................................................................................................................................... 220 IForces1 ......................................................................................................................................................................................... 223 IForces2 ......................................................................................................................................................................................... 228 IConcAnalysis1 .............................................................................................................................................................................. 233 IConcAnalysisState1 ...................................................................................................................................................................... 234 Structures used in Original DataAccess Interfaces ........................................................................................................................ 236

Common Structure and Enumerator Definitions ................................................................................................................................ 252 Appendix A - RAM Object Model Diagram......................................................................................................................................... 273 Appendix B – Using DataAccess from VB/VBA ................................................................................................................................. 274

Limitations of DataAccess from VB/VBA........................................................................................................................................ 274 Getting Started with DataAccess in VB/VBA .................................................................................................................................. 275

Adding RAM Data Access (DA) to your VBA Project ..................................................................................................................................... 275 Adding RAM Data Access (DA) to your VB Project........................................................................................................................................ 275 Browsing through the DA functions ................................................................................................................................................................ 275 Basic Steps to using DA................................................................................................................................................................................. 276 Error Handling ................................................................................................................................................................................................ 276

Appendix C – Using RAM DataAccess in a Visual C++ Project......................................................................................................... 278 General Instructions for using RAM DataAccess ........................................................................................................................... 278

Using Interface Pointers ................................................................................................................................................................................. 278 Strings and COM............................................................................................................................................................................................ 278 Memory management and RAM DataAccess ................................................................................................................................................ 279

The Basics ..................................................................................................................................................................................... 280 SAMPLE PROGRAM: A Console App ........................................................................................................................................... 282

To Begin: ........................................................................................................................................................................................................ 282 Programming .................................................................................................................................................................................................. 282

Appendix D - Using RAMDataAccess in C++ with Smart Pointers .................................................................................................... 283 Appendix E – Additional Load Case Information................................................................................................................................ 285

Load Case Types (as integers): ..................................................................................................................................................................... 285 Load Case Sub-Load Types (as integers):..................................................................................................................................................... 286

Page 9: RAM Data Access Developers Guide

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 Programmer’s 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

Page 10: RAM Data Access Developers Guide

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 ILayoutMember1 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 don’t 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-to-story, 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.

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

Page 11: RAM Data Access Developers Guide

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 A capital “I” precedes all interface names. C A capital “C” precedes all class names. E A capital “E” precedes names of enumerators. S A capital “S” precedes names of structures. bstr BSTR, a 32-bit character pointer

This is how we pass strings through a COM interface. VB/VBAl or n long, a 32-bit signed integer d double, a 64-bit double precision number f float, a 32-bit single precision number e an enumerated type. Technically a long. dw DWORD, a 32-bit unsigned integer. p a pointer VB/VBAa an array pp Pointer to a pointer for an array.

This is used to allocate memory for the array inside of DA.

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.

Page 12: RAM Data Access Developers Guide

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] indicates that this is a variable being passed in [out] indicates that a value will be returned in this variable. [out, retval] 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 The method was completed successfully E_FAIL The method did not complete successfully E_NOTIMPL 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).

Page 13: RAM Data Access Developers Guide

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. Additionally, any methods or interfaces not documented are not supported or intended for use outside or RAM International.

Getting Started This section is an overview of how to accomplish some basic tasks with the Object Model interfaces. For specific functionality of each interface, please refer to the detailed documentation that follows.

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.

Page 14: RAM Data Access Developers Guide

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

Page 15: RAM Data Access Developers Guide

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.

Page 16: RAM Data Access Developers Guide

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.

Page 17: RAM Data Access Developers Guide

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.

Page 18: RAM Data Access Developers Guide

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.

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 entity’s unique ID. Available v9.0. 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. Available v9.0. Parameters ppIFloorTypes Pointer to an IFloorTypes collection interface that represents all floor types in the model

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

Gets the collection of all stories in the model. Available v9.0. Parameters ppIStories Pointer to an IStories collection interface that represents all stories in the model

GetVerticalBraces ([out, retval] IVerticalBraces** ppIVerticalBraces)

Gets the collection of all vertical braces in the model. Available v9.0. Parameters ppIVerticalBraces Pointer to an IVerticalBraces collection interface that represents all vertical braces in the model

GetConcreteSectionProps ([out, retval] IConcSectProps** ppIConcSectProps)

Gets the collection of all concrete section properties for this model. Available v9.0. Parameters ppIConcSectProps Pointer to an IConcSectProps collection interface that represents all concrete section properties defined in the model

Page 19: RAM Data Access Developers Guide

GetOtherSectionProps ([out, retval] IOtherSecProps** ppIOtherSectProps) Gets the collection of all section properties of material type ‘Other’ for this model. Available v9.0. Parameters ppIOtherSectProps Pointer to an IOtherSectionProps collection interface that represents all ‘Other’ section properties defined in the model

GetCompositeDeckProps ([out, retval] ICompDeckProps** ppICompDeckProps)

Gets the collection of all composite deck properties defined for this model. Available v9.0. Parameters ppICompDeckProps Pointer to an ICompDeckProps collection interface that represents all composite deck properties defined in the

model GetNonCompDeckProps ([out, retval] INonCompDeckProps** ppINonCompDeckProps)

Gets the collection of all non-composite deck properties defined for this model. Available v9.0. Parameters ppINonCompDeckProps Pointer to an INonCompDeckProps collection interface that represents all non-composite deck properties defined

in the model Comments There is currently only one non-composite deck property allowed in a RAM Structural System model, so the collection returned will only have one item. However, we plan to allow for the definition of multiple non-composite deck properties in the future, which is why a collection interface is returned from the IModel interface rather than just the INonCompDeckProp interface.

GetConcreteSlabProps ([out, retval] IConcSlabProps** ppIConcreteSlabProps)

Gets the collection of all concrete slab properties defined for this model. Available v9.0. Parameters ppIConcSlabProps Pointer to an IConcSlabProps collection interface that represents all concrete slab properties defined in the model

GetGridSystems ([out, retval] IGridSystems** ppIGridSystems)

Gets the collection of all grid systems defined for this model. Available v9.0. Parameters ppIGridSystems Pointer to an IGridSystems collection interface that represents all grid systems defined in the model

Page 20: RAM Data Access Developers Guide

GetPiles ([out, retval] IPiles** ppIPiles) Gets the collection of all pile definitions for this model. Piles can be associated with pile caps. Available v9.0. Parameters ppIPiles Pointer to an IPiles collection interface that represents all piles defined in the model

GetPileConfigurations ([out, retval] IPileConfigurations** ppIPileConfigurations)

Gets the collection of all pile configuration definitions for this model. Pile configurations can be associated with pile caps. Available v9.0. Parameters ppIPileConfigurations Pointer to an IPileConfigurations collection interface that represents all pile configurations defined in the model

GetRawWallSectionCuts ([out, retval] IRawWallSectionCuts** ppIRawWallSectionCuts)

Gets a collection interface of all raw wall section cuts for the model, not just for an individual wall. Available v10.0. Parameters ppIRawWallSectionCuts Pointer to an IRawWallSectionCuts collection interface that represents all raw wall section cuts in the model.

GetLoadCases ([in] EAnalysisResultType eAnalysisType, [out, retval] ILoadCases** ppILoadCases)

Gets a collection interface of all load cases for a specific analysis type. Available v10.0. Parameters eAnalysisType Type of anlaysis for which to get load cases. As of v10.0, only implemented for RAMFrameResultType ppILoadCases 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. Available v10.0. Parameters eCombinationsType Type of load combinations to get ppILoadCombinations Pointer to an ILoadCombinations collection interface that represents load

combinations for specified combo type

Page 21: RAM Data Access Developers Guide

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. Available v11.0. Parameters ppLineLoadPropertySets Pointer to an ILineLoadPropertySets collection interface that represents all line load property sets 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. Available v11.0. Parameters ppPointLoadPropertySets Pointer to an IPointLoadPropertySets collection interface that represents all point load property sets

defined in the model GetFloorType ([in] long lUID, [out, retval] IFloortype** ppIFloorType)

Gets an interface for a specific floor type. Available v9.0. Parameters lUID Unique ID of floor type to retrieve ppIFloorType Pointer to an IFloortype interface that represents requested floor type

GetStory ([in] long lUID, [out, retval] IStory** ppIStory)

Gets an interface for a specific story. Available v9.0. Parameters lUID Unique ID of story to retrieve ppIStory Pointer to an IStory interface that represents requested story

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

Gets an interface for a specific concrete section property. Available v9.0. Parameters lUID Unique ID of concrete section property to retrieve ppIConcSectProp Pointer to an IConcSectProp interface that represents the requested concrete section property

Page 22: RAM Data Access Developers Guide

GetOtherSectionProp ([in] long lUID, [out, retval] IOtherSectProp** ppIOtherSectProp) Gets an interface for a specific ‘Other’ section property. Available v9.0. Parameters lUID Unique ID of ‘Other’ section property to retrieve ppIOtherSectProp Pointer to an IOtherSectProp interface that represents the requested ‘Other’ section property

GetCompositeDeckProp ([in] long lUID, [out, retval] ICompDeckProp** ppICompDeckProp) Gets an interface for a specific composite deck property. Available v9.0. Parameters lUID Unique ID of composite deck property to retrieve ppICompDeckProp Pointer to an ICompDeckProp interface that represents the requested composite deck property

GetNonCompDeckProp ([in] long lUID, [out, retval] INonCompDeckProp** ppINonCompDeckProps) Gets an interface for a specific non-composite deck property. Available v9.0. 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

GetConcreteSlabProp ([in] long lUID, [out, retval] IConcSlabProp** ppIConcSlabProp) Gets an interface for a specific concrete slab property. Available v9.0. Parameters lUID Unique ID of concrete deck property to retrieve ppIConcSlabProp Pointer to an IConcSlabProp interface that represents the requested concrete slab property

GetSteelMaterial ([in] long lUID, [out, retval] ISteelMaterial** ppISteelMaterial) Gets an interface for a specific steel material property set. Available v9.0. Parameters lUID Unique ID of steel material property set to retrieve ppISteelMaterial Pointer to an ISteelMaterial interface that represents the requested steel material property set

Page 23: RAM Data Access Developers Guide

GetConcreteMaterial ([in] long lUID, [out, retval] IConcreteMaterial** ppIConcreteMaterial) Gets an interface for a specific concrete material property set. Available v9.0. Parameters lUID Unique ID of concrete material property set to retrieve ppIConcreteMaterial Pointer to an IConcreteMaterial interface that represents the requested concrete material property set

GetOtherMaterial ([in] long lUID, [out, retval] IOtherMaterial** ppIOtherMaterial)

Gets an interface for a specific ‘Other’ material property set. Available v9.0. Parameters lUID Unique ID of ‘Other’ material property set to retrieve ppIOtherMaterial Pointer to an IOtherMaterial interface that represents the requested ‘Other’ material property set

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

Gets an interface for a grid system. Available v9.0. Parameters lUID Unique ID of grid system to retrieve ppIGridSystem Pointer to an IGridSystem interface that represents the requested grid system

GetPile ([in] long lUID, [out, retval] IPile** ppIPile)

Gets an interface for a pile definition. Available v9.0. Parameters lUID Unique ID of pile definition to retrieve ppIPile 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. Available v9.0. Parameters lUID Unique ID of pile configuration definition to retrieve ppIPileConfiguration Pointer to an IPileConfiguration interface that represents the requested pile configuration

Page 24: RAM Data Access Developers Guide

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

Gets an interface for a deck definition. Available v9.0. Parameters lUID Unique ID of deck definition to retrieve ppIDeck Pointer to an IDeck interface that represents the requested deck definition

GetSlabPerimeter ([in] long lUID, [out, retval] ISlabPerimeter** ppISlabPerimeter)

Gets an interface for a slab perimeter. Available v9.0. Parameters lUID Unique ID of slab perimeter to retrieve ppISlabPerimeter Pointer to an ISlabPerimeter interface that represents the requested slab perimeter

GetSlabOpening ([in] long lUID, [out, retval] ISlabOpening** ppISlabOpening)

Gets an interface for a slab opening. Available v9.0. Parameters lUID Unique ID of slab opening to retrieve ppISlabOpening Pointer to an ISlabOpening interface that represents the requested slab opening

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

Gets an interface for a layout beam. Available v9.0. Parameters lUID Unique ID of layout beam to retrieve ppILayoutBeam 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. Available v9.0. Parameters lUID Unique ID of layout column to retrieve ppILayoutColumn Pointer to an ILayoutColumn interface that represents the requested layout column

Page 25: RAM Data Access Developers Guide

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

Gets an interface for a layout wall. Available v9.0. Parameters lUID Unique ID of layout wall to retrieve ppILayoutWall Pointer to an ILayoutWall interface that represents the requested layout wall

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

Gets an interface for a layout horizontal brace. Available v9.0. Parameters lUID Unique ID of layout horizontal brace to retrieve ppILayoutHorizBrace 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. Available v9.0. Parameters lUID Unique ID of layout isolated foundation to retrieve ppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the requested layout isolated foundation

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

Gets an interface for a layout continuous foundation. Available v9.0. Parameters lUID Unique ID of layout continuous foundation to retrieve ppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation

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

Gets an interface for a beam. Available v9.0. Parameters lUID Unique ID of beam to retrieve ppIBeam Pointer to an IBeam interface that represents the requested beam

Page 26: RAM Data Access Developers Guide

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. Available v11.01. Parameters lColumnID Unique ID of column for which to retrieve column stack ppIColumnStack Pointer to an IColumnStack interface that represents the requested column stack

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

Gets an interface for a column. Available v9.0. Parameters lUID Unique ID of column to retrieve ppIColumn Pointer to an IColumn interface that represents the requested column

GetWall ([in] long lUID, [out, retval] IWall** ppIWall )

Gets an interface for a wall. Available v9.0. Parameters lUID Unique ID of wall to retrieve ppIWall Pointer to an IWall interface that represents the requested wall

GetVerticalBrace ([in] long lUID, [out, retval] IVerticalBrace** ppIVerticalBrace)

Gets an interface for a vertical brace. Available v9.0. Parameters lUID Unique ID of vertical brace to retrieve ppIVerticalBrace Pointer to an IVerticalBrace interface that represents the requested vertical brace

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

Gets an interface for a horizontal brace. Available v9.0. Parameters lUID Unique ID of horizontal brace to retrieve ppIHorizBrace Pointer to an IHorizBrace interface that represents the requested horizontal brace

Page 27: RAM Data Access Developers Guide

GetRawWallOpening ([in] long lUID, [out, retval] IRawWallOpening** ppIRawWallOpening)

Gets an interface for a raw wall opening. Available v10.0. Parameters lUID Unique ID of wall opening to retrieve ppIRawWallOpening 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. Available v10.0. Parameters lUID Unique ID of wall section cut to retrieve ppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested

wall section cut GetIsolatedFnd ([in] long lUID, [out, retval] IIsolatedFnd** ppIIsolatedFnd )

Gets an interface for an isolated foundation. Available v9.0. Parameters lUID Unique ID of isolated foundation to retrieve ppIIsolatedFnd Pointer to an IIsolatedFnd interface that represents the requested isolated foundation

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

Gets an interface for a continuous foundation. Available v9.0. Parameters lUID Unique ID of continuous foundation to retrieve ppIContinuousFnd Pointer to an IContinuousFnd interface that represents the requested continuous foundation

GetSteelCriteria ([out, retval] ISteelCriteria** ppISteelCriteria )

Gets an interface for the steel criteria applied to the model. Available v9.0. Parameters

Page 28: RAM Data Access Developers Guide

ppISteelCriteria Pointer to an ISteelCriteria interface that represents all steel criteria for the model GetConcreteCriteria ([out, retval] IConcreteCriteria** ppIConcreteCriteria )

Gets an interface for the concrete criteria applied to the model. Available v9.0. Parameters ppIConcreteCriteria Pointer to an IConcreteCriteria interface that represents all concrete criteria for the model

GetFrameAnalysisCriteria ([out, retval] IFrameAnalysisCriteria** ppIFrameAnalysisCriteria)

Gets an interface for the frame analysis criteria applied to the model. Available v10.0. Parameters ppIFrameAnalysisCriteria Pointer to an IFrameAnalysisCriteria interface that represents the frame

analysis criteria for the model

IModel Properties The following properties are available through the IModel interface. Type Property Get Set Description Ver double dVersion X Version of the Ram Structural System model 9.0 BSTR strJobName X X Text description of model that can be up to 71 characters 9.0 EBuildingCode eCodeSelection X X Building code by which Live Load Reduction will be calculated 9.0 BOOL bIncludeBeamSelfWeight X X Beam self weight will automatically be considered if TRUE 9.0 BOOL bIncludeColSelfWeight X X Column self weight will automatically be considered if TRUE 9.0 BOOL bIncludeWallSelfWeight X X Wall self weight will automatically be considered if TRUE 9.0 BOOL bIncludeSlabSelfWeight X X Slab and deck self weight will automatically be considered if TRUE 9.0 ERoofLLType eRoofLiveLoadType X X Indicates whether roof live loads are reducible or whether they are snow 9.0 BOOL bLLRedStoriesInclRoof X X If TRUE, roof levels will be included when determining number of stories 9.0 BOOL bLLRedStoriesInclStorLevels X X If TRUE, storage levels will be included when determining number of stories 9.0 BOOL bLLRedStoriesInclUnredLevels X X If TRUE, unreducible levels will be included when determining number of stories 9.0 EUnits eDisplayUnits X X 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.

9.0

long lGroundLevel X X Unique ID of story that is at ground level. Set available 11.1. 10.0 BOOL bCombineLoads X If TRUE, loads on beams were combined during gravity analysis. 11.0

Page 29: RAM Data Access Developers Guide

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.

ISteelCriteria Properties Type Property Get Set Description Ver BSTR strMasterSteelTable X X Master section table that lists all sections to be used during design. File

must have a .tab extension. Maximum 32 characters allowed. 9.0

BSTR strDeckTable X X Deck table to use for composite deck properties. File must have a .dck extension. Maximum 32 characters allowed.

9.0

BSTR strDefSteelBeamTable X X Default section table to use when designing steel beams. File must have a .bms extension. Maximum 32 characters allowed.

9.0

BSTR strAltSteelBeamTable X X Alternate section table to use when designing steel beams. File must have a .bms extension. Maximum 32 characters allowed.

9.0

BSTR strSteelColumnTable X X Section table to use when designing steel columns. File must have a .col extension. Maximum 32 characters allowed.

9.0

BSTR strDefCastellatedTable X X Default castellated beam section table to use when designing cellular beams. File must have a .cas extension. Maximum 39 characters allowed.

9.0

BSTR strAltCastellatedTable X X Alternate castellated beam section table to use when designing cellular beams. File must have a .cas extension. Maximum 39 characters allowed.

9.0

BSTR strDefCellularTable X X Default cellular beam section table to use when designing cellular beams. File must have a .cel extension. Maximum 39 characters allowed.

9.0

BSTR strAltCellularTable X X Alternate cellular beam section table to use when designing cellular beams. File must have a .cel extension. Maximum 39 characters allowed.

9.0

ESteelDesignCode eSteelBeamDesignCode X X Design code to use for design of steel beams 9.0 ESteelDesignCode eSteelColumnDesignCode X X Design code to use for design of steel columns 9.0 ESteelDesignCode eBasePlateDesignCode X X Design code to use for design of base plates 9.0 double dWOStiffenerFy X X Fy of stiffeners for web openings 9.0 double dWOStiffenerMinWidth X X Minimum width of stiffeners (used during design of steel beams when

stiffeners are required for web openings) 9.0

double dWOStiffenerMinThickness X X Minimum thickness of stiffeners (used during design of steel beams when stiffeners are required for web openings)

9.0

double dWOStiffenerThicknessInc X X Increment for stiffener thickness (used during design of steel beams when stiffeners are required for web openings)

9.0

double dWOStiffenerWidthInc X X Increment for stiffener width (used during design of steel beams when stiffeners are required for web openings)

9.0

double dWOStiffenerLengthInc X X Increment for stiffener length (used during design of steel beams when stiffeners are required for web openings)

9.0

BOOL bWOAllowStiffenerOneSide X X Allow stiffeners on one side of web (used during design of steel beams when stiffeners are required for web openings)

9.0

Page 30: RAM Data Access Developers Guide

Type Property Get Set Description Ver BOOL bWOAllowStiffenerTwoSide X X Allow stiffeners on both sides of web (used during design of steel beams

when stiffeners are required for web openings) 9.0

EJstUniformLoadOption eJstDefUniformLoadOption X X Default criteria for joists with uniform load 9.0 double dJstDefUniformTolerance X X Tolerance for variation for uniform load (0-100%) (Default criteria for joists

with uniform load, when eStlJstUniSelectFromStdTable is specified for eJstDefUniformLoadOption)

9.0

BSTR strJstDefUniformStdJstTable X X 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.

9.0

BSTR strJstDefUniformCSJstTable X X 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.

9.0

BSTR strJstDefCustomLabel X X Custom label for joists with uniform loads (default criteria, applies if eStlJstUniUseCustomLabel is specified for eJstDefUniformLoadOption). Max 4 characters allowed.

9.0

EJstNonUniformLoadOption eJstDefNonUniformLoadOption X X Default criteria for joists with non-uniform load 9.0 double dJstDefMaxConcentratedLoads X X Maximum concentrated loads in kips (default criteria, applies when

eStlJstNonUniUseEquivalentMethod is specified for eJstDefNonUniformLoadOption)

9.0

BSTR strJstDefNonUniCSJstTable X X 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.

9.0

double dJstDefVariationTolerance X X Tolerance for variation of loads (default criteria, applies when eStlJstNonUniUseEquivalentMethod is specified for eJstDefNonUniformLoadOption)

9.0

double dJstAllowableStressRatio X X Allowable stress ratio for joists 9.0 BOOL bUseModelMasterTable X Whether the master table used by the model is stored with the model

(TRUE), rather than from the Tables directory (FALSE) 10.03

BOOL bUseModelAltBeamSteelTable X Whether the alternate beam design table used by the model is stored with the model (TRUE), rather than from the Tables directory (FALSE)

10.03

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

IConcreteCriteria Properties Type Property Get Set Description Ver BSTR strReinforcementTable X X Rebar table to use when designing concrete beams and columns. File must have a .ren

extension. Maximum 32 characters allowed. 9.0

Page 31: RAM Data Access Developers Guide

BSTR strPanJoistTable X X Table of pans to use for laying out pan joists. File must have a .pnj extension. Maximum 19 characters allowed.

9.0

EDA_CONC_CODE eConcreteDesignCode X X Design code for concrete beams and columns 9.0 EDA_CONC_CODE eFoundationDesignCode X X Design code for foundations 9.0

Page 32: RAM Data Access Developers Guide

IFrameAnalysisCriteria This interface provides access to frame analysis criteria used during an analysis in RAM Frame. Available v10.0.

IFrameAnalysisCriteria Properties Type Property Get Set Description Ver BOOL bConsiderPDelta X X TRUE if PDelta effect should be considered during analysis, FALSE if not 10.0 double dPDeltaFactor X X Scale factor (between 0 and 10) to magnify the effect of PDelta during the

analysis. The Default is 1. 10.0

EDiaphragm eDiaphragmType X X Type of diaphragms in model. Will be eNoDiaphragm if no stories have diaphragms. Will be eRigidDiaphragm if some stories have rigid diaphragms

10.0

BOOL bConsiderAdvancedMeshCriteria X X Indicates whether to consider advanced wall meshing criteria. If it is False, default mesh criteria values are used.

10.0

long lMeshOptimizationLevel X X Advanced wall mesh optimization level (between 1 and 10). The Default is 3. 10.0 double dMeshShapeQualityRatio X X Advanced wall mesh shape quality ratio (between 0.1 and 1). The Default is 0.6. 10.0 double dMeshMaxDistBetweenNodes X X 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).

10.0

BOOL bOutputForcesAtFace X X 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

10.02

IFloorTypes This interface represents a collection of all floor types for the model. It can be used to add and delete floor types. Available v9.0. 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. Available v9.0. Parameters plCount Number of floor types in the collection

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

Gets an interface for a specific floor type by index. Available v9.0. Parameters lIndex The index into the collection of the requested floor type ppFloorType Pointer to an IFloorType interface that represents the requested floor type, or NULL if lIndex is invalid.

Page 33: RAM Data Access Developers Guide

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

Gets an interface for a specific floor type by unique ID. Available v9.0. Parameters lUID The unique ID of the requested floor type ppFloorType 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.

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

Adds a new floor type to the collection of floor types for the model. Available v9.0. Parameters bstrFloorTypeName A label for the floor type. Max 19 characters allowed. ppFloorType 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. Available v9.0. Parameters lUID Unique ID of floor type to be deleted plRetval 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. Available v9.0. Parameters eFilter 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

Page 34: RAM Data Access Developers Guide

EFloorTypeFilter Description varFilterCriteria eFTFilter_UsedInStory Filter by floor types actually used in the story data. N/A eFTFilter_NoFilter Remove all filtering N/A

IFloorType This interface represents a single floor type in the model. Available v9.0. GetDecks ([out, retval] IDecks** ppIDecks)

Gets the collection of all decks for this floor type. Available v9.0. Parameters ppIDecks Pointer to an IDecks collection interface that represents all decks defined on this floor type

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

Gets the collection of all slab perimeters for this floor type. Available v9.0. Parameters ppISlabPerimeters Pointer to an ISlabPerimeters collection interface that represents all slab perimeters defined on this floor type

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

Gets the collection of all slab openings for this floor type. Available v9.0. Parameters ppISlabOpenings Pointer to an ISlabOpenings collection interface that represents all slab openings defined on this floor type

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

Gets the collection of all beams for this floor type. Available v9.0. 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. Available v9.0.

Page 35: RAM Data Access Developers Guide

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

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

Gets the collection of all walls for this floor type. Available v9.0. Parameters ppILayoutWalls Pointer to an ILayoutWalls collection interface that represents all walls defined on this floor type

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

Gets the collection of all horizontal braces for this floor type. Available v9.0. 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. Available v9.0. Parameters ppILayoutIsolatedFnds Pointer to an ILayoutIsolatedFnds collection interface that represents all isolated foundations defined on this floor

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

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

this floor type GetLineLoadSets (ILineLoadSets ** ppLineLoadSets )

Gets the collection of all line load sets for this floor type. Available v11.0. Parameters ppLineLoadSets Pointer to an ILineLoadSets collection interface that represents all line load sets defined on this floor type

Page 36: RAM Data Access Developers Guide

GetPointLoadSets (IPointLoadSets** ppPointLoadSets ) Gets the collection of all point load sets for this floor type. Available v11.0. Parameters ppPointLoadSets Pointer to an IPointLoadSets collection interface that represents all point 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. Available v9.0. Parameters ppIStories Pointer to an IStories collection interface that represents all stories based 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. Available v9.0. Parameters ppIDAArray Pointer to an IDAArray collection interface that represents the unique IDs of all grid systems assigned to 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. Available v9.0. Parameters pIDAArray Pointer to an IDAArray collection interface that represents the unique IDs of all grid systems assigned to this floor

type. plRetVal 0 if collection is set

IFloorType Properties Type Property Get Set Description Ver long lUID X Unique ID of floor type 9.0 BSTR strLabel X X Label of floor type. Maximum of 19 characters allowed. 9.0

Page 37: RAM Data Access Developers Guide

IDecks This interface represents a collection of all decks on a floor type. Available v9.0. 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. Available v9.0. Parameters plCount Number of decks in the collection

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

Gets an interface for a specific deck by index. Available v9.0. Parameters lIndex The index into the collection of the requested deck ppIDeck Pointer to an IDeck interface that represents the requested deck, or NULL if lIndex is invalid.

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

Gets an interface for a specific deck by unique ID. Available v9.0. Parameters lUID The unique ID of the requested deck ppIDeck 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. Add ([in] long lDeckPropID, [in] long lNumPoints, [out, retval] IDeck** ppIDeck)

Adds a new deck to the collection of decks for the model. Available v11.0. Parameters lDeckPropID Unique ID of deck property used by this deck lNumPoints 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. ppIDeck Pointer to an IDeck interface that represents the new deck, or NULL if Add fails

Page 38: RAM Data Access Developers Guide

Filter ([in] EDeckFilter eFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval )

Filters the collection of decks based on given criteria. Available v9.0. Parameters eFilter 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

EDeckFilter Description varFilterCriteria eDeckFilter_Type Filter by type of deck EDeckType eDeckFilter_NoFilter Remove all filtering N/A

IDeck This interface represents a specific deck on a floor type. Available v9.0. 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. Available v9.0. Parameters ppIPoints Pointer to IPoints collection that represents the vertices of the deck polygon.

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. Available v11.0. Parameters pIPoints Pointer to IPoints collection that represents the vertices of the deck polygon. plRetval 0 if successful

IDeck Properties Type Property Get Set Description Ver long lUID X Unique ID of deck 9.0 EDeckType eDeckPropType X Type of deck, either composite, non-composite or concrete 9.0 double dAngle X X Orientation of deck 9.0

Page 39: RAM Data Access Developers Guide

Type Property Get Set Description Ver long lPropID X X Unique ID of deck property used by this deck. It must correspond to type of deck. For example, if

deck type is composite, this unique ID should correspond to an ICompDeckProp. 9.0

ISlabPerimeters This interface represents the collection of slab perimeters on a floor type. Available v9.0. 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. Available v9.0. Parameters plCount Number of slab perimeters in the collection

GetAt ([in] long lIndex, [out, retval] ISlabPerimeter** ppISlabPerimeter)

Gets an interface for a specific slab perimeter by index. Available v9.0. Parameters lIndex The index into the collection of the requested slab perimeter ppISlabPerimeter Pointer to an ISlabPerimeter interface that represents the requested slab perimeter, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] ISlabPerimeter** ppISlabPerimeter)

Gets an interface for a specific slab perimeter by unique ID. Available v9.0. Parameters lUID The unique ID of the requested slab perimeter ppISlabPerimeter 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.

Page 40: RAM Data Access Developers Guide

ISlabPerimeter This interface represents a specific slab perimeter on a floor type. Available v9.0. GetEdges ([out, retval] ISlabEdges** ppISlabEdges)

Gets the collection of edges for this slab perimeter. Available v9.0. Parameters ppISlabEdges Pointer to an ISlabEdges collection interface that represents the edges that define this slab perimeter.

GetPerimeterVertices ([out, retval] IPoints **pplVertexCoordinates)

Gets the collection of vertices for this slab perimeter. Available v10.0. Parameters pplVertexCoordinates Pointer to an IPoints collection interface that represents the vertices for this slab perimeter.

ISlabPerimeter Properties Type Property Get Set Description Ver long lUID X Unique ID of slab perimeter 9.0

ISlabEdges This interface represents a collection of slab edges. Slab edges are associated with either a slab perimeter or a slab opening. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of slab edges in the collection. Available v9.0. Parameters plCount Number of slab edges in the collection

GetAt ([in] long lIndex, [out, retval] ISlabEdge** ppISlabEdge)

Gets an interface for a specific slab edge by index. Available v9.0. Parameters lIndex The index into the collection of the requested slab edge

Page 41: RAM Data Access Developers Guide

ppISlabEdge Pointer to an ISlabEdge interface that represents the requested slab edge, or NULL if lIndex is invalid.

ISlabEdge This interface represents a specific slab edge corresponding to a slab perimeter or slab opening. Available v9.0. 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. Available v9.0. Parameters pdStartX The x coordinate at the start of the slab edge pdStartY The y coordinate at the start of the slab edge pdEndX The x coordinate at the end of the slab edge pdEndY The y coordinate at the end of the slab edge plRetval 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. Available v9.0. Parameters dStartX The x coordinate at the start of the slab edge dStartY The y coordinate at the start of the slab edge dEndX The x coordinate at the end of the slab edge dEndY The y coordinate at the end of the slab edge plRetval 0 if successful, -1 if coordinates cannot be set

ISlabEdge Properties Type Property Get Set Description Ver double dOffset X X 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. 9.0

Page 42: RAM Data Access Developers Guide

ISlabOpenings This interface represents a collection of all slab openings on a floor type. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of slab openings in the collection. Available v9.0. Parameters plCount Number of slab openings in the collection

GetAt ([in] long lIndex, [out, retval] ISlabOpening** ppISlabOpening)

Gets an interface for a specific slab opening by index. Available v9.0. Parameters lIndex The index into the collection of the requested slab opening ppISlabOpening Pointer to an ISlabOpening interface that represents the requested slab opening, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] ISlabOpening** ppISlabOpening)

Gets an interface for a specific slab opening by unique ID. Available v9.0. Parameters lUID The unique ID of the requested slab perimeter ppISlabOpening 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.

ISlabOpening This interface represents a specific slab opening on a floor type. Available v9.0. GetEdges ([out, retval] ISlabEdges** ppISlabEdges)

Gets the collection of edges for this slab opening. Available v9.0. Parameters ppISlabEdges Pointer to an ISlabEdges collection interface that represents the edges that define this slab opening.

Page 43: RAM Data Access Developers Guide

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

Gets the collection of vertices for this slab opening. Available v10.0. Parameters ppIVertexCoordinats Pointer to an IPoints collection interface that represents the vertices that define this slab opening.

ISlabOpening Properties Type Property Get Set Description Ver long lUID X Unique ID of slab opening 9.0

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.) Available v9.0. 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. Available v9.0. Parameters plCount Number of layout beams in the collection

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

Gets an interface for a specific layout beam by index. Available v9.0. Parameters lIndex The index into the collection of the requested layout beam ppILayoutBeam Pointer to an ILayoutBeam interface that represents the requested layout beam, or NULL if lIndex is invalid.

Page 44: RAM Data Access Developers Guide

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

Gets an interface for a specific layout beam by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout beam ppILayoutBeam 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. 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. Available v9.0. Parameters eMat Material type of beam to add (Valid options are ESteelMat, ESteelJoistMat, ESmartbeamBeamMat, EConcreteMat,

or EOtherMat) dStartSupportX X coordinate of the support point at the start of the beam (i-end). dStartSupportY Y coordinate of the support point at the start of the beam (i-end). dZOffset1 Z offset value from the story elevation for the support point at the start of the beam (i-end). dEndSupportX X coordinate of the support point at the end of the beam (j-end). dEndSupportY Y coordinate of the support point at the end of the beam (j-end). dZOffset2 Z offset value from the story elevation for the support point at the end of the beam (j-end). ppILayoutBeam 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. Available v9.0. Parameters lUID Unique ID of layout beam to delete plRetval 0 if layout beam is deleted successfully

-1 if unique ID is not found in filtered list of layout beams

Page 45: RAM Data Access Developers Guide

Filter ([in] EBeamFilter eFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout beams based on given criteria. Available v9.0. Parameters eFilter 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

EBeamFilter Description varFilterCriteria eBeamFilter_Material Filter by material of beams EMATERIALTYPES eBeamFilter_FrameType Filter by member type (lateral vs. gravity) EFRAMETYPE

eBeamFilter_NoFilter Remove all prior filtering N/A

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. Available v9.0. 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. Available v9.0. Parameters ppIWebOpenings Pointer to an IWebOpenings interface that represents the collection of web openings defined on this 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. Available v9.0. Parameters ppIBeams Pointer to an IBeams interface that represents the collection of story beams associated with this layout beam.

Page 46: RAM Data Access Developers Guide

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. Available v9.0.

Parameters pdStartSupportX X coordinate of the support point at the start of the beam (i-end). pdStartSupportY Y coordinate of the support point at the start of the beam (i-end). pdStartSupportZOffset Z offset value from the story elevation for the support point at the start of the beam (i-end). pdEndSupportX X coordinate of the support point at the end of the beam (j-end). pdEndSupportY Y coordinate of the support point at the end of the beam (j-end). pdEndSupportZOffset Z offset value from the story elevation for the support point at the end of the beam (j-end). plRetval 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, [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. Available v9.0.

Parameters dStartSupportX X coordinate of the support point at the start of the beam (i-end). dStartSupportY Y coordinate of the support point at the start of the beam (i-end). dStartSupportZOffset Z offset value from the story elevation for the support point at the start of the beam (i-end). dEndSupportX X coordinate of the support point at the end of the beam (j-end). dEndSupportY Y coordinate of the support point at the end of the beam (j-end). dEndSupportZOffset Z offset value from the story elevation for the support point at the end of the beam (j-end). plRetval 0 if successful

-1 if coordinates cannot be set

ILayoutBeam Properties 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.

Page 47: RAM Data Access Developers Guide

When a property is set through the ILayoutBeam interface, all beams represented by this interface will be updated. Type Property Get Set Description Ver long lUID X Unique ID of layout beam. This unique ID corresponds to the beam on the top story

associated with this floor type, if any. 9.0

EMATERIALTYPES eMaterial X Material type of beam. Valid options for beams are ESteelMat, ESteelJoistMat, ESmartbeamBeamMat, EConcreteMat, or EOtherMat.

9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of beam used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dStartCantileverLength X X Length of cantilever at start of beam (i-end) 9.0 double dEndCantileverLength X X Length of cantilever at end of beam (j-end) 9.0 EJoistType eMemberJoistType X X Type of joist (if beam material type is ESteelJoistMat) 9.0 EFRAMETYPE eFramingType X X Whether member is lateral or gravity

9.0

long lFrameNumber X Frame number for lateral members. It must be positive number.

9.0

BOOL bComposite X X If TRUE, beam is composite. If FALSE, beam is non-composite. 9.0 long lBeamLineNumber X Beam line that beam is part of (applicable only if this is a concrete beam). 9.0 BOOL bTorFixedStart X Torsion release at start of beam (i-end). 9.0 BOOL bTorFixedEnd X Torsion release at end of beam (j-end). 9.0 BOOL bMinAxisBendFixedStart X Minor axis bending release at start of beam (i-end). 9.0 BOOL bMinAxisBendFixedEnd X Minor axis bending release at end of beam (j-end). 9.0 BOOL bMajAxisBendFixStart X Major axis bending release at start of beam (i-end).

9.0

BOOL bMajAxisBendFixEnd X Major axis bending release at end of beam (j-end). 9.0 BSTR strSectionLabel X 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.

9.0

long lSectionID X 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.

9.0

EAnalyzeFlag eAnalyzeFlag X X Whether beam will be optimized or analyzed during design 10.03 EDefaultOrAlternate eSteelTable X X Whether beam size will be found in default or alternate steel beam design table 10.03 long lManufacturerID X X 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.

11.0

double dManufacturerSelfWeight X X 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.

11.0

Page 48: RAM Data Access Developers Guide

Type Property Get Set Description Ver ESMARTBEAMTYPE eSmartBeamSubType X X Whether the beam is a castellated or cellular smartbeam. Only applicable if eMaterial

is ESmartbeamBeamMat. 11.1

double dCastellatedDt X X ‘dt’ is the distance from the top of the beam to the top of a castellated beam opening. 11.1 double dCastellatedE X X ‘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.

11.1

double dCellularS X X ‘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.

11.1

double dCellularDo X X ‘Do’ is the hole diameter for cellular beams. 11.1

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. Available v9.0. GetCount ([out, retval] long* plCount )

Gets the number of web openings in the collection. Available v9.0. Parameters plCount Number of web openings in the collection

GetAt ([in] long lIndex, [out, retval] IWebOpening** ppIWebOpening)

Gets an interface for a specific web opening by index. Available v9.0. Parameters lIndex The index into the collection of the requested web opening. ppIWebOpening Pointer to an IWebOpening interface that represents the requested web opening, or NULL if lIndex is invalid.

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. Available v9.0. Parameters dDistFromStartOfBeam Distance from start of beam to center of web opening eShape Shape of web opening dHOrDiam Height of rectangular opening, or diameter of circular opening dB Width of rectangular opening

Page 49: RAM Data Access Developers Guide

ppIWebOpening 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. Available v9.0. Parameters lIndex Index of web opening to delete plRetval 0 if web opening is deleted successfully

-1 if lIndex is invalid

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. Available v9.0.

IWebOpening Properties Type Property Get Set Description Ver long lUID X The ID of this opening in the collection of openings for a particular beam (not unique within

the model) 9.0

EWebOpenShape eShape X X Shape of the web opening 9.0 double dDistFromStartOfBeam X X Distance from start of beam to center of web opening 9.0 double dHeightOrDiam X X Height (H) of web opening if shape is rectangular, or diameter of opening if circular

9.0

double dWidth X X Width (B) of web opening if shape is rectangular 9.0 EWebOpenPosition ePositionInWeb X X Position of web opening in beam web. If not centered, an offset must be provided. 9.0 double dDistFromTop X X 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) 9.0

long lNumStiffeners X Indicates if stiffeners are required on 0, 1 or 2 sides of the opening (determined during steel beam design)

9.0

double dStiffenerLength X Length of stiffener, if required. 9.0 double dStiffenerWidth X Width of stiffener, if required. 9.0 double dStiffenerThickness X Thickness of stiffener, if required. 9.0 BOOL bPassed X Whether the design of the web opening passed or failed. 9.0 double dWeldSize X Size of weld for stiffener, if required. 9.0

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.)

Page 50: RAM Data Access Developers Guide

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. Available v9.0. Parameters plCount Number of layout horizontal braces in the collection

Page 51: RAM Data Access Developers Guide

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

Gets an interface for a specific layout horizontal brace by index. Available v9.0. Parameters lIndex The index into the collection of the requested layout horizontal brace ppILayoutHorizBrace Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace, or NULL if lIndex is

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

Gets an interface for a specific layout horizontal brace by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout horizontal brace ppILayoutHorizBrace 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. 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. Available v9.0. Parameters eMat Material type of horizontal brace to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat) dStartSupportX X coordinate of the support point at the start of the horizontal brace (i-end). dStartSupportY Y coordinate of the support point at the start of the horizontal brace (i-end). dStartSupportZOffset Z offset value from the story elevation for the support point at the start of the horizontal brace (i-end). dEndSupportX X coordinate of the support point at the end of the horizontal brace (j-end). dEndSupportY Y coordinate of the support point at the end of the horizontal brace (j-end). dEndSupportZOffset Z offset value from the story elevation for the support point at the end of the horizontal brace (j-end). ppILayoutHorizBrace Pointer to an ILayoutHorizBrace interface that represents the newly added layout horizontal brace.

Page 52: RAM Data Access Developers Guide

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. Available v9.0. Parameters lUID Unique ID of layout horizontal brace to delete plRetval 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. Available v9.0. Parameters eFilter 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

EHorizBraceFilter Description varFilterCriteria eHBFilter_Material Filter by material of horizontal braces EMATERIALTYPES eHBFilter_NoFilter Remove all prior filtering N/A

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. Available v9.0. 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. Available v9.0. Parameters ppIHorizBraces Pointer to an IHorizBraces interface that represents the collection of story horizontal braces associated with this

layout horizontal brace.

Page 53: RAM Data Access Developers Guide

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. Available v9.0.

Parameters pdStartSupportX X coordinate of the support point at the start of the beam (i-end). pdStartSupportY Y coordinate of the support point at the start of the beam (i-end). pdStartSupportZOffset Z offset value from the story elevation for the support point at the start of the beam (i-end). pdEndSupportX X coordinate of the support point at the end of the beam (j-end). pdEndSupportY Y coordinate of the support point at the end of the beam (j-end). pdEndSupportZOffset Z offset value from the story elevation for the support point at the end of the beam (j-end). plRetval 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. Available v9.0.

Parameters dStartSupportX X coordinate of the support point at the start of the beam (i-end). dStartSupportY Y coordinate of the support point at the start of the beam (i-end). dStartSupportZOffset Z offset value from the story elevation for the support point at the start of the beam (i-end). dEndSupportX X coordinate of the support point at the end of the beam (j-end). dEndSupportY Y coordinate of the support point at the end of the beam (j-end). dEndSupportZOffset Z offset value from the story elevation for the support point at the end of the beam (j-end). dStartCantlLength Cantilever length at the start end of the beam dEndCantlLength Cantilever length at the end send of the beam. plRetval 0 if successful

-1 if coordinates cannot be set

ILayoutHorizBrace 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

Page 54: RAM Data Access Developers Guide

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 Property Get Set Description Ver long lUID X Unique ID of layout horizontal brace. This unique ID corresponds to the

beam on the top story associated with this floor type, if any. 9.0

EMATERIALTYPES eMaterial X X Material type of horizontal brace. Valid options for horizontal braces are ESteelMat, EConcreteMat, or EOtherMat.

9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of horizontal brace used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

BSTR strSectionLabel X 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.

9.0

long lSectionID X 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.

9.0

BOOL bTorFixedStart X Torsion release at start of horizontal brace (i-end). 9.0 BOOL bTorFixedEnd X Torsion release at end of horizontal brace (j-end).

9.0

BOOL bMinAxisBendFixedStart X Minor axis bending release at start of horizontal brace (i-end).

9.0

BOOL bMinAxisBendFixedEnd X Minor axis bending release at end of horizontal brace (j-end). 9.0 BOOL bMajAxisBendFixStart X Major axis bending release at start of horizontal brace (i-end). 9.0 BOOL bMajAxisBendFixEnd X Major axis bending release at end of horizontal brace (j-end). 9.0 ETensionCompressionMemType eAnalysisType X Indicates whether horizontal brace takes tension, compression, or both

9.0

BOOL bDblAngleLLBacktoBack X 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.

9.0

BOOL bDblAngleSnugTightBolt X 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.

9.0

double dDblAngleBackSpacing Spacing distance between angles of double angle section. Applies to a steel horizontal brace that has been assigned a double angle section.

9.0

BOOL bSglAngleLongLegHorizontal 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.

9.0

Page 55: RAM Data Access Developers Guide

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.) Available v9.0. 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. Available v9.0. Parameters plCount Number of layout columns in the collection

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

Gets an interface for a specific layout column by index. Available v9.0. 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.

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

Gets an interface for a specific layout column by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout column ppILayoutColumn 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.

Page 56: RAM Data Access Developers Guide

Add ([in] EMATERIALTYPES eMat, [in]double dX, [in] double dY, [in]double dZTopOffset, [in]double dZBotOffset, [out, retval] ILayoutColumn** ppILayoutColumn)

Adds a new 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. Available v9.0. Parameters eMat Material type of column to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat) dX X coordinate of the column dY Y coordinate of the column dZTopOffset Z offset value from the story elevation for the top of the column dZBotOffset Z offset value from the story elevation for the bottom of the column (measured from the elevation of the story below) ppILayoutColumn 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. Available v9.0. Parameters lUID Unique ID of layout column to delete plRetval 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. Available v9.0. Parameters eColumnFilter 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

EColumnFilter Description varFilterCriteria eColFilter_FrameType Filter by member type (lateral vs. gravity) EFRAMETYPE

eColFilter_NoFilter Remove all prior filtering N/A

Page 57: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. 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 *pdZTopOffset, [out]double *pdZBotOffset, [out, retval] long* plRetval)

Gets the coordinates of the layout column. Available v9.0.

Parameters pdX X coordinate of the column pdY Y coordinate of the column pdZTopOffset Z offset value from the story elevation for the top of the column pdZBotOffset Z offset value from the story elevation for the bottom of the column plRetval 0 if successful

-1 if coordinates cannot be retrieved SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZTopOffset, [in] double dZBotOffset, [out, retval] long* plRetval)

Sets the coordinates of the layout column. Available v9.0.

Parameters dX X coordinate of the column dY Y coordinate of the column dZTopOffset Z offset value from the story elevation for the top of the column dZBotOffset Z offset value from the story elevation for the bottom of the column plRetval 0 if successful

-1 if coordinates cannot be set

Page 58: RAM Data Access Developers Guide

ILayoutColumn 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 Property Get Set Description Ver long lUID X Unique ID of layout column. This unique ID corresponds to the column on the top story

associated with this floor type, if any. 9.0

EMATERIALTYPES eMaterial X Material type of column. Valid options for columns are ESteelMat, EConcreteMat, or EOtherMat.

9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of column used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dOrientation X X Orientation of column in degrees. Angle measured between web of column and x-axis. 9.0 EFRAMETYPE eFramingType X X Whether member is lateral or gravity 9.0 long lFrameNumber X Frame number for lateral members. Must be positive number. 9.0 BOOL bTorFixedTop X Torsion release at top of column (i-end). 9.0 BOOL bTorFixedBot X Torsion release at bottom of column (j-end). 9.0 BOOL bMinAxisBendFixedTop X Minor axis bending release at top of column (i-end). 9.0 BOOL bMinAxisBendFixedBot X Minor axis bending release at bottom of column (j-end). 9.0 BOOL bMajAxisBendFixTop X Major axis bending release at top of column (i-end). 9.0 BOOL bMajAxisBendFixBot X Major axis bending release at bottom of column (j-end). 9.0 BSTR strSectionLabel X 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.

9.0

long lSectionID X 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.

9.0

Page 59: RAM Data Access Developers Guide

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.) Available v9.0. 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. Available v9.0. Parameters plCount Number of layout walls in the collection

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

Gets an interface for a specific layout wall by index. Available v9.0. Parameters lIndex The index into the collection of the requested layout wall ppILayoutWall Pointer to an ILayoutWall interface that represents the requested layout wall, or NULL if lIndex is invalid.

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

Gets an interface for a specific layout wall by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout wall ppILayoutWall 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. 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-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, they will be reversed. Available v9.0.

Page 60: RAM Data Access Developers Guide

Parameters eMat Material type of wall to add. (Valid options are EWallPropConcreteMat or EWallPropOtherMat). dStartX X coordinate of start of the wall (i-end). dStartY Y coordinate of start of the wall (i-end). dStartZTopOffset Z offset value from the story elevation for start of wall at top (i-end). dStartZBotOffset Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story

below). dEndX X coordinate of end of the wall (j-end). dEndY Y coordinate of end of the wall (j-end). dEndZTopOffset Z offset value from the story elevation for the end of the wall at top (j-end). dEndZBotOffset 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). dThickness Thickness of the wall ppILayoutWall 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. Available v9.0. Parameters lUID Unique ID of layout wall to delete plRetval 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. Available v9.0. Parameters eWallFilter 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

EWallFilter Description varFilterCriteria eWallFilter_FrameType Filter by member type (lateral vs. gravity) EFRAMETYPE

eWallFilter_NoFilter Remove all prior filtering N/A

Page 61: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. 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. Available v9.0. Parameters pdStartX X coordinate of start of the wall (i-end). pdStartY Y coordinate of start of the wall (i-end). pdStartZTopOffset Z offset value from the story elevation for start of wall at top (i-end). pdStartZBotOffset Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story

below). pdEndX X coordinate of end of the wall (j-end). pdEndY Y coordinate of end of the wall (j-end). pdEndZTopOffset Z offset value from the story elevation for the end of the wall at top (j-end). pdEndZBotOffset 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). plRetval 0 if successful

-1 if coordinates cannot be retrieved

Page 62: RAM Data Access Developers Guide

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. Available v9.0. Parameters dStartX X coordinate of start of the wall (i-end). dStartY Y coordinate of start of the wall (i-end). dStartZTopOffset Z offset value from the story elevation for start of wall at top (i-end). dStartZBotOffset Z offset value from the story elevation for start of wall at bottom (i-end) (measured from the elevation of the story

below). dEndX X coordinate of end of the wall (j-end). dEndY Y coordinate of end of the wall (j-end). dEndZTopOffset Z offset value from the story elevation for the end of the wall at top (j-end). dEndZBotOffset 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). plRetval 0 if successful

-1 if coordinates cannot be set

ILayoutWall Properties When a property is set through the ILayoutWall interface, all columns represented by this interface will be updated. Type Property Get Set Description Ver long lUID X Unique ID of layout wall. This unique ID corresponds to the wall on the top story associated with

this floor type, if any. 9.0

EMATERIALTYPES eMaterial X Material type of wall. Valid options for walls are EWallPropConcreteMat or EWallPropOtherMat. 9.0 long lMaterialID X 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. 9.0

long lLabel X Numeric label of wall used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

EFRAMETYPE eFramingType X X Whether member is lateral or gravity 9.0 long lFrameNumber X Frame number for lateral members. Must be positive number. 9.0 double dThickness X Thickness of wall. 9.0 double dCrackedFactor X Cracked factor. Applies if wall is concrete. 9.0

Page 63: RAM Data Access Developers Guide

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.) Available v9.0. 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. Available v9.0. Parameters plCount Number of layout isolated foundations in the collection

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

Gets an interface for a specific layout isolated foundation by index. Available v9.0. 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. Get ([in] long lUID, [out, retval] ILayoutIsolatedFnd** ppILayoutIsolatedFnd)

Gets an interface for a specific layout isolated foundation by unique ID. Available v9.0. 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.

Page 64: RAM Data Access Developers Guide

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. Available v9.0. Parameters eType Type of isolated foundation (i.e. spread footing, pile cap) dX X coordinate of the center of the footing dY Y coordinate of the center of the footing dZOffset Z offset value from the story elevation for the top of the footing ppILayoutIsolatedFnd 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. Available v9.0. Parameters lUID Unique ID of layout isolated foundation to delete plRetval 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. Available v9.0. Parameters eIsolatedFndFilter 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

EIsolatedFndFilter Description varFilterCriteria eIFFilter_Type Filter by type of footing EIsolatedFndType eIFFilter_NoFilter Remove all prior filtering N/A

Page 65: RAM Data Access Developers Guide

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. Available v9.0. GetIsolatedFnd ([out, retval] IIsolatedFnd** ppIIsolatedFnd)

Gets an interface for the isolated foundation associated with this layout isolated foundation. Available v9.0. 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. Available v9.0.

Parameters pdX X coordinate of the center of the footing pdY Y coordinate of the center of the footing pdZTopOffset Z offset value from the story elevation for the top of the footing plRetval 0 if successful

-1 if coordinates cannot be retrieved SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZOffset, [out, retval] long* plRetval)

Sets the coordinates of the layout isolated foundation. Available v9.0.

Parameters dX X coordinate of the center of the footing dY Y coordinate of the center of the footing dZTopOffset Z offset value from the story elevation for the top of the footing plRetval 0 if successful

-1 if coordinates cannot be set

Page 66: RAM Data Access Developers Guide

ILayoutIsolatedFnd Properties Type Property Get Set Description Ver long lUID X Unique ID of layout foundation. 9.0 EIsolatedFndType eType X X Type of isolated foundation (i.e. spread footing, pile cap) 9.0 long lMaterialID X Unique ID of material properties for this isolated foundation. Foundations are always

concrete. See section Getting material properties for a member for more information. 9.0

long lLabel X Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dOrientation X X Orientation of foundation 9.0 double dLeft X X Dimension from center of foundation to left edge of footing when footing major axis is

parallel to global X-axis 9.0

double dRight X X Dimension from center of foundation to right edge of footing when footing major axis is parallel to global X-axis

9.0

double dTop X X Dimension from center of foundation to top edge of footing when footing major axis is parallel to global X-axis

9.0

double dBottom X X Dimension from center of foundation to bottom edge of footing when footing major axis is parallel to global X-axis

9.0

double dThickness X X Thickness of foundation 9.0 long lPileID X X 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.

9.0

long lPileConfigurationID X X 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.

9.0

BOOL bDimensionsFromDesign X Indicates whether or not the dimensions returned for the footing are from the design or not 9.0

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.) Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of layout continuous foundations in the collection. Available v9.0. Parameters plCount Number of layout continuous foundations in the collection

Page 67: RAM Data Access Developers Guide

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

Gets an interface for a specific layout continuous foundation by index. Available v9.0. 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. Get ([in] long lUID, [out, retval] ILayoutContinuousFnd** ppILayoutContinuousFnd)

Gets an interface for a specific layout continuous foundation by unique ID. Available v9.0. 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. 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. Available v9.0. Parameters dStartX X coordinate of the center of the start of the footing dStartY Y coordinate of the center of the start of the footing dEndX X coordinate of the center of the end of the footing dEndY Y coordinate of the center of the end of the footing dZOffset Z offset value from the story elevation for the top of the footing applied to both the start and end of the footing ppILayoutContinuousFnd 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. Available v9.0. Parameters lUID Unique ID of layout continuous foundation to delete plRetval 0 if layout continuous foundation is deleted successfully

-1 if unique ID is not found in filtered list of layout continuous foundations

Page 68: RAM Data Access Developers Guide

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. Available v9.0. GetContinuousFnd ([out, retval] IContinuousFnd** ppIContinuousFnd)

Gets an interface for the continuous foundation associated with this layout continuous foundation. Available v9.0. 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. Available v9.0.

Parameters pdStartX X coordinate of the center of the start of the footing pdStartY Y coordinate of the center of the start of the footing pdEndX X coordinate of the center of the end of the footing pdEndY Y coordinate of the center of the end of the footing pdZOffset 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 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. Available v9.0.

Parameters dStartX X coordinate of the center of the start of the footing dStartY Y coordinate of the center of the start of the footing dEndX X coordinate of the center of the end of the footing

Page 69: RAM Data Access Developers Guide

dEndY Y coordinate of the center of the end of the footing dZOffset 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 set

ILayoutContinuousFnd Properties Type Property Get Set Description Ver long lUID X Unique ID of layout continuous foundation. 9.0 long lMaterialID X Unique ID of material properties for this continuous foundation. Foundations are always concrete. See

section Getting material properties for a member for more information. 9.0

long lLabel X Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dOrientation X Orientation of foundation 9.0 double dLeft X X Dimension from center of foundation to left edge defined when footing major axis is parallel to global X-

axis 9.0

double dRight X X Dimension from center of foundation to right edge defined when footing major axis is parallel to global X-axis

9.0

double dTop X X Dimension from center of foundation to top edge defined when footing major axis is parallel to global X-axis

9.0

double dBottom X X Dimension from center of foundation to bottom edge defined when footing major axis is parallel to global X-axis

9.0

double dThickness X X Thickness of foundation 9.0 BOOL bDimensionsFromDesign X Indicates whether or not the dimensions returned for the footing are from the design or not 9.0

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. Available v11.0. GetCount([out, retval] long *plCount)

Gets the number of line load sets in the collection. Available v11.0. Parameters plCount Number of line load sets in the collection

Page 70: RAM Data Access Developers Guide

Get ([in] long lUID, [out, retval] ILineLoadSet** ppILineLoadSet); Gets an interface for a specific point load set by index. Available v11.0. Parameters lUID Unique ID of the requested line load set ppILineLoadSet 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. Available v11.0. Parameters lIndex The index into the collection of the requested line load set ppILineLoadSet Pointer to an ILineLoadSet interface that represents the requested line load set, or NULL if lIndex is invalid.

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

Deletes the line load set with the given unique ID. Available v11.0. Parameters lUID Unique ID of line load set to delete plRetval 0 if line load set is deleted successfully

-1 if unique ID is not found in list of point load sets 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. Available v11.0. Parameters lPropSetID Unique ID of point load property set associated with this point load set dStartX X coordinate of the start of the line load set dStartY Y coordinate of the start of the line load set dEndX X coordinate of the end of the line load set dEndY Y coordinate of the end of the line load set ppILineLoadSet Pointer to an ILineLoadSet interface that represents the newly added line load set.

Page 71: RAM Data Access Developers Guide

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. Available v11.0.

Properties Type Property Get Set Description Ver long lUID X Unique ID of the Line Load Set 11.0 long lPropertySetUID X X The UID of the LineLoadPropertySet associated with the line load set 11.0 SCoordinate sCoordinateStart X X Location of start of the line load (only X and Y are used) 11.0 SCoordinate sCoordinateEnd X X Location of end of the line load (only X and Y are used) 11.0

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. Available v11.0. GetCount ([out, retval] long *plCount)

Gets the number of point load sets in the collection. Available v11.0. Parameters plCount Number of point load sets in the collection

Get ([in] long lUID, [out, retval] IPointLoadSet** ppIPointLoadSet)

Gets an interface for a specific point load set by index. Available v11.0. Parameters lUID Unique ID of the requested point load set ppIPointLoadSet 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.

Page 72: RAM Data Access Developers Guide

GetAt ([in] long lIndex, [out, retval] IPointLoadSet** ppIPointLoadSet) Gets an interface for a specific point load set by index. Available v11.0. Parameters lIndex The index into the collection of the requested point load set ppIPointLoadSet Pointer to an IPointLoadSet interface that represents the requested point load set, or NULL if lIndex is invalid.

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

Deletes the point load set with the given unique ID. Available v11.0. 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 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. Available v11.0. Parameters lPropSetID Unique ID of point load property set associated with this point load set dX X coordinate of the point load set dY Y coordinate of the point load set ppIPointLoadSet Pointer to an IPointLoadSet interface that represents the newly added point load set.

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. Available v11.0.

Properties Type Property Get Set Description Ver long lUID X Unique ID of the Point Load Set 11.0 long lPropertySetUID X X The UID of the PointLoadPropertySet associated with the point load 11.0 SCoordinate sCoordinate X X Location of the point load (only X and Y are used) 11.0

Page 73: RAM Data Access Developers Guide

IStories This interface represents a collection of all stories in the model. It can be used to add and delete stories. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of stories in the collection. Available v9.0. Parameters plCount Number of stories in the collection

GetAt ([in] long lIndex, [out, retval] IStory** ppIStory)

Gets an interface for a specific story by index. Available v9.0. Parameters lIndex The index into the collection of the requested story ppIStory Pointer to an IStory interface that represents the requested story, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] IStory** ppIStory)

Gets an interface for a specific story by unique ID. Available v9.0.

Parameters lUID The unique ID of the requested story ppIStory 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. 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. Available v9.0. Parameters lFlrTypeID The unique ID of the floor type to associate with this story bstrStoryName A label for the story. Limited to 19 characters. dFloorHeight The height of this story (not the elevation, but the distance from floor to ceiling)ppIStory Pointer to an IStory interface that represents the newly added story.

Page 74: RAM Data Access Developers Guide

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

Deletes a story with the given unique ID from the collection. Available v9.0. Parameters lUID Unique ID of story to delete plRetval 0 if story is deleted successfully

-1 if unique ID is not found in collection of story GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for stories. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with

stories

IStory This interface represents a single story in the model. Available v9.0. GetBeams ([out, retval] IBeams** ppIBeams)

Gets the collection of all beams for this story. Available v9.0. 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. Available v9.0. Parameters ppIColumns Pointer to an IColumns collection interface that represents all columns associated with this story

Page 75: RAM Data Access Developers Guide

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

Gets the collection of all walls for this story. Available v9.0. Parameters ppIWalls Pointer to an IWalls collection interface that represents all walls associated with this story

GetVerticalBraces ([out, retval] IVerticalBraces** ppIVerticalBraces)

Gets the collection of all vertical braces whose top node attaches to this story. Available v9.0. Parameters ppIVerticalBraces Pointer to an IVerticalBraces collection interface that represents all vertical braces at this story

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

Gets the collection of all horizontal braces for this story. Available v9.0. 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. Available v9.0. Parameters ppIIsolatedFnds Pointer to an IIsolatedFnds collection interface that represents all isolated foundations associated with this story

GetContinuousFnds ([out, retval] IContinuousFnds** ppIContinuousFnds)

Gets the collection of all continuous foundations for this story. Available v9.0. Parameters ppIContinuousFnds Pointer to an IContinuousFnds collection interface that represents all continuous foundations associated with this

story

Page 76: RAM Data Access Developers Guide

GetDiaphragms ([out, retval] IDiaphragms** ppIDiaphragms)

Gets the collection of all diaphragms for this story. Available v10.0. Parameters ppIDiaphragms Pointer to an IDiaphragms collection interface that represents all diaphragms associated with this story

GetFloorType ([out, retval] IFloorType** ppIFloorType)

Gets the floor type associated with this story. Available v9.0. Parameters ppIFloorType Pointer to an IFloorType interface that represents the floor type associated with this story

DeleteVerticalBrace ([in] long lBraceID, [out, retval] long* plRetval)

Deletes the vertical brace with the given unique ID. Available v9.0. Parameters lBraceID Unique ID of vertical brace to delete plRetval 0 if vertical brace is deleted successfully

-1 if unique ID is not found in list of vertical braces on this story 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. Available v9.0. Parameters eAction The action for which the timestamp was recorded (see enum for action types) lObjectID 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).

eProperty 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.

plTimestamp The time in seconds since Jan 1, 1969 plRetval 0 if time stamp retrieved successfully

Page 77: RAM Data Access Developers Guide

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

Gets a collection of user-defined properties for the story. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IStory Properties Type Property Get Set Description Verlong lUID X Unique ID of story. 9.0 BSTR strLabel X X Label of story. Limited to 19 characters.

9.0

long lLevel X The level of the story, with 1 being the lowest story 9.0 double dFlrHeight X X The height of this story (not the elevation, but the distance from floor to ceiling) 9.0 double dElevation X The elevation of the story from ground level to the bottom of the story

9.0

BOOL bStySpliceAtSty X X If TRUE, all columns will be spliced at this story 9.0

Page 78: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of beams in the collection

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

Gets an interface for a specific beam by index. Available v9.0. Parameters lIndex The index into the collection of the requested beam ppIBeam Pointer to an IBeam interface that represents the requested beam, or NULL if lIndex is invalid.

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

Gets an interface for a specific beam by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout beam ppIBeam 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. Filter ([in] EBeamFilter eBeamFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of beams based on given criteria. Available v9.0. Parameters eFilter 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

Page 79: RAM Data Access Developers Guide

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

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

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. Available v9.0. GetCoordinates ([in] EBeamCoordLoc eBeamCoordLoc, [out] SCoordinate *pStartPoint, [out] SCoordinate *pEndPoint, [out, retval] long* plRetval)

Gets the indicated coordinates for the beam. Available v9.0. Parameters eBeamCoordLoc Whether to get the end coordinates or the support coordinates pStartPoint SCoordinate corresponding to the start of the beam pEndPoint SCoordinate corresponding to the end of the beam plRetval 0 if successful

-1 if coordinates cannot be retrieved

EBeamCoordLoc Description eBeamEnds The beam end coordinates (at ends of cantilevers, if any) eBeamSupports The beam support coordinates

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

Gets a collection of user-defined properties for the member. Available v11.0. Parameters strCustomProps 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) ppIProperties Pointer to an IProperties interface that represents a collection of properties for this member

Page 80: RAM Data Access Developers Guide

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

Gets an interface for a specific property by property name. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

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

Gets the steel beam design results interface. Available v10.0.4. Parameters

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

Gets the analytical result interface. Available v10.0.4. Parameters

IBeam Properties Note that some properties of beams cannot be changed through the IBeam interface. Any properties which cannot vary story-to-story when a floor type is used by multiple stories must be set through the ILayoutBeam interface. Type Property Get Set Description Ver long lUID X Unique ID of beam. 9.0 EMATERIALTYPES eMaterial X X Material type of beam. Valid options for beams are ESteelMat, ESteelJoistMat,

ESmartbeamBeamMat, EConcreteMat, or EOtherMat. 9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of beam used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dStartCantileverLength X Length of cantilever at start of beam (i-end) 9.0 double dEndCantileverLength X Length of cantilever at end of beam (j-end) 9.0 EJoistType eMemberJoistType X Type of joist (if beam material type is ESteelJoistMat) 9.0 EFRAMETYPE eFramingType X Whether member is lateral or gravity 9.0

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

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

Page 81: RAM Data Access Developers Guide

Type Property Get Set Description Ver long lFrameNumber X X Frame number for lateral members. It must be positive number. 9.0 BOOL bComposite X If TRUE, beam is composite. If FALSE, beam is non-composite. 9.0 double dCamber X X Camber of the beam (Set became available in v10.04) 9.0 long lBeamLineNumber X X Beam line that beam is part of (applicable only if this is a concrete beam). 9.0 BOOL bTorFixedStart X X Torsion release at start of beam (i-end). 9.0 BOOL bTorFixedEnd X X Torsion release at end of beam (j-end). 9.0 BOOL bMinAxisBendFixedStart X X Minor axis bending release at start of beam (i-end). 9.0 BOOL bMinAxisBendFixedEnd X X Minor axis bending release at end of beam (j-end). 9.0 BOOL bMajAxisBendFixStart X X Major axis bending release at start of beam (i-end). 9.0 BOOL bMajAxisBendFixEnd X X Major axis bending release at end of beam (j-end). 9.0 BSTR strSectionLabel X X 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.

9.0

long lSectionID X X 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.

9.0

ESTEEL_SEC eOptimizeShape X Shape for which beam is to be optimized (if section is not user-defined). 9.0

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of horizontal braces in the collection

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

Gets an interface for a specific horizontal brace by index. Available v9.0. Parameters lIndex The index into the collection of the requested horizontal brace ppIHorizBrace Pointer to an IHorizBrace interface that represents the requested horizontal brace, or NULL if lIndex is invalid.

Page 82: RAM Data Access Developers Guide

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

Gets an interface for a specific horizontal brace by unique ID. Available v9.0. Parameters lUID The unique ID of the requested layout horizontal brace ppIHorizBrace 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. Filter ([in] EHorizBraceFilter eHorizBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout horizontal braces based on given criteria. Available v9.0. Parameters eFilter 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 GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

Page 83: RAM Data Access Developers Guide

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. Available v9.0. GetEndCoordinates ([out] SCoordinate* pStartPoint, [out] SCoordinate* pEndPoint, [out, retval] long* plRetval)

Gets the end coordinates for the horizontal brace. Available v9.0. Parameters pStartPoint SCoordinate corresponding to the start of the horizontal brace pEndPoint SCoordinate corresponding to the end of the horizontal brace 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. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

Page 84: RAM Data Access Developers Guide

IHorizBrace 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 Property Get Set Description Ver long lUID X Unique ID of horizontal brace. 9.0 EMATERIALTYPES eMaterial X Material type of horizontal brace. Valid options for horizontal braces are

ESteelMat, EConcreteMat, or EOtherMat. 9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of horizontal brace used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

BSTR strSectionLabel X X 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.

9.0

long lSectionID X X 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.

9.0

BOOL bTorFixedStart X X Torsion release at start of horizontal brace (i-end). 9.0 BOOL bTorFixedEnd X X Torsion release at end of horizontal brace (j-end). 9.0 BOOL bMinAxisBendFixedStart X X Minor axis bending release at start of horizontal brace (i-end). 9.0 BOOL bMinAxisBendFixedEnd X X Minor axis bending release at end of horizontal brace (j-end). 9.0 BOOL bMajAxisBendFixStart X X Major axis bending release at start of horizontal brace (i-end). 9.0 BOOL bMajAxisBendFixEnd X X Major axis bending release at end of horizontal brace (j-end). 9.0 ETensionCompressionMemType eAnalysisType X X Indicates whether horizontal brace takes tension, compression, or both 9.0 BOOL bDblAngleLLBacktoBack X X 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.

9.0

BOOL bDblAngleSnugTightBolt X X 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.

9.0

double dDblAngleBackSpacing X X Spacing distance between angles of double angle section. Applies to a steel horizontal brace that has been assigned a double angle section.

9.0

BOOL bSglAngleLLHorizontal X X 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.

9.0

Page 85: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of vertical braces in the collection

GetAt ([in] long lIndex, [out, retval] IVerticalBrace** ppIVerticalBrace)

Gets an interface for a specific vertical brace by index. Available v9.0. Parameters lIndex The index into the collection of the requested vertical brace ppIVerticalBrace Pointer to an IVerticalBrace interface that represents the requested vertical brace, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] IVerticalBrace** ppIVerticalBrace)

Gets an interface for a specific vertical brace by unique ID. Available v9.0. Parameters lUID The unique ID of the requested vertical brace ppIVerticalBrace 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.

Page 86: RAM Data Access Developers Guide

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. Available v9.0. Parameters eMat Material type of vertical brace to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat). lTopStoryID Unique ID of story that top node of brace frames into dTopX X coordinate of top of the brace. dTopY Y coordinate of top of the brace dTopZOffset Z offset value from the story elevation for top of brace lBotStoryID Unique ID of story that bottom node of brace frames into, or -1 if at ground level dBotX X coordinate of end of the wall (j-end). dBotY Y coordinate of end of the wall (j-end). dBotZOffset Z offset value from the story elevation for the bottom of the brace (measured from the elevation of the story

indicated by lBotStoryID). ppIVerticalBrace 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. Available v9.0. Parameters lUID Unique ID of vertical brace to delete plRetval 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. Available v9.0. Parameters eVertBraceFilter 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

EVerticalBraceFilter Description varFilterCriteria eVBFilter_Material Filter by material of walls EMATERIALTYPES

Page 87: RAM Data Access Developers Guide

eVBFilter_NoFilter Remove all prior filtering N/A GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

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. Available v9.0. GetEndCoordinates ([out] SCoordinate* pTopPoint, [out] SCoordinate* pBottomPoint, [out, retval] long* plRetval)

Gets the end coordinates for the vertical brace. Available v9.0. Parameters pTopPoint SCoordinate corresponding to the top of the brace pBottomPoint SCoordinate corresponding to the bottom of the brace plRetval 0 if successful

-1 if coordinates cannot be retrieved

Page 88: RAM Data Access Developers Guide

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. Available v9.0. Parameters lTopStoryID Unique ID of story that top node of brace frames into dTopX X coordinate of top of the brace. dTopY Y coordinate of top of the brace dTopZOffset Z offset value from the story elevation for top of brace lBotStoryID Unique ID of story that bottom node of brace frames into dBotX X coordinate of end of the wall (j-end). dBotY Y coordinate of end of the wall (j-end). dBotZOffset Z offset value from the story elevation for the bottom of the brace (measured from the elevation of the story

indicated by lBotStoryID). plRetval 0 if successful

-1 if coordinates cannot be set GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)

Gets a collection of user-defined properties for the member. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IVerticalBrace Properties Type Property Get Set Description Ver long lUID X Unique ID of vertical brace. 9.0

Page 89: RAM Data Access Developers Guide

Type Property Get Set Description Ver EMATERIALTYPES eMaterial X X Material type of vertical brace. Valid options for vertical braces are ESteelMat,

EConcreteMat, or EOtherMat. 9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of vertical brace used for on-screen display in RAM Structural System.

9.0

BSTR strSectionLabel X X 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.

9.0

long lSectionID X X 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.

9.0

long lFrameNumber X X Frame number for lateral members. It must be positive number. 9.0 BOOL bTorFixedTop X X Torsion release at top of vertical brace. 9.0 BOOL bTorFixedBot X X Torsion release at bottom of vertical brace. 9.0 BOOL bMinAxisBendFixedTop X X Minor axis bending release at top of vertical brace. 9.0 BOOL bMinAxisBendFixedBot X X Minor axis bending release at bottom of vertical brace. 9.0 BOOL bMajAxisBendFixTop X X Major axis bending release at top of vertical brace. 9.0 BOOL bMajAxisBendFixBot X X Major axis bending release at bottom of vertical brace. 9.0 ETensionCompressionMemType eAnalysisType X X Indicates whether vertical brace takes tension, compression, or both 9.0 BOOL bDblAngleLLBacktoBack X X 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.

9.0

BOOL bDblAngleSnugTightBolt X X 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.

9.0

double dDblAngleBackSpacing X X Spacing distance between angles of double angle section. Applies to a steel vertical brace that has been assigned a double angle section.

9.0

BOOL bSglAngleLLHorizontal X X 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.

9.0

long lStoryAtTopID X Unique ID of story into which top of brace frames 9.0 long lStoryAtBotID X Unique ID of story into which bottom of brace frames 9.0

Page 90: RAM Data Access Developers Guide

IColumnStack This interface represents a single column stack in the model. Available v11.01. GetColumns ( [out, retval] IColumns** ppIColumns)

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

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

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

Properties Type Property Get Set Description Ver BSTR strGridLabel X Get the grid intersection label at this column stack 11.01 long lBasePlateColumnID X Unique ID of column at which the base plate occurs 11.01

IBasePlate This interface represents a single base plate. Available v11.01.

Properties Type Property Get Set Description Ver long lColumnID X Unique ID of the column associated with this base plate 11.01 double dWidth X Width of base plate 11.01 double dLength X Length of base plate (in direction of column major axis) 11.01 double dThickness X Thickness of base plate 11.01 double dAngle X The angle of the dLength axis with the X=0 Axis, counterclockwise. 11.01

Page 91: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of columns in the collection

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

Gets an interface for a specific column by index. Available v9.0. Parameters lIndex The index into the collection of the requested column ppIColumn Pointer to an IColumn interface that represents the requested column, or NULL if lIndex is invalid.

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

Gets an interface for a specific column by unique ID. Available v9.0. Parameters lUID The unique ID of the requested column ppIColumn 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. Filter ([in] EColumnFilter eColumnFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of columns based on given criteria. Available v9.0. Parameters eColumnFilter 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

Page 92: RAM Data Access Developers Guide

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

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs 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. Available v9.0. GetEndCoordinates ([out] SCoordinate* pTopPoint, [out] SCoordinate* pBottomPoint, [out, retval] long* plRetval)

Gets the end coordinates for the column. Available v9.0. Parameters pTopPoint SCoordinate corresponding to the top of the column pBottomPoint SCoordinate corresponding to the bottom of the column 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. Available v11.0. Parameters strCustomProps 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) ppIProperties Pointer to an IProperties interface that represents a collection of properties for this member

Page 93: RAM Data Access Developers Guide

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

Gets an interface for a specific property by property name. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IColumn Properties Note that some properties of columns cannot be changed through the IColumn interface. Any properties which cannot vary story-to-story when a floor type is used by multiple stories must be set through the ILayoutColumn interface. Type Property Get Set Description Ver long lUID X Unique ID of column. 9.0 EMATERIALTYPES eMaterial X X Material type of column. Valid options for columns are ESteelMat, EConcreteMat, or

EOtherMat. 9.0

long lMaterialID X 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.

9.0

long lLabel X Numeric label of column used for on-screen display in RAM Structural System. Each member type is uniquely numbered per floor type.

9.0

double dOrientation X Orientation of column with respect to the global axis system. 9.0 double dZBotOffset X X 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.

9.0

EFRAMETYPE eFramingType X Whether member is lateral or gravity 9.0 long lFrameNumber X X 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.

9.0

BOOL bTorFixedTop X X Torsion release at top of column (i-end). 9.0 BOOL bTorFixedBot X X Torsion release at bottom of column (j-end). 9.0 BOOL bMinAxisBendFixedTop X X Minor axis bending release at top of column (i-end). 9.0 BOOL bMinAxisBendFixedBot X X Minor axis bending release at bottom of column (j-end). 9.0 BOOL bMajAxisBendFixTop X X Major axis bending release at top of column (i-end). 9.0 BOOL bMajAxisBendFixBot X X Major axis bending release at bottom of column (j-end). 9.0 BSTR strSectionLabel X X 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.

9.0

long lSectionID X X 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.

9.0

Page 94: RAM Data Access Developers Guide

Type Property Get Set Description Ver BOOL bSpliceLevel X X Indicates whether this column is spliced at this story. This is set in the story data in

the modeler. 9.0

BOOL bAtFoundation X Indicates if column is at foundation level 10.0 ESTEEL_SEC eOptimizeShape X X Shape for which steel column will be optimized 10.0 EAnalyzeFlag eAnalyzeFlag X X Whether column will be optimized or analyzed during design. 10.0 BOOL bAbsMajorAxisEccentricity X TRUE if eccentricity in major axis is absolute distance. FALSE if eccentricity is

relative to column’s centerline. 10.0

BOOL bAbsMinorAxisEccentricity X TRUE if eccentricity in minor axis is absolute distance. FALSE if eccentricity is relative to column’s centerline.

10.0

double dMajorAxisEccentricity X Eccentricity value for major axis 10.0 double dMinorAxisEccentricity X Eccentricity value for minor axis 10.0 EBeamSpan eBeamSpanAtSide1 X Beam type framing into this side of column 10.0 EBeamSpan eBeamSpanAtSide2 X Beam type framing into this side of column 10.0 EBeamSpan eBeamSpanAtSide3 X Beam type framing into this side of column 10.0 EBeamSpan eBeamSpanAtSide4 X Beam type framing into this side of column 10.0 long lColumnAboveUID X Unique ID of column above 10.0 long lMemberBelowUID X Unique ID of column below 10.0 BOOL bBracedMajorAxisByMember X TRUE if column is braced in column local X direction by the slab or a beam (within

user specified angle) 10.0

long lUserBracedMajorAxis X X User bracing assignment for column local X direction -1 = use global criteria, 0 = not braced, 1 = braced

10.0

BOOL bBracedMinorAxisByMember X TRUE if column is braced in column local Y direction by the slab or a beam (within user specified angle)

10.0

long lUserBracedMinorAxis X X User bracing assignment for column local Y direction -1 = use global criteria, 0 = not braced, 1 = braced

10.0

BSTR strTrialSizeUsed1 X X User assigned trial size 1 10.0 BSTR strTrialSizeUsed2 X X User assigned trial size 2 10.0 BSTR strTrialSizeUsed3 X X User assigned trial size 3 10.0 double dUnityForSizeSelected X X Column interaction equation value 10.0 EUserOverride eUserSpliceLevel X X 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 user’s assignment overrides the story data setting except in cases where the physical geometry necessitates a splice, such as changing material between levels.

10.0

double dStressRatio X X Stress ratio for column (used by RAM Frame) 10.0 long lStoryID X Get the ID of the story this column belongs to. Returns -1 in the event of an error. 11.01

Page 95: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of walls in the collection

GetAt ([in] long lIndex, [out, retval] IWall** ppIWall)

Gets an interface for a specific wall by index. Available v9.0. Parameters lIndex The index into the collection of the requested wall ppIWall Pointer to an IWall interface that represents the requested wall, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] IWall** ppIWall)

Gets an interface for a specific wall by unique ID. Available v9.0. Parameters lUID The unique ID of the requested wall ppIWall 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. Filter ([in] EWallFilter eWallFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of walls based on given criteria. Available v9.0. Parameters eWallFilter 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

Page 96: RAM Data Access Developers Guide

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

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs 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. Available v9.0. GetEndCoordinates ([out] SCoordinate* pTopStartPoint, [out] SCoordinate* pTopEndPoint, [out] SCoordinate* pBotStartPoint, [out] SCoordinate* pBotEndPoint [out, retval] long* plRetval)

Gets the coordinates for the wall. Available v9.0. Parameters pTopStartPoint SCoordinate corresponding to the start of the wall at the top pTopEndPoint SCoordinate corresponding to the end of the wall at the top pBotStartPoint SCoordinate corresponding to the start of the wall at the bottom pBotEndPoint SCoordinate corresponding to the end of the wall at the bottom plRetval 0 if successful

-1 if coordinates cannot be retrieved 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. Available v10.0. Parameters ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

Page 97: RAM Data Access Developers Guide

GeFinalOpenings ([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. Available v10.0. Parameters ppIFinalWallOpenings Pointer to an IFinalWallOpenings 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. Available v10.0. Parameters ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

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

Gets a collection of user-defined properties for the member. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

Page 98: RAM Data Access Developers Guide

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. Available v11.0.

Parameters eAnalysisType Type of analysis for which to get force (Currently, only RAMFrameResultType supported) lAnalysisLoadCaseID Analysis load case ID for which to get force edge The edge along which node forces are to be provided. ppINodeForces Pointer to an IPointLoads interface that represents the collection of forces at the given edge for the given load

case.

IWall Properties Type Property Get Set Description Ver long lUID X Unique ID of wall. 9.0 EMATERIALTYPES eMaterial X X Material type of wall. Valid options for walls are EWallPropConcreteMat or EWallPropOtherMat. 9.0 long lMaterialID X 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. 9.0

long lLabel X Numeric label of wall used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dStartZBotOffset X X 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.

9.0

double dEndZBotOffset X X 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.

9.0

EFRAMETYPE eFramingType X Whether member is lateral or gravity 9.0 long lFrameNumber X X Frame number for lateral members. Must be positive number. 9.0 double dThickness X X Thickness of wall 9.0 double dCrackedFactor X X Cracked factor. Applies if wall is concrete. 9.0

Page 99: RAM Data Access Developers Guide

IRawWallOpenings This interface represents a collection of raw wall openings associated with a wall. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of wall openings in the collection. Available v10.0 Parameters plCount Number of raw wall openings in the collection

GetAt ([in] long lIndex, [out, retval] IRawWallOpening** ppIRawWallOpening)

Gets an interface for a raw wall opening by index. Available v10.0 Parameters lIndex The index into the collection of the requested raw wall opening ppIRawWallOpening Pointer to an IRawWallOpening interface that represents the requested raw wall opening, or NULL if lIndex is

invalid. Get ([in] long lUID, [out, retval] IRawWallOpening** ppIRawWallOpening)

Gets an interface for a specific raw wall opening by unique ID. Available v10.0 Parameters lUID The unique ID of the requested wall opening ppIRawWallOpening 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. 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. Available v10.0 Parameters eRefCorner Indicates the reference corner of the wall from which the opening location is measured dHorizontalLoc Horizontal location along the wall, measured from eRefCorner dVerticalLoc Vertical location along the wall, measured from eRefCorner dOpeningWidth Width of opening

Page 100: RAM Data Access Developers Guide

dOpeningHeight Height of opening ppIRawWallOpening 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. Available v10.0. Parameters lUID Unique ID of raw wall opening to delete plRetval 0 if opening is deleted successfully

-1 if lIndex is invalid

IRawWallOpening This interface represents a single raw wall opening. Available v10.0. GetOpeningVertices ([out,retval] IPoints** ppIVertexCoordinates)

Gets the vertices of the opening. Available v10.0.

Parameters ppIVertexCoordinates Pointer to an IPoints collection interface which represents the locations of the

vertices of the opening in 3D coordinates.

IRawWallOpening Properties Type Property Get Set Description Ver long lUID X Unique ID of wall opening 10.0long lLabel X Generated label for display of wall opening 10.0long lWallUID X Unique id of wall that opening was modeled in 10.0double dOpeningHeight X X Height of opening 10.0double dOpeningWidth X X Width of opening 10.0EDA_MEMBER_LOC eWallRefCorner X X Reference corner from which opening location is measured 10.0double dHorizontalLoc X X Horizontal location along wall, measured from eWallRefCorner 10.0double dVerticalLoc X X Vertical location along wall, measured from eWallRefCorner 10.0

Page 101: RAM Data Access Developers Guide

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. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of wall openings in the collection. Available v10.0 Parameters plCount Number of final wall openings in the collection

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

Gets an interface for a final wall opening by index. Available v10.0 Parameters lIndex The index into the collection of the requested final wall opening ppIRawWallOpening Pointer to an IFinalWallOpening interface that represents the requested final wall opening, or NULL if lIndex is

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

Gets an interface for a specific raw wall opening by unique ID. Available v10.0 Parameters lUID The unique ID of the requested wall opening ppFinalWallOpening 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.

Page 102: RAM Data Access Developers Guide

IFinalWallOpening This interface represents a single final wall opening, which is an opening clipped to a specific wall. Available v10.0. GetOpeningVertices ([out,retval] IPoints** ppIVertexCoordinates)

Gets the vertices of the opening clipped to the wall polygon. Available v10.0.

Parameters ppIVertexCoordinates Pointer to an IPoints collection interface which represents the locations of the

vertices of the opening in 3D coordinates.

IFinalWallOpening Properties Type Property Get Set Description Ver long lRawOpeningUID X Unique ID of raw wall opening from which this this clipped opening originated 10.0long lWallUID X Unique ID of wall to which this final opening is clipped 10.0

IRawWallSectionCuts This interface represents a collection of raw wall section cuts associated with a wall. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of wall section cuts in the collection. Available v10.0 Parameters plCount Number of raw wall section cuts in the collection

GetAt ([in] long lIndex, [out, retval] IRawWallSectionCut** ppIRawWallSectionCut)

Gets an interface for a raw wall section cut by index. Available v10.0 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.

Page 103: RAM Data Access Developers Guide

Get ([in] long lUID, [out, retval] IRawWallSectionCut** ppIRawWallSectionCut)

Gets an interface for a specific raw wall section cut by unique ID. Available v10.0 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. 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 wall opening to the collection of openings for the wall. Available v10.0 Parameters bstrLabel Display label for the section cut eOrientation Orienation of section cut lStartMemberUID Unique ID of member at which section cut starts (will be a wall or wall opening) lStartEdgeIndex Index of edge of wall or opening at which section cut starts dStartOffset Offset from start member edge lEndMemberUID Unique ID of member at which section cut terminates (wioll be a wall or wall opening) lEndEdgeIndex Index of edge of wall or opening at which section cut terminates dEndOffset Offset from end member edge

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

Deletes the raw wall section cut with the given unique ID. Available v10.0. Parameters lUID Unique ID of raw wall section cut to delete plRetval 0 if opening is deleted successfully

-1 if lIndex is invalid

Page 104: RAM Data Access Developers Guide

IRawWallSectionCut This interface represents a single raw wall section cut. Raw indicates it may span over multiple walls. Available v10.0. 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. Available v10.0.

Parameters eAnalysisType Type of analysis for which to get force (As of v10, only RAMFrameResultType supported) lAnalysisLoadCaseID Analysis load case ID for which to get force ppIMemberForce Pointer to an IMemberForce interface that represents the force at this section cut.

GetForcesForLoadCases ([in] EAnalysisResultType eAnalysisType, [in] IDAArray aAnalysisLoadCaseIDs, [out, retval] IMemberForces** ppIMemberForces)

Gets the force at this section cut for the given analysis type and load case ID. Available v10.0.

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. GetCutMembers ([out, retval] IDAArray** ppICutMembersArray)

Gets an array of members cut by this section cut. Available v10.0.

Parameters ppICutMembersArray Array of unique IDs of walls, beams, columns, that are cut by this section cut

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

Gets the section cut ends, global coordinates. Available v10.0.

Parameters pStartPoint Start coordinate of section cut pEndPoint End coordinate of section cut

Page 105: RAM Data Access Developers Guide

IRawWallSectionCut Properties Type Property Get Set Description Ver long lUID X Unique ID of section cut 10.0 BSTR strLabel X X User-defined label for section cut 10.0 EMemberOrientation eOrientation X X Orientation of section cut 10.0 long lStartMemberUID X X Unique ID of wall or wall opening from which section cut originates 10.0 long lStartEdgeIndex X X 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) 10.0

double dStartOffset X X Offset from bottom of wall or opening from which section cut originates 10.0 long lEndMemberUID X X Unique ID of wall or wall opening at which section cut terminates 10.0 long lEndEdgeIndex X X 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) 10.0

double dEndOffset X X Offset from bottom of wall or opening at which section cut terminates 10.0 BOOL bIncBoundaryElements X X 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 10.0

BOOL bFullModule X X Indicates whether the section cut was created in the full shear wall module 12.0 BOOL bAutoGenerated X X Indicates whether the section cut was autocreated by the module 12.0 long lWallDesignGroup X X Wall Design Group number this section cut is part of or -1 12.0 long lSectionCutWDGID X X Section Cut Group ID within the Wall Design Group 12.0

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of isolated foundations in the collection

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

Gets an interface for a specific isolated foundation by index. Available v9.0.

Page 106: RAM Data Access Developers Guide

Parameters lIndex The index into the collection of the requested isolated foundation ppIIsolatedFnd Pointer to an IIsolatedFnd interface that represents the requested isolated foundation, or NULL if lIndex is

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

Gets an interface for a specific isolated foundation by unique ID. Available v9.0. Parameters lUID The unique ID of the requested isolated foundation ppIIsolatedFnd 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. Filter ([in] EIsolatedFndFilter eIsolatedFndFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of isolated foundations based on given criteria. Available v9.0. Parameters eIsolatedFndFilter 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 GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

Page 107: RAM Data Access Developers Guide

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. Available v9.0. GetCoordinate ([out] SCoordinate* pCenterPoint, [out, retval] long* plRetval)

Gets the coordinate of the isolated foundation. Available v9.0.

Parameters pCenterPoint SCoordinate corresponding to the center point of the isolated foundation plRetval 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. Available v9.0.

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. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

Page 108: RAM Data Access Developers Guide

IIsolatedFnd Properties Type Property Get Set Description Ver long lUID X Unique ID of isolated foundation. 9.0 EIsolatedFndType eType X X Type of isolated foundation (i.e. spread footing, pile cap) 9.0 long lMaterialID X Unique ID of material properties for this isolated foundation. Foundation is always concrete.

See section Getting material properties for a member for more information. 9.0

long lLabel X Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dOrientation X X Orientation of foundation 9.0 double dLeft X X Dimension from center of foundation to left edge of footing when footing major axis is

parallel to global X-axis 9.0

double dRight X X Dimension from center of foundation to right edge of footing when footing major axis is parallel to global X-axis

9.0

double dTop X X Dimension from center of foundation to top edge of footing when footing major axis is parallel to global X-axis

9.0

double dBottom X X Dimension from center of foundation to bottom edge of footing when footing major axis is parallel to global X-axis

9.0

double dThickness X X Thickness of foundation 9.0 long lPileID X X 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.

9.0

long lPileConfigurationID X X 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.

9.0

BOOL bDimensionsFromDesign X Indicates whether or not the dimensions returned for the footing are from the design or not 9.0

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. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of continuous foundations in the collection. Available v9.0. Parameters plCount Number of continuous foundations in the collection

Page 109: RAM Data Access Developers Guide

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

Gets an interface for a specific continuous foundation by index. Available v9.0. Parameters lIndex The index into the collection of the requested continuous foundation ppIContinuousFnd Pointer to an IContinuousFnd interface that represents the requested continuous foundation, or NULL if lIndex is

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

Gets an interface for a specific continuous foundation by unique ID. Available v9.0. Parameters lUID The unique ID of the requested continuous foundation ppIContinuousFnd 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. GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

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. Available v9.0. GetCoordinates ([out] SCoordinate* pStartCenterLinePoint, [out] SCoordinate* pEndCenterLinePoint, [out, retval] long* plRetval)

Gets the coordinates of the continuous foundation. Available v9.0.

Parameters pStartCenterLinePoint SCoordinate corresponding to the start center point of the foundation

Page 110: RAM Data Access Developers Guide

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. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IContinuousFnd Properties Type Property Get Set Description Ver long lUID X Unique ID of continuous foundation. 9.0 long lMaterialID X Unique ID of material properties for this continuous foundation. Foundation is always concrete. See section

Getting material properties for a member for more information.

9.0

long lLabel X Numeric label of foundation used for on-screen display in RAM Structural System. It is unique per floor type.

9.0

double dOrientation X Orientation of foundation 9.0 double dLeft X X Dimension from center of foundation to left edge defined when footing major axis is parallel to global X-

axis 9.0

double dRight X X Dimension from center of foundation to right edge defined when footing major axis is parallel to global X-axis

9.0

double dTop X X Dimension from center of foundation to top edge defined when footing major axis is parallel to global X-axis

9.0

double dBottom X X Dimension from center of foundation to bottom edge defined when footing major axis is parallel to global X-axis

9.0

double dThickness X X Thickness of foundation 9.0 BOOL bDimensionsFromDesign X Indicates whether or not the dimensions returned for the footing are from the design or not

9.0

Page 111: RAM Data Access Developers Guide

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). Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of pile configurations in the collection. Available v9.0. Parameters plCount Number of pile configurations in the collection

GetAt ([in] long lIndex, [out, retval] IPileConfiguration** ppIPileConfiguration)

Gets an interface for a specific pile configuration by index. Available v9.0. 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. Get ([in] long lUID, [out, retval] IPileConfiguration** ppIPileConfiguration)

Gets an interface for a specific pile configuration by unique ID. Available v9.0.

Parameters lUID The unique ID of the requested pile configuration ppIPileConfiguration 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. 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. Available v9.0. Parameters bstrName A label for the pile configuration lNumVertRows Number of rows of piles perpendicular to the major axis lNumHorizRows Number of rows of piles parallel to the major axis ppIPileConfiguration Pointer to an IPileConfiguration interface that represents the newly added pile configuration.

Page 112: RAM Data Access Developers Guide

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

Deletes a pile configuration with the given unique ID from the collection. Available v9.0. Parameters lUID Unique ID of pile configuration to delete plRetval 0 if pile configuration is deleted successfully

-1 if unique ID is not found in collection of pile configuration

IPileConfiguration This interface represents a single pile configuration. Available v9.0.

IPileConfiguration Properties Type Property Get Set Description Ver long lUID X Unique ID of pile configuration. 9.0 EPileConfiguration eConfiguration X X Configuration of pile group 9.0 BSTR strLabel X X Label for this pile configuration 9.0 long lNumVertRows X X Number of rows of pile running perpendicular to the major axis of the footing. Applies to rectangular

pile configurations 9.0

long lNumHorizRows X X Number of rows of pile running parallel to the major axis of the footing. Applies to rectangular pile configurations

9.0

IPiles This interface represents a collection of all piles defined for the model. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of piles in the collection. Available v9.0. Parameters plCount Number of piles in the collection

GetAt ([in] long lIndex, [out, retval] IPile** ppIPile)

Gets an interface for a specific pile by index. Available v9.0. Parameters lIndex The index into the collection of the requested pile ppIPile Pointer to an IPile interface that represents the requested pile, or NULL if lIndex is invalid.

Page 113: RAM Data Access Developers Guide

Get ([in] long lUID, [out, retval] IPile** ppIPile)

Gets an interface for a specific pile by unique ID. Available v9.0.

Parameters lUID The unique ID of the requested pile ppIPile 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. 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. Available v9.0. Parameters bstrName A label for the pile dDiameter The diameter of the pile dCompressionCap The compression capacity of the pile dTensionCap The tension capacity of the pile dShearCap The shear capacity of the pile ppIPile 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. Available v9.0. Parameters lUID Unique ID of pile to delete plRetval 0 if pile is deleted successfully

-1 if unique ID is not found in collection of pile

IPile This interface represents a single pile.

IPile Properties Type Property Get Set Description Ver long lUID X Unique ID of pile. 9.0 BSTR strLabel X X Label for this pile 9.0 double dDiameter X X Diameter of pile 9.0 double dCompressionCap X X Compression capacity of pile 9.0

Page 114: RAM Data Access Developers Guide

Type Property Get Set Description Ver double dTensionCap X X Tension capacity of pile 9.0 double dShearCap X X Shear capacity of pile 9.0

IDiaphragms This interface represents a collection of all diaphragms associated with a story. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of diaphragms in the collection. Available v10.0. Parameters plCount Number of diaphragms in the collection

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

Gets an interface for a specific diaphragm by index. Available v10.0. Parameters lIndex The index into the collection of the requested diaphragm ( 0 to Count -1 ) ppIDiaphragm Pointer to an IDiaphragm interface that represents the requested diaphragm, or NULL if lIndex is invalid.

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

Gets an interface for a specific diaphragm by unique ID. Available v10.0. Parameters lUID The unique ID of the requested diaphragm ppIDiaphragm 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.

Page 115: RAM Data Access Developers Guide

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. Available v10.0. GetPointLoads ([in] EAnalysisResultType eAnalysisType, [in] long lLoadCaseID, [out,retval] IPointLoads** ppIPointLoads)

Gets the collection of point loads on this diaphragm. Available v10.0. Parameters eAnalysisType The analysis type (As of v10 only RAMFRAMEResultType is supported) lLoadCaseID Unique ID for the load case the diaphragm applied loads are associated with. ppIPointLoads 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.

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of concrete sections in the collection

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

Gets an interface for a specific concrete section property by index. Available v9.0. Parameters lIndex The index into the collection of the requested concrete section ppIConcSectProp Pointer to an IConcSectProp interface that represents the requested concrete section, or NULL if lIndex is invalid.

Page 116: RAM Data Access Developers Guide

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

Gets an interface for a specific concrete section property by unique ID. Available v9.0. Parameters lUID The unique ID of the requested concrete section ppIConcSectProp 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. 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. Available v9.0. Parameters bstName Label of concrete tee section. Limited to 15 characters. dFlangeLeftOverhang Left flange overhang (-1 if program should calculate) dFlangeRtOverhang Right flange overhang (-1 if program should calculate) dFlangeThick Flange thickness (-1 if program should calculate based on slab thickness) dTotalBeamDepth Total depth of beam section dWebWidth Web thickness of section ppIConcSectProp Pointer to an IConcSectProp interface that represents the newly added concrete section.

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. Available v9.0. Parameters bstName Label of concrete section. Limited to 15 characters. eMemType Must specify if this is a rectangular section for a beam, column or brace dTotalBeamDepth Total depth of section dWebWidth Web thickness of section ppIConcSectProp Pointer to an IConcSectProp interface that represents the newly added concrete section.

Page 117: RAM Data Access Developers Guide

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. Available v9.0. Parameters bstName Label of concrete section. Limited to 15 characters. eMemType Must specify if this is a rectangular section for a beam, column or brace dDiameter Diameter of section ppIConcSectProp 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. Available v9.0. Parameters lUID Unique ID of concrete section to delete plRetval 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. Available v9.0. Parameters eConcSectPropsFilter 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

EConcSectPropsFilter Description varFilterCriteria eCSPFilter_Shape Filter by shape of section ECONC_OTHER_SEC eCSPFilter_MemType Filter by member type section is for (beam,

column, or vertical brace) EUniqueMemberTypeID

eCSPFilter_NoFilter Remove all prior filtering N/A

Page 118: RAM Data Access Developers Guide

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

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

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. Available v9.0. 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. Available v11.0. Parameters strCustomProps 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) ppIProperties 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. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IConcSectProp Properties Type Property Get Set Description Ver long lUID X Unique ID of concrete section. 9.0 ECONC_OTHER_SEC eShape X Shape of the section. 9.0

Page 119: RAM Data Access Developers Guide

Type Property Get Set Description Ver EUniqueMemberTypeID eMemType X Type of member to which this section can be assigned. 9.0 BSTR strLabel X X A label for this concrete section. Limited to 15 characters. 9.0 double dDepth X X Depth of section. Applies to rectangular and tee sections. 9.0 double dWebWidth X X Web width of section. Applies to rectangular and tee sections. 9.0 double dDiameter X X Diameter of section. Applies to round sections. 9.0 double dFlangeOverhangLeft X X Left flange overhang. Applies to tee sections. If -1, program will

calculate this value. 9.0

double dFlangeOverhangRight X X Right flange overhang. Applies to tee sections. If -1, program will calculate this value.

9.0

double dFlangeThickLeft X X 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.

9.0

double dFlangeThickRight X X 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.

9.0

double dCrackedFactor X X Cracked factor of concrete section. 9.0

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of ‘Other’ sections in the collection

GetAt ([in] long lIndex, [out, retval] IOtherSectProp** ppIOtherSectProp)

Gets an interface for a specific ‘Other’ section property by index. Available v9.0. Parameters lIndex The index into the collection of the requested ‘Other’ section ppIOtherSectProp Pointer to an IOtherSectProp interface that represents the requested ‘Other’ section, or NULL if lIndex is invalid.

Page 120: RAM Data Access Developers Guide

Get ([in] long lUID, [out, retval] IOtherSectProp** ppIOtherSectProp)

Gets an interface for a specific ‘Other’ section property by unique ID. Available v9.0. Parameters lUID The unique ID of the requested ‘Other’ section ppIOtherSectProp 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. 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. Available v9.0. Parameters bstName Label of ‘Other’ section. Limited to 15 characters. eMemType Must specify if this is a section for a beam, column or brace dWidth Total width of section dDepth Depth of section dArea Area of section dMomInertiaMajor Moment of inertia in major direction (Ix). dMomInertiaMinor Moment of inertia in minor direction (Iy). dTorsionConstant Torsion Constant (J). dMajorShearArea Shear area in major direction. dMinorShearArea Shear area in minor direction. ppIOtherSectProp 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. Available v9.0. Parameters lUID Unique ID of ‘Other’ section to delete plRetval 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

Page 121: RAM Data Access Developers Guide

Filter ([in] EOtherSectPropsFilter eOtherSectPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of concrete sections based on given criteria. Available v9.0. 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

EOtherSectPropsFilter Description varFilterCriteria eOSPFilter_MemType Filter by member type section is for (beam,

column, or vertical brace) EUniqueMemberTypeID

eOSPFilter_NoFilter Remove all prior filtering N/A GetPropertyDefinitions ([in] BSTR strCustomProps, [out, retval] IPropertyDefinitions** ppIPropertyDefs)

Gets a collection of user-defined property definitions for this member type. Available v11.0. Parameters strCustomProps 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) ppIPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection of properties that can be associated with this

member type

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. Available v9.0. GetProperties ([in] BSTR strCustomProps, [out, retval] IProperties** ppIProperties)

Gets a collection of user-defined properties for the member. Available v11.0. Parameters strCustomProps 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) ppIProperties Pointer to an IProperties interface that represents a collection of properties for this member

Page 122: RAM Data Access Developers Guide

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

Gets an interface for a specific property by property name. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

IOtherSectProp Properties Type Property Get Set Description Ver long lUID X Unique ID of ‘Other’ section. 9.0 EUniqueMemberTypeID eMemType X Type of member to which this section can be assigned. 9.0 BSTR strLabel X X A label for this ‘Other’ section. Limited to 15 characters. 9.0 double dDepth X X Depth of section measured in direction of major axis. 9.0 double dWidth X X Width of section. 9.0 double dArea X X Area of section. 9.0 double dMomInertiaMajor X X Moment of inertia in major direction (Ix). 9.0 double dMomInertiaMinor X X Moment of inertia in minor direction (Iy). 9.0 double dTorsionConstant X X Torsion Constant (J). 9.0 double dShearAreaMajor X X Shear area in major direction. 9.0 double dShearAreaMinor X X Shear area in minor direction. 9.0

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of composite deck properties in the collection

Page 123: RAM Data Access Developers Guide

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

Gets an interface for a specific composite deck property by index. Available v9.0. Parameters lIndex The index into the collection of the requested composite deck property ppICompDeckProp Pointer to an ICompDeckProp interface that represents the requested composite deck property, or NULL if lIndex is

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

Gets an interface for a specific composite deck property by unique ID. Available v9.0. Parameters lUID The unique ID of the requested composite deck property ppICompDeckProp 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. Add ([in] BSTR bstDeckType, [in] double dThickAboveFlutes, [in] double dStudLength, [out, retval] ICompDeckProp ** ppICompDeckProp)

Adds a new composite deck property. Available v9.0. Parameters bstDeckType Name of deck from deck table dThickAboveFlutes Thickness of concrete above top of flutes dStudLength Length of the stud ppICompDeckProp 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. Available v9.0. Parameters lUID Unique ID of composite deck property to delete plRetval 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

Page 124: RAM Data Access Developers Guide

Filter ([in] ECompDeckPropsFilter eCompDeckPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of composite deck properties based on given criteria. Available v9.0. Parameters eCompDeckPropsFilter 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

ECompDeckPropsFilter Description varFilterCriteria eCDPFilter_DeckType Filter by deck type BSTR eCDPFilter_NoFilter Remove all prior filtering N/A

ICompDeckProp This interface represents a single composite deck property.

ICompDeckProp Properties Type Property Get Set Description Ver long lUID X Unique ID of composite deck property. 9.0 BSTR strDeckType X X Type of deck. This name must match the name in the deck table and

is limited to 19 characters. 9.0

double dThickAboveFlutes X X Concrete thickness above top of flutes. 9.0 double dStudLength X X The length of the studs. 9.0 double dUnitWeight X X The unit weight of the concrete (ksi). 9.0 double dFpc X X The concrete compression capacity (psi). 9.0 double dStudFu X X The ultimate strength of the stud (ksi). 9.0 double dSelfWtDeck X X The self-weight of the steel deck (psf). 9.0 double dStudDiameter X X The stud diameter.

9.0

BOOL bShored X X TRUE if the deck is shored. 9.0

Page 125: RAM Data Access Developers Guide

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. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of concrete slab properties in the collection. Available v9.0. Parameters plCount Number of concrete slab properties in the collection

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

Gets an interface for a specific concrete slab property by index. Available v9.0. Parameters lIndex The index into the collection of the requested concrete slab property ppIConcSlabProp Pointer to an IConcSlabProp interface that represents the requested concrete slab property, or NULL if lIndex is

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

Gets an interface for a specific concrete slab property by unique ID. Available v9.0. Parameters lUID The unique ID of the requested concrete slab property ppIConcSlabProp 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. Add ([in] BSTR bstSlabName, [in] double dThick, [in] double dSelfWeight, [out, retval] IConcSlabProp** ppIConcSlabProp)

Adds a new concrete slab property. Available v9.0. Parameters bstSlabName Label for concrete slab property. Limited to 19 characters. dThick Thickness of concrete slab dSelfWeight Self-weight of concrete slab

Page 126: RAM Data Access Developers Guide

ppIConcSlabProp 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. Available v9.0. Parameters lUID Unique ID of concrete slab property to delete plRetval 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

IConcSlabProp This interface represents a single concrete slab property. Available v9.0.

IConcSlabProp Properties Type Property Get Set Description Ver long lUID X Unique ID of concrete slab property. 9.0 BSTR strLabel X X Label of concrete slab property. Limited to 19 characters. 9.0 double dThickness X X Thickness of concrete slab. 9.0 double dSelfWeight X X Self-weight of concrete slab. 9.0

INonCompDeckProps This interface represents a collection of non-composite deck properties defined in the model. As of v9.0, a RAM Structural System model only has one non-composite deck property, so there is no Add function in this interface. However, being able to define multiple non-composite deck properties is an expected enhancement, so this interface has been included in the RAM Object Model. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of non-composite deck properties in the collection. Available v9.0. Parameters plCount Number of non-composite deck properties in the collection

Page 127: RAM Data Access Developers Guide

GetAt ([in] long lIndex, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)

Gets an interface for a specific non-composite deck property by index. Available v9.0. 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. Get ([in] long lUID, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)

Gets an interface for a specific non-composite deck property by unique ID. Available v9.0. 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.

INonCompDeckProp This interface represents a single non-composite deck property. Available v9.0.

INonCompDeckProp Properties Type Property Get Set Description Ver double dSelfWeight X X The self-weight of the deck 9.0

ISteelMaterials This interface represents a collection object of steel material sets. Currently, material properties are stored with individual members. It is anticipated that in the future, the RAM Structural System will allow for the creation of steel material sets that can be defined once and assigned to multiple members, and at that time, this interface will be fully implemented. Available v9.0. Get ([in] long lUID, [out, retval] ISteelMaterial **ppISteelMaterial)

Gets an interface for a specific steel material property set by unique ID. Available v9.0. Parameters lUID The unique ID of the requested steel material property set ppISteelMaterial Pointer to an ISteelMaterial interface that represents the requested steel material property set, or NULL if no steel

material property set is found in the collection with the given unique ID.

Page 128: RAM Data Access Developers Guide

ISteelMaterial This interface represents a single steel material property set. A member’s steel material properties can be read and set through this interface. Available v9.0.

ISteelMaterial Properties Type Property Get Set Description Ver double dFy X X Yield strength (Fy) of the steel. 9.0

IConcreteMaterials This interface represents a collection object of concrete material sets. Currently, material properties are stored with individual members. It is anticipated that in the future, the RAM Structural System will allow for the creation of concrete material sets that can be defined once and assigned to multiple members, and at that time, this interface will be fully implemented. Available v9.0. Get ([in] long lUID, [out, retval] IConcreteMaterial **ppIConcreteMaterial)

Gets an interface for a specific concrete material property set by unique ID. Available v9.0. Parameters lUID The unique ID of the requested concrete material property set ppIConcreteMaterial Pointer to an IConcreteMaterial interface that represents the requested concrete material property set, or NULL if

no concrete material property set is found in the collection with the given unique ID.

IConcreteMaterial This interface represents a single concrete material property set. A member’s concrete material properties can be read and set through this interface. Available v9.0.

IConcreteMaterial Properties Type Property Get Set Description Ver double dFpc X X Concrete compressive strength (f’c). 9.0 double dUnitWeight X X Unit weight of member. 9.0 double dSelfWeight X X Self-weight of member. 9.0 double dPoissonsRatio X X Poisson’s Ratio. 9.0 EAggregateType eConcreteAggType X X Aggregate type of concrete. (Only applicable for beams and columns) 9.0 double dFct X X Concrete cracking stress capacity. Only used for ACI code design.

(Only applicable for beams and columns) 9.0

double dElasticModulus X X Elastic modulus. If -1, the program will calculate this value. (Only applicable for beams and columns)

9.0

double dAggregateSize X X Aggregate size of concrete (Only applicable for British code and only for beams and columns)

11.1

Page 129: RAM Data Access Developers Guide

IOtherMaterials This interface represents a collection object of ‘Other’ material sets. Currently, material properties are stored with individual members. It is anticipated that in the future, the RAM Structural System will allow for the creation of ‘Other’ material sets that can be defined once and assigned to multiple members, and at that time, this interface will be fully implemented. Available v9.0. Get ([in] long lUID, [out, retval] IOtherMaterial**ppIOtherMaterial)

Gets an interface for a specific ‘Other’ material property set by unique ID. Available v9.0. Parameters lUID The unique ID of the requested ‘Other’ material property set ppIOtherMaterial Pointer to an IOtherMaterial interface that represents the requested ‘Other’ material property set, or NULL if no

‘Other’ material property set is found in the collection with the given unique ID.

IOtherMaterial This interface represents a single ‘Other’ material property set. A member’s ‘Other’ material properties can be read and set through this interface. Available v9.0.

IOtherMaterial Properties Type Property Get Set Description Ver double dE X X Young’s modulus, modulus of elasticity (E). 9.0 double dSelfWeight X X Self weight of member. 9.0 double dPoissonsRatio X X Poisson’s Ratio. 9.0

ILoadCases This interface represents a collection of load cases. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of load cases in the collection. Available v10.0. Parameters plCount Number of load cases in the collection

Page 130: RAM Data Access Developers Guide

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

Gets an interface for a specific load case by index. Available v10.0. Parameters lIndex The index into the collection of the requested load case ppILoadCase Pointer to an ILoadCase interface that represents the requested load case, or NULL if lIndex is invalid.

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

Gets an interface for a specific load case by unique ID. Available v10.0. Parameters lUID Unique ID of requested load case ppILoadCase 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. Filter ([in] ELoadCaseFilter eLoadCaseFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of load combinations based on given criteria. Available v10.0. Parameters eLoadCaseFilter 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

ELoadCaseFilter Description varFilterCriteria eLoadCaseFilter_FrameType Filter by frame type (only include lateral or gravity) EFRAMETYPE eLoadCaseFilter_NoFilter Remove all prior filtering N/A

Page 131: RAM Data Access Developers Guide

ILoadCase This interface represents a single load case definition. Available v10.0. GetPrimaryLoadCases ([out,retval] ILoadCases** ppILoadCases)

Gets the collection of load cases that comprise this load case. Available v10.0. Parameters ppILoadCases Pointer to an ILoadCases collection interface that represents the load cases that comprise this load case.

ILoadCase Properties Type Property Get Set Description Ver long lUID X Unique ID of load case 10.0 BSTR strSymbol X The load case symbol (1-3chars) for reports/combos 10.0 BSTR strLoadCaseGroupLabel X X 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. 10.0

BSTR strTypeLabel X 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.

10.0

ELoadCaseType eLoadType X One of main load types: Gravity, Wind, Seismic, Dynamic Hyperstatic, Virtual, Other

10.0

ESubLoadCaseType eSubLoadType X Depending on load type defines more details of the actual type of load case. 10.0 ECompoundLoadCaseState eCompoundState X Whether this is merged/compound load case (made up of other load cases) 10.0 EStateStatus eAnalyzedState X Whether Load Case is analyzed/current 10.0 BOOL bReadOnly X Whether the properties of this load case can be modified 10.0 BOOL bConcShearWallSelected X X Is load case selected for combos in conc shear wall 12.0 double dLoadCaseAngle X Base shear angle 12.0 double dDirCoeffX X 12.0 double dDirCoeffY X 12.0 double dRhomax X 12.0 double dUBCRho X 12.0

ILoadCombinations This interface represents a collection of load combinations. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of load combinations in the collection. Available v10.0.

Page 132: RAM Data Access Developers Guide

Parameters plCount Number of load combinations in the collection

Page 133: RAM Data Access Developers Guide

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

Gets an interface for a specific load combination by index. Available v10.0. Parameters lIndex The index into the collection of the requested load combination ppILoadCombination Pointer to an ILoadCombination interface that represents the requested load combination, or NULL if lIndex is

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

Adds a new load combination to the end of the collection. Available v10.0. Parameters ppILoadCombination A pointer to an ILoadCombination that represents the newly added load combination

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

Deletes a load combination term in the collection at the specified index. Available v10.0. Parameters lIndex Index at which to delete term plRetVal 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. Available v10.0. 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

ELoadCombinationFilter Description varFilterCriteria eLoadComboFilter_InclLateral Filter to only include load combos that have lateral load cases in them. N/A

eLoadComboFilter_InclGravityOnly Filter to only include load combos that only have gravity load cases. N/A eLoadComboFilter_NoFilter Remove all prior filtering N/A

Page 134: RAM Data Access Developers Guide

ILoadCombination This interface represents a single load combination definition. Available v10.0. GetLoadCombinationTerms ([out,retval] ILoadCombinationTerms** ppILoadComboTerms)

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

combination.

ILoadCombination Properties Type Property Get Set Description Ver long lLabelNo X The label of the load combination as shown in the load combo dialog 10.0 BOOL bSelected X X User has selected this load combination to be considered 10.0 EStateStatus eStatus X Combination is valid (all load cases/factors exist in analyzed state) 10.0 ECombinationSourceType eType X Custom or Generated 10.0 BOOL bReadOnly X Whether this load combination can be modified or not 10.0 BSTR strDisplayString X The combination string formatted for display 10.0

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. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of load combination terms in the collection. Available v10.0. Parameters plCount Number of load combination terms in the collection

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

Gets an interface for a specific load combination term by index. Available v10.0. 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.

Page 135: RAM Data Access Developers Guide

Add ([in] double dFactor, [in] long lLoadCaseUID, [out, retval] ILoadCombinationTerm** ppILoadCombinationTerm)

Adds a new load combination term to the end of the collection. Available v10.0. 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

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. Available v10.0. Parameters lIndex Index at which to add new term 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. Available v10.0. Parameters lIndex Index at which to delete term plRetVal 0 if deleted successfully

ILoadCombinationTerm This interface represents a single load combination term. Available v10.0.

ILoadCombinationTerm Properties Type Property Get Set Description Ver double dFactor X X Factor to apply to the load case 10.0 long lLoadCaseID X X The Unique ID of the load case 10.0

Page 136: RAM Data Access Developers Guide

ILineLoadPropertySets This interface represents all the line load property sets as defined in the RAM Modeler. Available v11.0. GetCount([out, retval] long *plCount)

Gets the number of line load property sets in the collection. Available v11.0. Parameters plCount Number of line load property sets in the collection

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

Gets an interface for a specific line load property set by unique ID. Available v11.0. Parameters lUID Unique ID of the requested line load property set ppILineLoadPropSet 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. Available v11.0. Parameters lIndex Index of the requested line load property set ppILineLoadPropSet Pointer to an ILineLoadPropertySet interface that represents the requested line load property set, or NULL if

lIndex is invalid. Delete ([in] long lUID, [out, retval] long* plRetval)

Deletes a line load property set. Available v11.0. Parameters lUID Unique ID of line load property set to delete plRetVal 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.

Page 137: RAM Data Access Developers Guide

Add ([in] BSTR bstrLabel, [out,retval] ILineLoadPropertySet** ppILineLoadPropSet ) Adds a new line load property set to the collection. Available v11.0. Parameters bstrLabel Unique label for the line load property set. Limited to 19 characters. ppILineLoadPropSet A pointer to an ILineLoadPropertySet that represents the newly added line load property set

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

Properties Type Property Get Set Description Ver long lUID X Unique ID of property set 11.0 BSTR strLabel X X Label of the property set. Limited to 19 characters. 11.0 double dDeadLoad X X Dead load magnitude (positive is down) 11.0 double dLiveLoad X X Live load magnitude (positive is down) 11.0 double dConstDeadLoad X X Construction Dead load (positive is down) 11.0 double dConstLiveLoad X X Construction Dead load (positive is down) 11.0 ELoadCaseType eLiveLoadType X X The live load case type (MUST BE A LIVE LOAD TYPE) 11.0

IPointLoadPropertySets This interface represents all the point load property sets as defined in the RAM Modeler. Available v11.0. GetCount ([out, retval] long *plCount)

Gets the number of point load property sets in the collection. Available v11.0. Parameters plCount Number of point load property sets in the collection

Get ([in] long lUID, [out, retval] IPointLoadPropertySet** ppIPointLoadPropSet);

Gets an interface for a specific point load property set by unique ID. Available v11.0. Parameters lUID Unique ID of the requested point load property set ppIPointLoadPropSet 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.

Page 138: RAM Data Access Developers Guide

GetAt ([in] long lIndex, [out, retval] IPointLoadPropertySet**ppIPointLoadPropSet);

Gets an interface for a specific point load property set by index. Available v11.0. Parameters lIndex Index of the requested point load property set ppIPointLoadPropSet Pointer to an IPointLoadPropertySet interface that represents the requested point load property set, or NULL if

lIndex is invalid. Delete ([in] long lUID, [out, retval] long* plRetval)

Deletes a point load property set. Available v11.0. Parameters lUID Unique ID of point load property set to delete plRetVal 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. Add ([in] BSTR bstrLabel, [out,retval] IPointLoadPropertySet**ppIPointLoadPropSet);

Adds a new point load property set to the collection. Available v11.0. Parameters bstrLabel Unique label for the line load property set. Limited to 19 characters. ppIPointLoadPropSet A pointer to an IPointLoadPropertySet that represents the newly added point load property set

IPointLoadPropertySet This interface represents a single point load property set as defined in the modeler. Available v11.0.

Properties Type Property Get Set Description Ver long lUID X Unique ID of the property set 11.0 BSTR strLabel X X Label of the property set. Limited to 19 characters. 11.0 double dDeadLoad X X Dead load magnitude (positive is down) 11.0 double dLiveLoad X X Live load magnitude (positive is down) 11.0 double dConstDeadLoad X X Construction Dead load (positive is down) 11.0 double dConstLiveLoad X X Construction Dead load (positive is down) 11.0 ELoadCaseType eLiveLoadType X X The live load case type (MUST BE A LIVE LOAD TYPE) 11.0

Page 139: RAM Data Access Developers Guide

IPointLoads This interface represents a collection of individual point load objects. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of point loads in the collection. Available v10.0. Parameters plCount Number of point loads in the collection

GetAt ([in] long lIndex, [out, retval] IPointLoad** ppIPointLoad)

Gets an interface for a specific point load by index (zero based). Available v10.0. Parameters lIndex The index into the collection of the requested point load (0 to Count-1) ppIPointLoad Pointer to an IPointLoad interface that represents the requested point load, or NULL if lIndex is invalid.

IPointLoad This interface represents a single point load. Available v10.0. GetCoordinate ([out] SCoordinate* pLocation, [out, retval] long* plRetval)

Gets the number of point loads in the collection. Available v10.0. Parameters pLocation Location of the point load in global X,Y,Z coordinates plRetval Error code

IPointLoad 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 Property Get Set Description Ver double dFx X Horizontal force magnitude (kip) in X axis 10.0 double dFy X Horizontal force magnitude (kip) in Y axis 10.0 double dFz X Vertical force magnitude (kip) in Z axis 10.0 double dMxx X Moment about the XX axis 10.0 double dMyy X Moment about the YY axis 10.0 double dMzz X Moment about the ZZ Axis 10.0

Page 140: RAM Data Access Developers Guide

IMemberForces This interface represents the collection of forces in a member. Available v10.0. GetCount ([out, retval] long* plCount)

Gets the number of member forces in the collection. Available v10.0. Parameters plCount Number of member forces in the collection

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

Gets an interface for a specific member force by index. Available v10.0. Parameters lIndex The index into the collection of the requested member force (0 to Count -1 ) ppIMemberForce Pointer to an IMemberForce interface that represents the requested member force, or NULL if lIndex is

invalid.

IMemberForce This interface represents a single member force. Available v10.0.

IMemberForce Properties Type Property Get Set Description Ver long lLoadCaseID X Unique ID analysis load case responsible for this force 10.0 double dLocation X Normalized location along member (0.0-1.0) where force is applied (N/A for section cuts). 10.0 double dAxial X Axial force (kip) – Positive is compression 10.0 double dShearMajor X Shear in direction of Major axis of member* 10.0 double dShearMinor X Shear in direction of Minor axis of member* 10.0 double dMomentMajor X Moment about the minor axis (in direction of major axis)* 10.0 double dMomentMinor X Moment about the major axis (in direction of minor axis)* 10.0 double dTorsion X Torsion about the longitudinal axis of the member* 10.0 * For sign convention refer to the RAM SS manual or the documentation for IForces later in this document.

Page 141: RAM Data Access Developers Guide

ISteelBeamDesignResult This interface represents the steel beam design results for an individual steel beam. Available v10.0.4. GetNumStudsInSegments ([out, retval] IDAArray** 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. Available v10.0.4. 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] IDAArray* 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). Available v10.0.4. Parameters paINumStudsDAArray Array of longs that represent the number of studs in each segment plRetval 0 if successful, -1 if failed to set studs

IAnalyticalResult This interface represents the analytical results for an individual member. Available v10.0.4. 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. Available v10.0.4.

Parameters eComboType Combination type (Only STEEL_GRAV is supported currently) ppIMemberForces 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).

Page 142: RAM Data Access Developers Guide

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. Available v9.0. 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. Available v9.0. Parameters plCount Number of grid systems in the collection

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

Gets an interface for a specific grid system by index. Available v9.0. Parameters lIndex The index into the collection of the requested grid system ppIGridSystem Pointer to an IGridSystem interface that represents the requested grid system, or NULL if lIndex is invalid.

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

Gets an interface for a specific grid system by unique ID. Available v9.0. Parameters lUID The unique ID of the requested grid system ppIGridSystem 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. Add ([in] BSTR bstGridSystemLabel, [out, retval] IGridSystem** ppIGridSystem )

Adds a grid system to the collection of grid systems for the model. Available v9.0. Parameters bstGridSystemLabel Label for this grid system ppIGridSystem Pointer to an IGridSystem interface that represents the newly added grid system.

Page 143: RAM Data Access Developers Guide

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. Available v9.0.

Parameters lUID Unique ID of grid system to delete plRetval 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. Available v9.0. Parameters eGridSystemFilter 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

EGridSystemFilter Description varFilterCriteria eGSFilter_OrientationType Filter by grid system type SGridSysType eGSFilter_NoFilter Remove all prior filtering N/A

IGridSystem This interface represents a single grid system. Available v9.0. GetGrids ([out, retval] IModelGrids ** ppIGrids)

Gets the collection of grid lines for the grid system. Available v9.0. Parameters ppIGrids Pointer to an IModelGrids interface that represents the collection of grids for the grid system.

IGridSystem Properties Type Property Get Set Description Ver long lUID X Unique ID of grid system. 9.0 BSTR strLabel X X Label of grid system. 9.0 double dXoffset X X Offset of grid system from 0, along x-axis. 9.0

Page 144: RAM Data Access Developers Guide

Type Property Get Set Description Ver double dYoffset X X Offset of grid system from 0, along y-axis. 9.0 SGridSysType eOrientationType X X Orientation type of grid system. 9.0 double dRotation X X Rotation angle of grid system. 9.0

IModelGrids This interface represents a collection of grid lines from a grid system. Available v9.0. 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. Available v9.0. Parameters plCount Number of grids in the collection

GetAt ([in] long lIndex, [out, retval] IModelGrid ** ppIGrid)

Gets an interface for a specific grid by index. Available v9.0. Parameters lIndex The index into the collection of the requested grid ppIGrid Pointer to an IModelGrid interface that represents the requested grid, or NULL if lIndex is invalid.

Get ([in] long lUID, [out, retval] IModelGrid ** ppIGrid)

Gets an interface for a specific grid by unique ID. Available v9.0. Parameters lUID The unique ID of the requested grid line ppIGrid 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. 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. Available v9.0.

Parameters bstGridLabel Label for this grid

Page 145: RAM Data Access Developers Guide

eGridAxis The grid axis (i.e. x or y for an orthogonal grid system, Radial or Circular for radial grid systems) dGridCoord_Angle The grid coordinate or grid angle (for radial grid system) ppIGrid 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. Available v9.0.

Parameters lUID Unique ID of grid to delete plRetval 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. Available v9.0. Parameters eGridFilter 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

EGridFilter Description varFilterCriteria eGFilter_GridAxis Filter by grid axis (X, Y, Radial, Circular) EGridAxis eGFilter_NoFilter Remove all prior filtering N/A

IModelGrid This interface represents a single grid line. Available v9.0.

IModelGrid Properties Type Property Get Set Description Ver long lUID X Unique ID of grid line. 9.0 BSTR strLabel X X Grid label. 9.0 EGridAxis eAxis X The grid axis (X/Radial or Y/Circular). 9.0 double dCoordinate_Angle X X The grid coordinate or angle. 9.0 BOOL bApplyMinLimit X X If TRUE, this grid minimum will be drawn limited to user coordinate. 9.0 double dMinLimitValue X X 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. 9.0

Page 146: RAM Data Access Developers Guide

Type Property Get Set Description Ver BOOL bApplyMaxLimit X X If TRUE, this grid maximum will be drawn limited to user coordinate. 9.0 double dMaxLimitValue X X 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. 9.0

BOOL bDisplayLabelAtI X X If TRUE, the grid label bubble will be displayed at the I-end of the grid line. 9.0 BOOL bDisplayLabelAtJ X X If TRUE, the grid label bubble will be displayed at the J-end of the grid line. 9.0

IPoints This interface represents a collection of points. Available v9.0. GetCount ([out, retval] long* plCount)

Gets the number of points in the collection. Available v9.0. Parameters plCount Number of points in the collection

GetAt ([in] long lIndex, [out, retval] IPoint** ppIPoint)

Gets an interface for a specific point by index. Available v9.0. Parameters lIndex The index into the collection of the requested point ppIPoint Pointer to an IPoint interface that represents the requested point, or NULL if lIndex is invalid.

Add ([in] SCoordinate Point, [out, retval] IPoint** ppIPoint)

Adds a point to the collection. Available v9.0.

Parameters Point Coordinate of this point ppIPoint Pointer to an IPoint interface that represents the newly added point.

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. Available v9.0.

Parameters lIndex The index at which to add the point

Page 147: RAM Data Access Developers Guide

Point Coordinate of this point ppIPoint 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. Available v9.0.

Parameters lIndex Index of point to delete. plRetval 0 if point is deleted successfully

-1 if index is invalid

IPoint This interface represents a single point. Available v9.0. GetCoordinate ([out] SCoordinate *pPoint, [out, retval] long *plRetval)

Gets the coordinate of the point. Parameters pPoint The coordinate of the point plRetval 0 if coordinate is retrieved successfully

SetCoordinate ([in] SCoordinate Point, [out, retval] long *plRetval)

Sets the coordinate of the point. Available v9.0. Parameters Point The coordinate of the point plRetval 0 if coordinate is set successfully

Page 148: RAM Data Access Developers Guide

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. Available v11.0. GetCount ([out, retval] long* plCount)

Gets the number of property definitions in the collection. Available v11.0. Parameters plCount Number of property definitions in the collection

GetAt ([in] long lIndex, [out, retval] IPropertyDefinition** ppIPropertyDef)

Gets an interface for a specific property definition by index. Available v11.0. Parameters lIndex The index into the collection of the requested property definition ppIPropertyDef Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if lIndex is

invalid. Get ([in] BSTR bstrPropName, [out, retval], IPropertyDefinition** ppIPropertyDef)

Gets an interface for a specific property definition by property name. Available v11.0. Parameters bstrPropName The name of the requested property ppIPropertyDef Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if no property

is found with given name. AddPropDefDouble ([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. Available v11.0. Parameters bstrPropName Name of the property bstrPropDescription Description of the property (can be left blank) dDefaultValue Default value for this property when not set for a member ppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

Page 149: RAM Data Access Developers Guide

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. Available v11.0. Parameters bstrPropName Name of the property bstrPropDescription Description of the property (can be left blank) lDefaultValue Default value for this property when not set for a member ppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

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. Available v11.0. Parameters bstrPropName Name of the property bstrPropDescription Description of the property (can be left blank) bDefaultValue Default value for this property when not set for a member ppIPropertyDef 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. Available v11.0. Parameters bstrPropName Name of the property bstrPropDescription Description of the property (can be left blank) strDefaultValue Default value for this property when not set for a member ppIPropertyDef 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. Available v11.0. Parameters bstrPropName Name of property to delete

Page 150: RAM Data Access Developers Guide

plRetval 0 if property is deleted successfully -1 if no property is found with given name

IPropertyDefinition This interface represents a single property definition for a member type. Available v11.0. 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. Available v11.0. Parameters pdDefault Default value for the property plRetval 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. Available v11.0. Parameters plDefault Default value for the property plRetval 0 if value retrieved successfully

-1 if no appropriate type for this property. 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. Available v11.0. Parameters pbDefault Default value for the property plRetval 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. Available v11.0. Parameters pstrDefault Default value for the property

Page 151: RAM Data Access Developers Guide

plRetval Should always be zero since any data type can be returned as a string.

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. Available v11.0. Parameters dDefault Default value for the property plRetval 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. Available v11.0. Parameters lDefault Default value for the property plRetval 0 if value retrieved successfully

-1 if no appropriate type for this property. 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. Available v11.0. Parameters bDefault Default value for the property plRetval 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. Available v11.0. Parameters strDefault Default value for the property plRetval Should always be zero since any data type can be

returned as a string.

Page 152: RAM Data Access Developers Guide

IPropertyDef Properties Type Property Get Set Description Ver BSTR strPropName X X Case insensitive name of property 11.0 BSTR strPropDescription X X Description of the property 11.0 EDBFieldType eType X The type of value for this property 11.0

IProperties This interface represents a collection of properties associated with a member. This collection is used to add or delete properties to a member. Available v11.0. GetCount ([out, retval] long* plCount)

Gets the number of properties in the collection. Available v11.0. Parameters plCount Number of properties in the collection

GetAt ([in] long lIndex, [out, retval] IProperty** ppIProperty)

Gets an interface for a specific property by index. Available v11.0. Parameters lIndex The index into the collection of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if lIndex is invalid.

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

Gets an interface for a specific property by property name. Available v11.0. Parameters bstrPropName The name of the requested property ppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

Page 153: RAM Data Access Developers Guide

IProperty This interface represents a single property for a member. 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. Available v11.0. Parameters pdValue Value of the property plRetval 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. Available v11.0. Parameters plValue Value of the property plRetval 0 if value retrieved successfully

-1 if no appropriate type for this property. 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. Available v11.0. Parameters pbValue Value of the property plRetval 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. Available v11.0. Parameters pstrValue Value of the property plRetval Should always be zero since any data type can be

returned as a string.

Page 154: RAM Data Access Developers Guide

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. Available v11.0. Parameters dValue Value of the property plRetval 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. Available v11.0. Parameters lValue Value of the property plRetval 0 if value retrieved successfully

-1 if no appropriate type for this property. 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. Available v11.0. Parameters bValue Value of the property plRetval 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. Available v11.0. Parameters strValue Value of the property plRetval Should always be zero since any data type can be

returned as a string.

IProperty Properties Type Property Get Set Description Ver BSTR strPropName X X Case insensitive name of property 11.0 EDBFieldType eType X The type of value for this property 11.0

Page 155: RAM Data Access Developers Guide

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.

Common Methods The following method is included in most of the original DataAccess interfaces. GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Purpose To get information about why a method failed Parameters 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.

IRamDataAccess1 Philosophy: This interface is used exclusively for obtaining pointers to other interfaces.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetInterfacePointer([in] REFIID riid, [out, retval] LPUNKNOWN* pVal);

Purpose Returns the pointer to a specific interface Parameters riid Interface ID pVal Interface pointer is returned via this pointer Comments This method is used by C++ programs accessing the interfaces.

GetInterfacePointerByEnum ([in] EINTERFACES nInterface, [out, retval] LPUNKNOWN* pVal);

Purpose Get a DA interface pointer using the EINTERFACES enumerator Parameters nInterface Interface enum pVal Returned interface Comments This should not be used for VB/VBA or macro languages

Version: These methods were made available with RAM Structural System version 8.2 GetDispInterfacePointer ([in] REFIID riid, [out, retval] LPDISPATCH* pVal);

Purpose Get a DA interface pointer that can be used in automation compatible languages

Page 156: RAM Data Access Developers Guide

using the EINTERFACES enumerator. Parameters riid Interface ID pVal Automation Compatible Interface pointer is returned via this pointer Comments This cannot be used by VB/VBA or macro languages

GetDispInterfacePointerByEnum ([in] EINTERFACES nInterface, [out, retval] LPDISPATCH* pVal);

Purpose Get a DA interface pointer using the EINTERFACES enumerator. This function should be used for VB/VBA and macro languages

Parameters nInterface Interface enum pVal Automation Compatible Interface pointer is returned via this pointer Comments This is the method that VB/VBA or macro language users should use.

IRamDataAccess2 Philosophy: To provide access to the version info for DataAccess.

Version: This interface and its methods were made available with RAM Structural System version 9.0.1. GetVersion ([out, retval] double *pdVersion);

Purpose Gets the versions of DataAccess being accessed. Parameters pdVersion Version number, i.e. 9.01

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 LoadDataBase([in] const BSTR bstrName);

Purpose To Load the Database into memory. This method should not be used by new applications.

Parameters bstrName Model name including path and extension Comments 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 To Load the Database into memory. This method is preferred over LoadDataBase which will be phased out.

Parameters bstrName Model name including path and extension bstrUserID String that identifies the calling application plRetVal Return value, 0 if successful

Page 157: RAM Data Access Developers Guide

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

Comments This function will fail if the model is currently in use or if the database version is incompatible with the current version of DataAccess.

CreateNewDatabase([in] const BSTR bstrName, EUnits eUnits, long *plRetVal); Purpose To create a new database. This method should not be used by new applications. Parameters bstrName Model name (do not include file extension) eUnits Which units will be used for display purposes plRetVal Return value, 0 if successful Comments 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 To create a new database. This is preferred over CreateNewDatabase which will be phased out. Available in v10.0.4

Parameters 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 Comments This function will fail if the model already exists.

SaveDatabase();

Purpose To save the database files. Comments

CloseDatabase();

Purpose To close the database files. Comments This method should be the last call to Data Access.

GetDatabaseVersion([in] const BSTR bstrDBName, [out] double* pdVersion);

Purpose To obtain the version number of the indicated database. Parameters bstrDBName Model name including path pdVersion Return variable for database version number Comments Can be used to ensure that the database is a compatible version with

DataAccess before calling LoadDataBase. GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Page 158: RAM Data Access Developers Guide

See Common Methods GetWorkingDirectory ([out] BSTR* pbstrWorkingDir)

Purpose Returns the Working directory where the model files are unzipped. Available after v10.03.

Parameters pbstrWorkingDir The Working Directory

Page 159: RAM Data Access Developers Guide

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetReinforcementTableName([out] BSTR* pbstrReinTable);

Purpose To retrieve the reinforcement table name. Parameters pbstrReinTable Reinforcement table name

GetNumInRebarTable ([out] long* pnNum);

Purpose To retrieve the number of bars in the reinforcement table. Parameters pnNum Number of bars in the table

GetRebarTable_ConcCol([out] long* pnNum, [out] SREIN_PROP** ppaReinProp);

Purpose To get the concrete column reinforcement information and identify which bars are used by the concrete column program.

Parameters pnNum Number of items in the ReinProp array. ppaReinProp The ReinProp array. Comments 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. 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 pnNum Number of items in the ReinProp array. ppaReinProp The ReinProp array. Comments 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. GetJobName([out] BSTR* pbstrJobName);

Purpose Returns the job name entered when the model was created. Parameters pbstrJobName The Job Name Comments

GetCompanyName([out] BSTR* pbstrCompanyName);

Purpose Returns the company name entered in the Defaults Utility and associated with this model. Parameters pbstrCompanyName The Company Name Comments

GetTimeDateStamp ([out] BSTR* pbstrTimeDateStamp);

Purpose Returns, as a string, the last time the model was modified.

Page 160: RAM Data Access Developers Guide

Parameters pbstrTimeDateStamp String representation of the time date stamp Comments This method can be used to check when the model data was changed.

GetConcreteCodeAsString ([out] BSTR* pbstrConcCode);

Purpose To find out what concrete code is being used Parameters pbstrConcCode String representation of the selected concrete code

GetPathToTableDirectory ([out] BSTR* pbstrDir);

Purpose To obtain the path to the directory where tables are stored Parameters pbstrDir Directory path (as a string)

GetConcColSectionTable ([out] long* pnNum, [out] SSECTIONS** ppaSections);

Purpose Get the definitions of all the concrete column sections defined in model Parameters pnNum Total number of concrete column sections defined in model ppaSections List of concrete column section definitions. Comments In general, one should use IMemberData1::GetConcreteColumnSectionDimProps and

IMemberData1::GetMemberSectionPropInfo to get section information because these methods provide all the required information.

GetConcBeamSectionTable ([out] long* pnNum, [out] SSECTIONS** ppaSections);

Purpose Get the definitions of all the concrete beam sections defined in model Parameters pnNum Total number of concrete beam sections defined in model ppaSections List of concrete beam section definitions. Comments In general, one should use IMemberData1::GetConcreteBeamSectionDimProps and

IMemberData1::GetMemberSectionPropInfo to get section information because these methods provide all the required information.

GetNumConcColSections ([out] long* pnNum);

Purpose Gets the number of concrete column sections defined in the model. Parameters pnNum Number of sections

GetUnits ([out] long* pnUnits);

Purpose 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.

Parameters 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. GetModelNameWithPath ([out] BSTR* pbstrModelName);

Purpose Get the model name including its directory path. Parameters pbstrModelName The model name.

GetModelNameWithOutPath ([out] BSTR* pbstrModelName);

Purpose Get the model name without its directory path

Page 161: RAM Data Access Developers Guide

Parameters pbstrModelName Model name with path GetPathToCurrentModel ([out] BSTR* pbstrPath);

Purpose Get the path to the current model Parameters pbstrPath Directory path Comments The path to where the model is saved is not necessarily the same as the default

“data” path. GetDirectoryPathsFromINI ([out] BSTR* pbstrTables, [out] BSTR* pbstrData, [out] BSTR* pbstrDXF, [out] BSTR* pbstrReports, [out] BSTR*

pbstrError, [out] BSTR* pbstrProg); Purpose Get all of the paths from the ini file Parameters 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

GetPathToProgDirectory ([out] BSTR* pbstrDir);

Purpose Gets the path to the prog directory from the ini file Parameters pbstrDir Path to the prog directory

GetPathToDataDirectory ([out] BSTR* pbstrDir);

Purpose Gets the path to the data directory from the ini file Parameters pbstrDir Path to the data directory

GetPathToErrorDirectory ([out] BSTR* pbstrDir);

Purpose Gets the path to the error directory from the ini file Parameters pbstrDir Path to the error directory

GetPathToReportsDirectory ([out] BSTR* pbstrDir);

Purpose Gets the path to the reports directory from the ini file Parameters pbstrDir Path to the reports directory

GetPathToDXFDirectory ([out] BSTR* pbstrDir);

Purpose Gets the path to the dxf directory from the ini file Parameters pbstrDir Path to the dxf directory

GetINIFileName ([out] BSTR* pbstrIniFileName);

Purpose Gets the name of the ini file Parameters pbstrIniFileName Ini file name

GetMDFDrawingColor ([in] EDRAWINGCOLOR eColor, [out] DWORD* pdwColor);

Purpose Gets the drawing color for the specified member type (specified by EDRAWINGCOLOR)

Page 162: RAM Data Access Developers Guide

Parameters eColor Enum of member type. pdwColor RGB(red,green,blue) value for color

GetBuildingCodeAsString (BSTR *pbstrCode);

Purpose Gets the LL Reduction code selected in the RAM Manager Parameters pbstrCode String representation of the selected code

GetLiveLoadReductionInfo ([out] BSTR* pbstrLLCode, [out] long* plOptions, [out] long* plRoofReducible);

Purpose Get the information set in the LL Reduction dialog in the RAM Manager Parameters 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. 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 Get the names of the selected tables. Parameters 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

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IModelData2 Philosophy: (see ModelData1 above)

Version: This interface and its methods were made available with RAM Structural System version 8.1.x 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* plHSSRoundBeam, [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 Rolled W grade plRolledWBeam Rolled W grade

Page 163: RAM Data Access Developers Guide

plRolledWBrace Rolled W grade plWWFCol Built up column grade lWWFBeam Built up beam grade plWWFBrace Built up brace grade plHSSRectCol HSS Rect grade plHSSRectBeam HSS Rect grade plHSSRectBrace HSS Rect grade plHSSRoundCol HSS Round grade plHSSRoundBeam HSS Round grade plChannelBeam Channel beam grade plDoubleAngleBrace Double Angle grade

plClassHSS 0 = Class C, 1 = Class H : Refer to CISC for definition of

difference between Class C and H, Hollow Sections GetModelHas ([out] long* plModelHasSteelColumns,[out] long* plModelHasBeams, [out] long* plModelHasJoists,[out] long*

plModelHasSmartbeams); Purpose To find out what type of members are used in the model. Parameters 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

GetColBeamDsgnStatus ([out] long* plColDesStatus,[out] long* plBeamDesStatus);

Purpose Get the design status of the steel column and beam Parameters 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 GetLLRMethodChoices ([out] long* plLLRMethod,[out] long* plIBCLLRMethod);

Purpose Get IBC or UBC Reduction Method. Parameters plLLRMethod For UBC code:

1 = Method 1, 2 = Method 2

plIBCLLRMethod For IBC code:

0 = General Method, 1 = Alternate Method GetDefaultColBeamFy ([out] double* pdDefaultColFy,[out] double* pdDefaultBeamFy);

Purpose Get the Fy default value used by the steel column and steel beam programs Parameters pdDefaultColFy Default Fy for Steel Column pdDefaultBeamFy Default Fy for Steel Beam

GetSelfWeightIncludes ([out] long* plIncColSelfWeight,[out] long*plIncBeamSelfWeight,[out] long* plIncWallSelfWeight);

Purpose To get the self-weight flags for column, beams and walls. Parameters plIncColSelfWeight 1 = include self-weight for columns, 0 = do not include self-weight

Page 164: RAM Data Access Developers Guide

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

GetFoundationDesignValid ([out] BOOL* pbValid);

Purpose To get the flag that indicates if the foundation design is current and valid Parameters pbValid The design flag.

GetnCut ([out] long* plVal);

Purpose Get Canada parameters ‘Built Up’ setting. See “Criteria – Canada Parameters” in RAM Manager

Parameters plVal 0 = Flame Cut edges, 1 = MIL Cut edges GetEHotColdFormed ([out] long* plVal);

Purpose Get BS 5950 Hollow Sections setting. Parameters plVal 0 = Cold Formed, 1 = Hot Finished

GetNumSections ([out] long* plConcCol,[out] long* plOtherCol, [out] long* plConcBm,[out] long* plOtherBm, [out] long* plConcBrc,[out] long*

plOtherBrc); Purpose Get the number sections defined for each member type listed below.. Parameters 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.

GetCodeSelection ([out] BSTR* pbstr);

Purpose Get Current Code Selection Parameters pbstr ‘I’ – IBC, ‘U’ – UBC, ‘S’ – SBC, ‘B’ – BOCA, ‘C’- NBC of Canada,

‘G’ - BS 6399, ‘E’ - Eurocode GetEuroRedFy ([out, size_is(,*plMax)] BOOL** ppbEuroRedFys, [out] long *plMax);

Purpose Get “Design fy – Reduce Fy based on thickness” values. Parameters ppbEuroRedFys *ppbEuroRedFys[0] – Column

*ppbEuroRedFys[1] – Beam *ppbEuroRedFys[2] – Brace value: 0 = do not reduce 1 = reduce

plMax Number values returned GetEuroCodeFactor ([out, size_is(,*plMax)] double** ppdEuroCodeFactor, [out] long *plMax);

Purpose Get Eurocode factors Parameters ppdEuroCodeFactor Partial Safety Factors Group:

*ppdEuroCodeFactor[0] – Permanent Actions, Gamma Gsup *ppdEuroCodeFactor[1] – Permanent Actions, Gamma Ginf

Page 165: RAM Data Access Developers Guide

*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

plMax Number values returned GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 8.2 GetNumMembers ([in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in] EFRAMETYPE eGravOrLat, [in, out]

long* plNumMembers, [out,retval] long* plRetVal); Purpose Returns the total number of the member type for full structure Parameters 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

GetNumMembersOnStory ([in] long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in]

EFRAMETYPE eGravOrLat, [in, out] long* plNumMembers, [out,retval] long* plRetVal); Purpose Get the total number of the member type on a given story Parameters 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 Comments 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

Page 166: RAM Data Access Developers Guide

GetLastError will indicate that the Member Type is invalid. GetMemberIDArray ([in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in] EFRAMETYPE eGravOrLat, [in] long

lArraySize, [in, out] long* palMemberIDs, [out,retval] long* plRetVal); Purpose Get the Unique ID's for the member type in a pre-dimensioned array Parameters 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 ID’s 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 Get the Unique ID's for the member type on a story in a pre-dimensioned array Parameters 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 ID’s plRetVal Error code. If value is non zero then check GetLastError

GetConcSlabPropInfo ([in] long lConcSlabOrPropID, [in, out] SSlabProp* pSlabProp, [out,retval] long* plRetVal);

Purpose Get concrete slab properties Parameters 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

GetDeckPropInfo ([in] long lDeckOrPropID, [in, out] SDeckProp* pDeckProp, [out,retval] long* plRetVal);

Purpose Get Composite Deck properties Parameters lDeckOrPropID Deck Prop ID pDeckProp Deck Prop pointer plRetVal Error code. If value is non zero then check GetLastError

GetNumSlabsInSlabPerimeter ([in] long lMatID, [in, out] long* plNumSlabs);

Purpose Get number of Slab prop IDs that overlap a given mat perimeter Parameters lMatID unique id of mat perimeter

plNumSlabs number of eTypeFoundationMatSlab that overlap given mat

perimeter GetSlabsInSlabPerimeterIDArray ([in] long lMatID, [in, out] long* palSlabIDs);

Purpose Get a list of Slab prop IDs that overlap a given mat perimeter

Page 167: RAM Data Access Developers Guide

Parameters lMatID Mat perimeter unique ID palSlabIDs List of IDs of type eTypeFoundationMatSlab

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 Get total number of members that fall inside of a given polygon Parameters 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 Comments 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

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 Get list of members inside a polygon Parameters 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 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 Comments 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

GetMatPerimeterInfo ([in] long lMatID, [in, out] SFoundationMatInfo *pdMatInfo, [out, retval] long *plRetVal);

Purpose Get information about a mat foundation. Specifically its offset from the base story. Parameters lMatID Mat Unique ID pdMatInfo Mat info struct returned plRetVal Error code. If value is non zero then check GetLastError

Page 168: RAM Data Access Developers Guide

GetSelectedSteelJoistTables ([in, out] BSTR* pbstrDefStandardTableName, [in, out] BSTR* pbstrAltStandardTableName, [in, out] BSTR*

pbstrDefConstShearTableName, [in, out] BSTR* pbstrAltConstShearTableName, [out, retval] long* plRetVal); Purpose Get the steel joist table names Parameters pbstrDefStandardTableName Default standard table name pbstrAltStandardTableName Alternate standard table name pbstrDefConstShearTableName Default Constant Shear table name pbstrAltConstShearTableName Alternate Constant Shear table name

plRetVal Error code. If value is non zero then check

GetLastError

Version: These methods were made available with RAM Structural System version 9.0 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.

Parameters 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 Comments

Version: These methods were made available with RAM Structural System version 9.0.2 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 Get total number of members that fall inside of a given polygon Parameters 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

penetration plNumMembers Number of members in polygon plRetVal Error code. If value is non zero then check GetLastError Comments 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

Page 169: RAM Data Access Developers Guide

GetMembersInPolygonIDArray ([in] long lPolygonID , 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 Get list of members inside a polygon Parameters 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 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

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2

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. GetNumStories ([out] long* plNumStories);

Purpose Get number of story levels in model Parameters plNumStories Number of stories Comments Starting with v9.0 use GetNumMembers( ) to get the number of stories in the

model. 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);

Page 170: RAM Data Access Developers Guide

Purpose Get information for a given story level. Parameters 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 Comments 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. GetIDForMemMatTypeAtStory ([in] long lStoryNo, [in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMatType, [out] long**

ppalUniqueIDs, [out] long* plListSize); Purpose Get a list of unique ID’s for a given member type and material type at a story Parameters lStoryNo Story number starting with 0 for the lowest story eMemType Member Type eMatType Material Type ppalUniqueIDs array of Unique ID’s plListSize Number of unique ID’s in halUniqueIDs Comments Starting with v9.0 use GetNumMembersOnStory( ) to get the member id’s on a

story. For more information, see Getting Member Information. GetMemberID ([in] long lStoryNo, [in] long lMemNo, [in] EUniqueMemberTypeID eMemType, [out] long* plUniqueID);

Purpose Get the unique member ID given the member story info and member type. Parameters 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 Member’s Unique ID Comments 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.

Comments Starting with v9.0 use GetNumMembers( ) to get the member id’s. For more information, see Getting Member Information.

GetBeamSupportInfo ([in] long IBeamID, [out] EUniqueMemberTypeID* peSupportTypeStart, [out] long* plSupportIDStart, [out]

EUniqueMemberTypeID* peSupportTypeEnd, [out] long* plSupportIDEnd); Purpose Get information on the end supports of a beam

Page 171: RAM Data Access Developers Guide

Parameters 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

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 Get beam Geometry information including its location in the 3D model Parameters 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

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 Get column geometry information Parameters lColumnID Column’s Unique ID plColumnLabel Column Label as seen in model peGravOrLat Gravity or Lateral member

Page 172: RAM Data Access Developers Guide

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 GetColumnStack ([in] long IColID, [out] long* plNumInStack, [out] long** ppalStackIDs);

Purpose Get ID’s for all the columns that are in the same stack as IMemberID Parameters IColID Column’s Unique ID plNumInStack Number of columns in column stack ppalStackIDs Array of unique ID’s. Size of array is plNumInStack

GetAllMemberIDsFor ([in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] long* lNumIDs, [out] long** ppalIDs);

Purpose Get all member ID’s for a given member type and material type Parameters 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

GetNumBeamsOnStory ([in] long lStoryNo, [out] long * plNumBeams);

Purpose Get total number of beams on a story Parameters lStoryNo Story number starting with 0 for the first level plNumBeams Total number of beams in story Comments Starting with v9.0 use GetNumMembersOnStory( ). For more information see Get

Member Information. GetStorySpliceInfo ([out] long* lNumStories, [out] long** ppalSplices);

Purpose Gets the splice flag for each story level. Parameters 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

GetStoryElevation ([in] long lStoryNoOrID, [out] double * pdStoryElev);

Purpose Get story elevation off the ground level. Sum of all the floor heights below and including the given story

Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique ID (unique ID is preferred)

Page 173: RAM Data Access Developers Guide

pdStoryElev Story elevation from the ground level GetBeamSupportDims ([in] long lBeamID, [out] double *pdSuppLengthStart, [out] double *pdSuppWidthStart, [out] double *pdSuppLengthEnd,

[out] double *pdSuppWidthEnd); Purpose Get dimensions of the member supporting the given beam Parameters lBeamID Beam’s 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

GetIDForMemTypeAtStory ([in] long lStoryNoOrID, [in] EUniqueMemberTypeID eMemType, [out] long** ppalUniqueIDs, [out] long* plListSize);

Purpose Get all member ID’s for a given member type at a story Parameters 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.

GetMemberLocFromID ([in] long lUniqueID, [out] long * plStoryNo, [out] long* plMemNo, [out] EUniqueMemberTypeID* peMemType);

Purpose Get member index number, story, and type from a unique ID Parameters lUniqueID Member’s Unique ID plStoryNo Story number starting with 0 for the first level

plMemNo Member index number. This would be the value lMemNo that would be sent into the method GetMemberID.

peMemType Member type used to find members GetNumFloorTypes ([out] long* plNumFloorTypes);

Purpose Total number of floor types defined in RAM Modeler Parameters plNumFloorTypes Total number of floor type Comments Starting with v9.0 use GetNumMembers( )

GetFloorTypeInfo ([in] long lFlrTypeNo, [out] BSTR * pbstrFlrTypeID, [out] long* plNumBeams, [out] long* plNumColumns, [out] long*

plNumWalls, [out] long * plNumFootings); Purpose Get information for a given floor type Parameters 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

Page 174: RAM Data Access Developers Guide

GetColIDAtBracedLevel ([in] long nStartColID, [in] EAXIS eAxis, [out] long* plTopStoryColID, [out] long* plBotStoryColID, [out] long* plTopStoryNo, [out] long* plBotStoryNo);

Purpose 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.

Parameters 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

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 Get Brace Geometry information including its location in the 3D model Parameters 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 Global X coordinate location at bottom of Brace pdYBottom Global Y coordinate location at bottom of Brace pdZBottom Global Z coordinate location at bottom of Brace

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 Get wall geometry information Parameters 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

Page 175: RAM Data Access Developers Guide

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

GetWallSectionDimProps ([in] long lWallID, [out] double* pdThickness, [out] double* pdCrackSectFactor);

Purpose Get wall section dimension properties Parameters lWallID The unique Wall ID pdThickness Wall thickness pdCrackSectFactor Cracked section factor used to reduce moment of inertia values

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 Get spread and continuous footing geometry information Parameters 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

pdLeft Assuming footing is parallel to the global X axis - Distance to footing 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

pdAngle Footing angle of rotation wrt global axis - Mostly required for spread footings

Comments 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

GetNumGridSysInModel ([out] long* plNumGridSys);

Purpose Total number of grid systems defined in model Parameters plNumGridSys Total number of grid systems defined in model

GetNumGridSysOn_InStory ([in] long lStoryNoOrID, [out] long* plNumGridSysStory);

Purpose Total number of grid systems that are visible (on) for a given story

Page 176: RAM Data Access Developers Guide

Parameters 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

GetNumGridSysOn_InFloorTyp ([in] long lFlrTypeNo, [out] long* plNumGridSysFloorTyp);

Purpose Total number of grid systems that are visible (on) for a given floor type

Parameters 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

GetListGridSysOn_InStory ([in] long lStoryNoOrID, [out] long** ppalGridSysID);

Purpose Get list of grid indexes for all grids that are on for a given story Parameters 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 Get list of grid indexes for all grids that are on for a given floor type

Parameters lFlrTypeNo Floor type number starting with 0 for the first one and going up to (plNumFloorTypes – 1) for the last floor type

ppalGridSysID Array of grid indexes – Array size is plNumGridSysFloorTyp 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 Grid system information Parameters 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

GetGridInfoForGridSys ([in] long lGridSysID, [out] SGridLineInfo* pXRadial, [out] SGridLineInfo* pYCircular);

Purpose Get the location of the grids in the grid system Parameters lGridSysID Grid index number pXRadial X or Radial grid information pYCircular Y or Circular grid information

GetGridSysLabelsAtStory ([in] long lStoryNoOrID, [in] double dXLoc, [in] double dYLoc, [out] long* plGrydSysID, [out] BSTR* pbstrXGridLabel,

[out] BSTR* pbstrYGridLabel); Purpose Get the labels of the grid system intersection at a given story. If no grids are at the given

Page 177: RAM Data Access Developers Guide

location the global location of the point is returned. Parameters 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

GetColumnStackBetween ([in] long lColBotID, [in] long lColTopID, [out] long* plNumInStack, [out] long** ppalColIDs);

Purpose Get list of columns ID’s between to given columns. This can be used to find the columns that are between brace levels when there are dummy levels.

Parameters lColBotID Top column unique ID lColTopID Bottom column unique ID plNumInStack Number of columns in list ppalColIDs Array of column unique ID’s

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 will be zero.

Parameters lColID Column Unique ID pdMaxMajorDepth Max beam depth framing into the major face of the column pdMinMajorDepth Min beam depth framing into the major face of the column pdMaxMinorDepth Max beam depth framing into the minor face of the column pdMinMinorDepth Min beam depth framing into the minor face of the column

GetStoryLabel ([in] long lStoryNum, [out] BSTR* pbstrStoryLabel);

Purpose Get story label Parameters lStoryNum Story number starting with 0 for the first level and going up to

(plNumStories – 1) for the top (roof) level pbstrStoryLabel Story Label

PointIsExposed ([in] long lStoryNoOrID, [in] double dX, [in] double dY, [retval, out] long * plPtExposed);

Purpose 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.

Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique ID (unique ID is preferred)

dX X-coord

Page 178: RAM Data Access Developers Guide

dY Y-coord

plPtExposed 0: If the point is exposed. (scenarios 1 and 2)

1: If the point is NOT exposed. (scenario 3)

NOTE: 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.

GetStoryConcSlabThicknessArea ([in] long lStoryNoOrID, [out] long* plNumSlabAreas, [out] double** ppadThickness, [out] double**

ppadArea,[in] BSTR** ppbstrLabels); Purpose Return total area and thickness for all concrete slabs on a story Parameters 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 List of slab thickness ppadArea List of slab areas ppbstrLabels List of slab labels

GetMemberStoryLabelFromID (long lMemberID, BSTR* pbstrStoryName, long * plMemberLabel);

Purpose To get the story label given a member id. Parameters lMemberID A member’s 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

GetNumDecksOnStory ([in] long lStory, [out] long* plNumDecks);

Purpose to get the number of decks on a given story Parameters lStory Story number plNumDecks Number of decks on the given story.

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 to get information about each deck Parameters lStory Story number lDeck Deck number (on that specific story) pbstrSize Deck name pdThickness Thickness of the deck plNumDeckPoints Number of points in the deck polygon ppadXpts Array of doubles containing the X coordinates of the deck polygon ppadYpts Array of doubles containing the Y coordinates of the deck polygon ppadZpts Array of doubles containing the Z coordinates of the deck polygon plNumOpenings Number of openings in the deck

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);

Page 179: RAM Data Access Developers Guide

Purpose Get lateral wall group geometry info Parameters 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 ID’s 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 ID’s in the array and fill the unused spaces with a value of -1

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IModelGeometry2 Philosophy: (see ModelGeometry1 above)

Version: This interface and its methods were made available with RAM Structural System version 8.1.x GetNumMembersAtColumn ( [in] long lColumnID, [in] EDA_MEMBER_LOC eColumnEnd, [in] double dBeamToMajorFaceAngle, [out] long*

plNumBeams, [out] long* plNumBraces); Purpose Get the total number of members framing into the end of the column Parameters 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

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 Get information on members that are framing into column Parameters 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

Page 180: RAM Data Access Developers Guide

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

GetBeamSpanInformation ([in] long lBeamID, [out] double * pdLeftCantlLen, [out] double * pdMidSpanLength, [out] double *

pdRightCantlLength, [out, retval] long* plResult); Purpose Get span lengths for beam Parameters lBeamID The unique beam ID pdLeftCantlLen Length of left cantilever pdMidSpanLength Length of mid span pdRightCantlLength Length of right cantilever plResult 0 = success, greater than 0 = an error occurred.

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 Get the information on a wall group Parameters 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 ID’s for all walls and columns in group. Array must

be dimensioned to be of size 100 plResult Return error code.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 8.2 GetPolygonPropID ([in] long lPolygonID, [in, out] long* plPropID, [in, out] EUniqueMemberTypeID* pePropertyType, [out,retval] long* plRetVal);

Purpose 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.

Parameters 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

Page 181: RAM Data Access Developers Guide

Comment Used for eTypeDeckOrSlab, eTypeSurfaceLoading, eTypeFoundationMatSlab. Must check plPropID to make sure it is not -1 before using plPropID for any other function calls

GetNumPolygonRawPoints ([in] long lPolygonID, [in] BOOL bClipToPerimeter, [in, out] long* plNumPoints, [out,retval] long* plRetVal);

Purpose Get the number of points that made of a polygon Parameters 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

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 Get array of points defining the Parameters 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

GetFndDimensionInfo ([in] long lFndID, [out, retval] SFND_DATA* pfndData);

Purpose Get the foundation dimension and location info Parameters lFndID Foundation Unique ID pfndData Foundation info struct

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

Parameters 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

Page 182: RAM Data Access Developers Guide

Version: These methods were made available with RAM Structural System version 9.0 HRESULT GetColumnStackMatchMaterial([in] long lColID, [in, out] long* plNumInStack, [in, out] long** plStackIDs);

Purpose Get contiguous Column Stack with same material type as lColID Parameters IColID Column’s Unique ID plNumInStack Number of columns in column stack ppalStackIDs Array of unique ID’s. Size of array is plNumInStack Comments This function is similar to GetColumnStack which does not check for material properties.

Version: These methods were made available with RAM Structural System version 9.0.3 HRESULT GetMemberInfoAtPointOnStory( [in] double dx, [in] double dy, [in] long lStoryID, [in, out] EUniqueMemberTypeID* peSupportType, [in, out] long* plSupportID, [out, retval] long* plRetval )

Purpose To determine the member that is located at a point in space on a story Parameters dx, dy Point in plan to locate member under lStoryID The story Unique ID

peSupportType The type of member that is at this point in space on the story provided (will return foundationType if nothing at the point).

plSupportID The uniqueID of the member at the point (-1 if nothing there) plRetval Comments This method searches for a support member in the following sequence: Column, beam,

wall.

IConcColModState1 Philosophy: This interface is for maintaining the state of the concrete column module.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetFinalBarData ([in] long lColID, [out] SBAR_PATTERN* pBarPattern, [out] long* plNumSegments, [out] EDA_SEG_SET_INFO** ppaSegInfo,

[out] EDA_REIN_PLACE_SET** ppaReinPlace); Purpose Final design reinforcement information for column Parameters lColID Column’s 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 Comments 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.

GetCriteriaLapSplice ([out] double* pdLap1, [out] double* pdLap2, [out] long* pnNumRebar, [out] BSTR* pbstrSelSize);

Purpose Lap splice information used to calculate material takeoff for longitudinal column

Page 183: RAM Data Access Developers Guide

reinforcement Parameters 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

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 Get all concrete column design data Parameters lColID Column’s 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 Comments 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.

GetCriteriaBarSpacing ([out] BAR_SPACING* pBarSpacing);

Purpose get the spacing and clear cover values from the Criteria - Design – Reinforcement page Parameters pBarSpacing Structure of bar spacing values.

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 nIndex Pattern group index number pbstrLabel Label automatically generated for the group pbstrListBoxLabel Group label that is used in list boxes (includes tab character) pbstrMaxBar Max longitudinal bar size label pbstrMinBar Min longitudinal bar size label pbstrTieBar Transverse bar size label pnGroupID Unique Group ID. pnNumLong Number of longitudinal bars used at top and bottom of

Page 184: RAM Data Access Developers Guide

rectangular patterns or total number of bars used in round pattern layouts

pnNumAdd Additional bars on left and right side of rectangular patterns pnNumPatternsInGroup Number of bar patterns generated by group pnType Pattern type - ePATTERN_TYPE pbUse Pattern group is being used pbValid True = pattern group is valid and can be used in design

GetNumBarGroups ([out] long* pnNumGroups);

Purpose get the number of bar pattern groups Parameters pnNumGroups Number of bar pattern groups.

GetBarPattern ([in] long nGroupIndex, [in] long nNumPatterns, [out] SBAR_PATTERN* pBarPattern);

Purpose To get a specific bar pattern group Parameters 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. GetCriteriaShearLegs ([out] long* plNumSLMajor, [out] long* plNumSLMinor);

Purpose Get the shear leg criteria Parameters plNumSLMajor Number of shear legs parallel to the columns major axis plNumSLMinor Number of shear legs parallel to the columns minor axis

GetColDesignEffLengthFactors ([in] long lColID, [out] double * pdKx, [out] double * pdKy);

Purpose 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.

Parameters 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

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 Return the parameters associated with the calculation of slenderness for a specific

column. Parameters lColID The unique column ID

pbUserSelSlnd True (1) if user specified to consider slenderness in the RAM 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

Page 185: RAM Data Access Developers Guide

pbBracedSideSwayX True if user designated column is braced against sidesway in major axis.

pbBracedSideSwayY True if user designated beam is braced against sidesway in minor axis.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IConcColModState2 Philosophy: (see ConcColModState1 above)

Version: This interface and its methods were made available with RAM Structural System version 8.1.x GetCheckAxialLimit ( [out] BOOL* pbCheckAxial);

Purpose To get the flag indicating whether the user wants to check max column axial load limit Parameters pbCheckAxial TRUE = Check Max Column Axial Load Limit

GetCheckTorsion ( [out] BOOL* pbCheckTorsion);

Purpose To get the flag indicating whether the user wants to check torsional capacity for columns Parameters pbCheckTorsion TRUE = Check Torsional Capacity

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IMemberData1 Philosophy: This interface is for accessing and setting information for specific members. This could be information about size, framing type, material, material properties…

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetConcBeamDesignAsBeam ([in] long lBeamID, [out] long* plDsnAsBeam);

Purpose Get beam design assignment as beam or joist Parameters lBeamID Beam’s Unique ID plDsnAsBeam Convert to BOOL True = design as beam, False = design as joist

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 Get concrete material property for member. An error is returned if the member is not concrete

Parameters IMemberID Member’s Unique ID pdfpc Concrete Compression stress capacity

Page 186: RAM Data Access Developers Guide

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 Poisson’s ratio pdMatDensity Concrete material density pdSelfWeight Concrete self weight used for self weight calculations

GetColumnHeight ([in] long lMemberID, [out] double* pdHeight);

Purpose Get the column height Parameters lMemberID Column’s Unique ID pdHeight Column height

GetMemberSize ([in] long lMemberID, [out] BSTR* pbstrSize);

Purpose Get section label assigned to member Parameters lMemberID Member Unique ID pbstrSize Section label

GetBeamLineNo ([in] long lBeamID, [out] long * plBeamLineNo);

Purpose Get beam line number that the concrete beam is assigned to. If member is not a concrete beam an error is returned

Parameters lBeamID Beam’s Unique ID plBeamLineNo Beam line number assigned to member, 0 indicates no assignment

GetGridLabelForMember ([in] long IMemberID, [in] EDA_MEMBER_LOC eAtLoc, [in] double dDBToModelUnitConvert, [in] BSTR bstrUnit, [out]

BSTR* pbstrGridLabel); Purpose Get the grid location for the member. If there are no grids at the location the global

coordinates are returned Parameters IMemberID Member’s Unique ID

eAtLoc Location of member - eStart = 1, eEnd = 2, eTop = 10,

eBottom = 20

dDBToModelUnitConvert Unit conversion from inches (database units) to the required

units. If units need to be in ft the value would be 0.08333

bstrUnit String of unit label for final value. If the final units need to be

in feet use “ft” pbstrGridLabel 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

Page 187: RAM Data Access Developers Guide

lBeamID. Parameters lBeamID Unique Beam ID plIEndBeamID Beam ID at start of lBeamID

GetJEndBeamID ( [in] long lBeamID, [out] long* plJEndBeamID);

Purpose Get the beam line number of the beam adjacent to the end of the beam represented by lBeamID.

Parameters lBeamID Beam’s Unique ID plJEndBeamID Beam ID at end of lBeamID

GetColumnDimensions ([in] long lMemberID, [out] double *pdWidth, [out] double *pdDepth);

Purpose Get concrete column section dimensions Parameters lMemberID Column’s Unique ID pdWidth Column width / minor direction length (B) pdDepth Column depth / major direction length (H)

GetDisplaySize (long lMemberID, BSTR *pbstrDisplaySize);

Purpose Get concrete beam section size when member is generated using pan joists Parameters lMemberID Beam’s Unique ID pbstrDisplaySize Concrete beam section label Comments This is used when the section name is built out of different size pans on either side of

beam 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 Concrete beam section dimension properties Parameters lBeamID Beam’s 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

pbLeftIsEdge True (1) = left side is an edge of slab, False (0) = left side is not an edge

pbRightIsEdge True (1) = right side is an edge of slab, False (0) = right side is not an edge

pbUserSpecified True if the user specified the design properties directly. False if user

wants RAM SS to calculate the design properties Comments Note: Total section depth is pdWebDepth + maximum thickness between pdFLthickL and

Page 188: RAM Data Access Developers Guide

pdFLthickR GetConcreteColumnSectionDimProps ([in] long lColumnID, [out] ECONC_OTHER_SEC* peShape, [out] double* pdDepthDiam, [out] double*

pdWebWidthT, [out] double* pdWebWidthB, [out] double* pdArea ); Purpose Get concrete column section dimension properties Parameters lColumnID Column’s 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

GetSteelMemberMatlProps ([in] long IMemberID, [out] double* pdFy, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double * pdDensity,

[out] long* plComposite); Purpose Get steel member material properties Parameters IMemberID Member’s Unique ID pdFy Steel stress capacity pdE Steel modulus of elasticity pdPoissonsRatio Poisson’s ratio pdDensity Steel material density plComposite True (1) = member is a steel composite beam.

GetOtherMemberMatlProps ([in] long IMemberID, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double* pdMatDensity, [out] double*

pdSelfWeight); Parameters IMemberID Member’s Unique ID pdE Modulus of elasticity pdPoissonsRatio Poisson’s ratio pdDensity Material density pdSelfWeight Weight to use for self weight calculations

GetMemberFraming ([in] long lMemberID, [out] EFRAMETYPE* eMemberFraming);

Purpose Get the flag that indicates whether a member is gravity or lateral. Parameters lMemberID Unique member id eMemberFraming Flag that indicates gravity or lateral

GetConcColBarGroups ([in] long lMemberID, [out] long* plGroup1, [out] long* plGroup2, [out] long* plGroup3, [out] long* plGroup4, [out] long*

plGroup5);

Purpose For the given member, get the indices into the array of bar pattern groups of the assigned bar patterns.

Parameters lMemberID Unique member id plGroup1 Index #1 plGroup2 Index #2 plGroup3 Index #3 plGroup4 Index #4 plGroup5 Index #5

Page 189: RAM Data Access Developers Guide

GetConcColShearLegs ([in] long lMemberID, [out] long* plNumMajor, [out] long* plNumMinor, [out] long* plUseGlobalMajor, [out] long*

plUseGlobalMinor); Purpose To get the number of shear legs assigned to a given column along each axis. Parameters 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

GetAssignedMemberKFactor ([in] long lMemberID, [out] EKFAC_ASSIGN* peMajor, [out] EKFAC_ASSIGN* peMinor, [out] double*

pdMajorValue, [out] double* pdMinorValue); Purpose To get the Assigned K factor setting for a column (in each axis) and the user specified K factor

if indicated to be assigned. Parameters lMemberID The column ID peMajor Major axis assigned (Use global, Use nomograph or Use assigned value) peMinor Minor axis assigned (Use global, Use nomograph or Use assigned value) pdMajorValue If peMajor is Use Assigned then this has the user assigned value, major axis pdMinorValue If peMinor is Use Assigned then this has the user assigned value, minor axis

GetMemberSidesway ([in] long lMemberID, [out] ESIDESWAY_ASSIGN* peMajor, [out] ESIDESWAY_ASSIGN* peMinor);

Purpose Returns either ItIsBraced or ItIsUnbraced. If “Use Global” was assigned to the member, DataAccess determines if the global state is braced or unbraced.

Parameters lMemberID The member ID to get the sidesway setting for peMajor Major axis sidesway value (Braced/unbraced) peMinor Minor axis sidesway value (Braced/unbraced) Note: braced = nonsway unbraced = sway

GetAssignedMemberSidesway ([in] long lMemberID, [out] ESIDESWAY_ASSIGN* peMajor, [out] ESIDESWAY_ASSIGN* peMinor);

Purpose 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.

Parameters 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) Note: braced = nonsway unbraced = sway

GetMemberLabel ([in] long lUniqueID, [out] long* plLabel);

Purpose to get a specific member’s screen label (also known as the “member number”) Parameters lUniqueID Unique id of a member plLabel The members “member number”

Page 190: RAM Data Access Developers Guide

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 Member analytical section properties Parameters IMemberID Member’s 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 pdCrackSectFactor Cracked section factor used to reduce moment of inertia values Comments 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.

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 Steel section dimension properties from steel table Parameters IMemberID Member’s 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 Total depth of the section pdWebT Thickness of the web of the section pdCw Warping torsion constant of section pdJ Torsional modulus of section peRolledFlag True if this is a rolled section pdZx Plastic modulus major axis pdZy Plastic modulus minor axis pdSxtop Section Modulus Top pdSxbot Section Modulus Bottom pdSy Section Modulus Minor Axis pdImaj Major axis moment of inertia pdImin Minor axis moment of inertia padArea Area of cross section

Page 191: RAM Data Access Developers Guide

GetMemberEndReleases ([in] long lMemberID, [out] long * plMajorMomFixedI, [out] long * plMinorMomFixedI, [out] long * plTorFixedI, [out] long *

plMajorMomFixedJ, [out] long * plMinorMomFixedJ, [out] long * plTorFixedJ); Purpose 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.

Parameters 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 Note: Returns error if member is gravity member

CheckForMemberSizes ([in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] long* bAllHaveSizes);

Purpose Determine if all members of a particular type (beam, column etc) and material (Steel, Concrete, All..) have sizes assigned

Parameters eMemType The member type (refer to the appendix at end) eMaterial The material type bAllHaveSizes True (1) if all the members of given type and size have assigned sizes.

GetWallGroupNum ([in] long lStoryNum, [out] long *lNumberOfWallGroups);

Purpose Get total number of wall groups on story Parameters lStoryNum Story index number lNumberOfWallGroups Total number of wall groups in story

GetMemberFrameNumber ([in] long lMemberID, [out] long* plFrameNum);

Purpose Get frame number for given member Parameters lMemberID Member unique ID plFrameNum Frame number that the member belongs to. A number < 0 indicates

a gravity member. GetMemberType ([in] long lMemberID, [out] EUniqueMemberTypeID* peMemType);

Purpose Get member type as beam, column, wall etc. Parameters lMemberID Member unique ID peMemType Member type as column, beam, wall etc.

GetMemberMatlLatType ([in] long IMemberID, [out] EMATERIALTYPES * peMat, [out] EFRAMETYPE * peFrameType);

Purpose Get member material type and frame type Parameters lMemberID Member unique ID peMat Material type peFrameType Frame number that the member belongs to. A number < 0 indicates

a gravity member.

Page 192: RAM Data Access Developers Guide

GetMemberRigidEndZones ([in] long lMemberID, [out] double * pdREZMajorI, [out] double * pdREZMinorI, [out] double * pdREZMajorJ, [out]

double * pdREZMinorJ); Purpose Get a member’s 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.

Parameters 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)

GetSmartbeamType ([in] long lMemberID, [out] ESMARTBEAMTYPE* peSmartType, [out] BSTR* pbstrSize);

Purpose To get the size and type of a specific smart beam Parameters lMemberID Unique member id peSmartType 0 = castilated, 1 = cellular pbstrSize Size as a string

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

bars, or whether to use User defined data for this beam Parameters 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) GetConcBeamCCBBotBars ([in] long lBeamID, [out] E_COVER_OPTION* peUseDefBotBars, [out] double* pdBotBars1, [out] double*

pdBotBars2); Purpose 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 Parameters 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) GetConcBeamMaxBarLayers ([in] long lBeamID, [out] E_BARLAYERS_OPTION* peBarLayers);

Purpose Get whether the beam should use the global bar layer criteria or whether to use User defined data for this beam

Page 193: RAM Data Access Developers Guide

Parameters 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 Get whether to use the global stirrup legs criteria or whether to use a user defined value Parameters 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 Get whether to use the global stirrup type criteria or whether to use a user defined value Parameters lBeamID The unique member ID

peStirrupType 0 = use global criteria, 1 = use open stirrups, 2 = use closed stirrups, 3 = use 135 Hook stirrups, 4 = use Hoop stirrups

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IMemberData2 Philosophy: (see MemberData1 above)

Version: This interface and its methods were made available with RAM Structural System version 8.1.x GetNumPenetratedBeams([in, out] long* plNumBeamIDs, [out, retval] long* plRetVal)

Purpose Returns the number of penetrated beams. Parameters plNumBeamIDs The number of beams with pentrations plRetVal Error code. If value is non zero then check GetLastError

GetPenetratedBeamsIDArray([in] long lArraySize, [in, out] long* palBeamIDs, [out,retval] long* plRetVal)

Purpose Get an array ids for the beams that have penetrations. Parameters 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 ID’s 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

GetNumPensForBeamID([in] long lBeamID, [in, out] long* plNumPenetrations, [out, retval] long* plRetVal)

Purpose Get the number of penetrations in a given beam. Parameters lBeamID unique beam ID plNumPenetrations Number of penetrations in that beam.

Page 194: RAM Data Access Developers Guide

plRetVal Error code. If value is non zero then check GetLastError GetPenetrationsIDArray([in] long lBeamID, [in] long lArraySize, [in, out] long* palPenIDs, [out,retval] long* plRetVal);

Purpose Get an array of penetration ids in a given beam. Parameters 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 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 Get data associated with a specific web penetration on a specific beam Parameters 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

GetBraceDoubleAngleInfo([in] long lBraceID, [in,out] BOOL* pbIsDoubleAngle , [in,out] BOOL* pbLongLegsBack2Back, [in,out] double* pdBackSpacing, [out, retval] long* plRetVal)

Purpose Get double angle info for brace sections Parameters 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

GetDeflectionCriteria ([in] long lBeamID, [out] long *plDefOrAlt);

Purpose Determine if a particular beam has been assigned the default or the alternate deflection criteria

Parameters lBeamID The unique beam ID plDefOrAlt 0 = default deflection criteria, 1 = Alternate deflection criteria

Page 195: RAM Data Access Developers Guide

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 9.0 GetTensionCompressionType ([in] long lMemberID, [in, out] ETensionCompressionMemType* peTensionCompressionType, [out, retval] long*

plRetVal) Purpose Find if this member has been designated as Tension-Only Parameters 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 Comments 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

IConcBeamState1 Philosophy: This interface is for maintaining the state of the concrete beam module.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetCriteriaReinCBCData ([out] long* plTop, [out] double* pdTop, [out] long* plSide, [out] double* pdSide, [out] long* plBot, [out] double* pdBot);

Purpose Get Criteria Reinforcement Clear Bar Cover Defaults Parameters 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

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 Get Gravity Beam Detailing Defaults Parameters 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

Page 196: RAM Data Access Developers Guide

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 bottom 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

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 Get Gravity Joist Detailing Defaults Parameters 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 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 Get Lateral Beam Detailing Defaults Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at ends of

beam line

Page 197: RAM Data Access Developers Guide

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)

GetBeamResults ([in] long lStory, [in] long lBeamLineID, [out] long *plNumSpans, [out] SBML_RES** haBeamLine, [out] SBM_RES** haBeamResults, [out] SBM_RES_BSTR** haBeamResultsBstr);

Purpose Get concrete beam design results Parameters 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

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 Get all the reinforcement located in all the spans in the beam line Parameters 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

Page 198: RAM Data Access Developers Guide

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 Comments 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.

GetCriteriaReinCBSShear ( [out] long* plShearMax, [out] double* pdShearMax, [out] long* plShearMin, [out] double* pdShearMin);

Purpose Get Criteria Reinforcement Clear Bar Spacing Shear Defaults Parameters 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

GetCriteriaReinCBSFlexure ([out] long* plFlexMax, [out] double* pdFlexMax, [out] long* plFlexMin, [out] double* pdFlexMin);

Purpose Get Criteria Reinforcement Clear Bar Spacing Flexure Defaults Parameters 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

GetCriteriaReinLRRData ([out] long* plLRRMax, [out] double* pdLRRMax, [out] long* plLRRMin, [out] double* pdLRRMin);

Purpose Get Criteria Reinforcement Longitudinal Reinf. Ratio Defaults Parameters 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

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 Criteria definitions for location from concrete tension surface to effective center of longitudinal tension reinforcement for 1 and 2 layers of bars.

Parameters plAllow2Layers 1 = Allow 2 layers, 0 = don’t 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

Page 199: RAM Data Access Developers Guide

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 Get Criteria Beam Design Bar Selection Defaults Parameters 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)

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 Get the analysis and design capacity envelopes Parameters 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

Page 200: RAM Data Access Developers Guide

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IConcBeamState2 Philosophy: (see ConcBeamState1 above)

Version: This interface and its methods were made available with RAM Structural System version 8.1.x 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 Get Gravity Beam Detailing Defaults Parameters 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) 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);

Page 201: RAM Data Access Developers Guide

Purpose Get Gravity Joist Detailing Defaults Parameters 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) 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 Get Lateral Beam Detailing Defaults Parameters 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

Page 202: RAM Data Access Developers Guide

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) GetCamberCriteria ( [out] long *plDontCamber, [out] double *pdMinSpanLength, [out] double *pdDLforCamber, [out] double *pdCamberInc, [out]

double *pdMinCamber, [out] double * pdMaxCamber); Purpose Get Concrete camber criteria Parameters 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

GetDeflectionCriteriaIeff ([out] long *plIeff);

Purpose 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.

Parameters plIeff Ieff value to use - 0=per ACI, 1=from Analysis GetDeflectionCriteriaLongTerm ( [out] double *pdInitialTimeFac, [out] double *pdFinalTimeFac, [out] double *pdLLSustained);

Purpose Get Long Term Deflection criteria Parameters pdInitialTimeFac Initial time dependent factor pdFinalTimeFac Final time dependent factor pdLLSustained % of LL sustained

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 Get the alternate span-to-deflection ratios/ abs values Parameters 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

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 Get the default span-to-deflection ratios/ abs values

Page 203: RAM Data Access Developers Guide

Parameters 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

GetDeflectionCriteriaMinCheckRatio ( [out] long *plDontCheck, [out] double *pdSpanDepthRatio);

Purpose Get whether or not to skip deflection check for minimum span/depth ratio Parameters plDontCheck Don't check defl for the following ratio pdSpanDepthRatio minimum deflection check span/depth ratio

GetCheckTorsion ( [out] BOOL* pbCheckTorsion);

Purpose To get the mdf variable for whether the user wants to check torsional capacity for beams Parameters pbCheckTorsion TRUE = Check Torsional Capacity

GetCheckDeepBeam ( [in] BOOL* pbCheckDeepBeam);

Purpose To get the mdf variable for whether the user wants to check deep beams Parameters pbCheckDeepBeam TRUE = Check Deep Beams

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 8.2 GetMemberScheduleMark ([in] long lBeamID, [in, out] SConcScheduleMark* pBeamScheduleMark, [out,retval] long* plRetVal);

Purpose Get the member concrete reinforcement schedule marks Parameters lBeamID Beam Unique ID pBeamScheduleMark Concrete beam schedule mark plRetVal Error code. If value is non zero then check GetLastError

GetDesignJoistsAsBeams ([in, out] BOOL *pbDesignJstAsBeam, [out,retval] long *plRetVal);

Purpose Indicates if members assigned as joist are actually designed as beams Parameters pbDesignJstAsBeam TRUE = design joists as beams plRetVal Error code. If value is non zero then check GetLastError

GetLatBmGravForceSource ( long* plLatMemGravForceSource, [out,retval] long* plRetVal );

Purpose Get the source of gravity forces on lateral conc beams Parameters plLatMemGravForceSource 0=lat beam grav forces from ram conc, 1= from RFrame plRetVal Error code. If value is non zero then check GetLastError

Page 204: RAM Data Access Developers Guide

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 WhatsMyStatus ([in] EWhichModule eWhich, [out] E_STATUS* peStatus);

Purpose To find out the status of a module. Parameters eWhich Which module to get the status of. peStatus Status of the requested module.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IConcCntlrCommon1 Philosophy: This interface is used to access data that is common to several controllers.

Version: This interface and its methods were made available with RAM Structural System version 8.1.x GetFrameTypeCriteria ([out] long* plFrameRadioSel, [out] long* pnNum, [out] BOOL** ppabIncludeCheck);

Purpose Get the type of concrete frame type the user has selected for this model Parameters plFrameRadioSel 0 = Ordinary Moment Frame, 1 = Intermediate, 2 = Special pnNum 0 (Not used now) ppabIncludeCheck NULL (Not used now)

GetSMFLoadComboFactors ([out] long* plSMFRadioSel, [out] double* pdDead, [out] double* pdLive, [out] double* pdSnow);

Purpose To get the load combo factors used for the selected frame type (IMF or SMF) Parameters 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

GetFrameTypeUsedInDesign ([out] long *plFrameType);

Purpose Get the frame type used for design. This might not be the currently selected frame type. Parameters plFrameType 0 = ordinary, 1 = intermediate, 2 = special

GetSpecialProvEndShears ([in] long lBeamID, [out] double* pdIEndSPShear, [out] double* pdJEndSPShear, [out] long *plResult);

Purpose Get the calculated special provision minimum required end shears for beam. If not found, set -1.0 for all values and return error code

Parameters lBeamID Beam Unique ID

Page 205: RAM Data Access Developers Guide

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

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 Get the end moment capacities of the mid span of a given beam Parameters 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

GetSpecialProvDsnEndShear ([in] long lBeamID, [out] double* pdVuORVeIEnd, [out] double* pdVuORVeJEnd, [out] double* pdVuAnalysisIEnd,

[out] double* pdVuAnalysisJEnd, [out] long *plResult); Purpose Get the required special provision end shears capacities of the mid span of a given beam Parameters lBeamID Beam unique ID

pdVuORVeIEnd Required minimum shear capacity at I end. Vu for IMF and Ve

for SMF

pdVuORVeJEnd Required minimum shear capacity at J end. Vu for IMF and Ve for SMF

pdVuAnalysisIEnd Analysis required shear capacity at I end pdVuAnalysisJEnd Analysis required shear capacity at J end plResult Returned error code

GetSpecialProvReinAreaAtSupportFace ([in] long lBeamID, [out] double *pdStartTopReinArea, [out] double *pdStartBotReinArea, [out] double

*pdEndTopReinArea, [out] double *pdEndBotReinArea, [out] long *plResult); Purpose Get provided reinforcement area at ends of span. Used for Special provisions design Parameters 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

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Page 206: RAM Data Access Developers Guide

ILoading1 Philosophy: This interface is used to access information about the load cases and load combinations that exist for the current model.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2

GetLoadCasesForGenerator ([in] COMBO_MATERIAL_TYPE eType, [out] long* nNumCases, [out] SLoadCase_CmbGen_DA** ppaAllCases); Purpose To get the list of load cases to be used with the load combo generator Parameters 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. NOTE: This is only implemented for Concrete in ILoading1

GetNumCasesForGenerator ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCases);

Purpose To get the number of cases available to the combo generator. Parameters eType Flag that indicates the program/mode that is requesting the list. nNumCases Return value for the number of cases in the count. NOTE: This is only implemented for Concrete in ILoading1

GetNumCombos ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCombos); -

Purpose To get the number of combinations Parameters eType Flag that indicates the program/mode that is requesting the count. pnNumCombos The number of combinations NOTE: This is only implemented for Concrete in ILoading1

GetCombos ([in] COMBO_MATERIAL_TYPE eType, [out] long* plNumCombos, [out] SLoadCombos_CmbGen_DA** ppaCombos);

Purpose To get the list of load combinations Parameters 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. NOTE: This is only implemented for Concrete in ILoading1

GetComboParameters ([in] COMBO_MATERIAL_TYPEeType, [out] SComboParams_DA* pComboParams);

Purpose To get the parameters used in Load Combination generation Parameters 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. NOTE: This is only implemented for Concrete in ILoading1

GetComboCode ([in] COMBO_MATERIAL_TYPEeType, [out] BSTR* pbstrComboCode);

Purpose To get the code used to generate load combinations. Parameters eType Flag that indicates the program/mode that is requesting the code. pbstrComboCode String representation of the code used to generate combinations.

Page 207: RAM Data Access Developers Guide

NOTE: This is only implemented for Concrete in ILoading1 GetRoofReducibleFlag ([out] long* lRoofIsReducible);

Purpose To get the flag that indicates whether the roof load is reducible or snow Parameters lRoofIsReducible 0 = snow, 1 = reducible.

GetComboReGenFlag ([in] COMBO_MATERIAL_TYPEeType, [out] long* plReGen);

Purpose To get the flag that indicates whether or not the load combinations need to be regenerated.

Parameters eType Flag that indicates the program/mode that is requesting the regeneration flag

plReGen The regeneration flag. NOTE: This is only implemented for Concrete in ILoading1

GetNumAnalyzedFrameLoadCases ([out] long * plNumAnalyzedLoadCases);

Purpose To get the number of load cases analyzed by RAM Frame Parameters 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.

GetAnalyzedFrameLoadCaseInfo ([in] long nLoadCaseNum, [out] BSTR * pbstrLabel, [out] BSTR * pbstrType, [out] long * pnLoadType, [out]

long * pnSubLoadType); Purpose To get information about each of the load cases analyzed by RAM Frame. Parameters 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.

GetNumAvailFrameCombos ([in] ECOMBOTYPES eComboType, [out] long * plNumAvailLoadCombos);

Purpose 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.

Parameters eComboType Flag indicating the RAM Frame mode. plNumAvailLoadCombos return value for the number of valid load combinations NOTE: This is only implemented for RAM Frame in ILoading1

GetAvailFrameCombo ([in] ECOMBOTYPES eComboType, [in] long lComboNo, [out] long * plNumTerms, [out] long * palCaseIndex, [out] double * padFactor, [out] long * plSelected);

Purpose To get the information for a given load combination

Page 208: RAM Data Access Developers Guide

Parameters eComboType Flag indicating the RAM Frame mode lComboNo Index into load combination array plNumTerms Number of terms in the combination

palCaseIndex 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 NOTE: This is only implemented for RAM Frame in ILoading1

GetNumGravLoadCases ([out] long* pNum);

Purpose 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.

Parameters pNum Return value of the number of gravity load cases. GetGravLoadCaseLabel ([in] long lWhichCase, [out] BSTR* pbstrLabel);

Purpose To get the label for the given load case. Parameters lWhichCase Index for the selected case pbstrLabel Label generated by the program

GetNodalLoadCaseInfo ([out] long * plNumLoadCases, [out] BSTR** ppbstrLoadCaseLabel, [out] BSTR** ppbstrLoadCaseType);

Purpose Get the number of nodal load cases defined in the modeler Parameters 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 Get the nodal loads associated with a specific load case label Parameters 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

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 8.2

GetLoadCaseInfo ([in] long lLoadCaseID, [in, out] SLoadCaseInfo* psLoadCaseInfo, [out,retval] long* plRetVal);

Purpose Get the SLoadCaseInfo for the specified load case Parameters lLoadCaseID Load Case Unique ID psLoadCaseInfo Load case info struct. plRetVal Error code. If value is non zero then check GetLastError Comment Implemented for gravity loads only.

Page 209: RAM Data Access Developers Guide

GetLoadSetPropInfo ([in] long lLoadSetPropID, [in] BSTR* pbstrLabel, [in, out] long* plNumCaseIDsUsed, [in, out] long* palCaseIDsUsed, [in,

out] long* plNumReferances, [out,retval] long* plRetVal); Purpose 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

Parameters lLoadSetPropID Prop Unique ID pbstrLabel Prop Label plNumCaseIDsUsed Number of load cases that are part of load set

palCaseIDsUsed List of case ID's used. Must be dimensioned to max number of

gravity load cases plNumReferances Number of times this prop. is used in model plRetVal 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 Get the magnitudes for all the load cases that are defined in the LoadSetProp Parameters 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 non-zero values in palCaseIDsUsed

plRetVal Error code. If value is non zero then check GetLastError

GetLineLoadSetInfo ([in] long lLineLoadSetID, [in, out] SCoordinate* pStartLoc, [in, out] SCoordinate* pEndLoc, [in, out] long* plLoadSetPropID, [out,retval] long* plRetVal);

Purpose Get information on a line load set Parameters 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

GetPointLoadSetInfo ([in] long lPointLoadSetID, [in, out] SCoordinate* paLoc, [in, out] long* plLoadSetPropID, [out, retval] long* plRetVal);

Purpose Get information on a point load set Parameters 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

GetSurfaceLoadSetInfo ([in] long lSurfLoadSetID, [in, out] long* plLoadSetPropID, [out, retval] long* plRetVal);

Purpose Get information on a surface load set Parameters lSurfLoadSetID Surface load set ID plLoadSetPropID LoadSetProp Unique ID plRetVal Error code. If value is non zero then check GetLastError

Page 210: RAM Data Access Developers Guide

Comment Use the Polygon functions to get the surface loading geometry

Version: These methods were made available with RAM Structural System version 11 GetAnalysisCaseIDFromAnalyzeNo ([in] long lAnalyzeNo, [out] long* plAnalysisCaseID, [out] long* plRetval)

Gets the analysis case unique ID from an index into the list of analyzed load cases in RAM Frame. The number of analyzed load cases is taken from GetNumAnalyzedFrameLoadCases in this interface. Available v11.0.

Purpose Get Analysis Case UniqueID from an index into the array of analyzed load cases Parameters 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

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2.

GetNumBeamLoads ([in] long lBeamID, [out] long* plNumLineLoads, [out] long* plNumPointLoads);

Purpose Get total number of line and point loads on beam Parameters lBeamID Beam unique ID plNumLineLoads Total number of line loads plNumPointLoads Total number of point loads

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 Get beam line load info Parameters 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.

Page 211: RAM Data Access Developers Guide

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. 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 Get perpendicular and axial components of point loads applied to a beam. Parameters 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 pdAxDL Axial Dead Load pdAxCDL Axial Construction Dead Load pdAxCLL Axial Construction Live Load

Page 212: RAM Data Access Developers Guide

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 Axial Negative Storage Live Load pdAxPosStorageLL Axial Positive Storage Live Load pdAxNegRoofLL Axial Negative Roof Live Load pdAxPosRoofLL Axial Positive Roof Live Load 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 peLoadSource Point load source

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 Get information on axial point loads on column Parameters lColumnID Column unique ID lPtLoadNo Point load index number from 0 to lNumPointLoads - 1 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

GetBeamLLRedFactor ([in] long lBeamID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*

dNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF); Purpose Get beam live load reduction factors

Page 213: RAM Data Access Developers Guide

Parameters 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 Comment 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) GetColumnLLRedFactor ([in] long lColumnID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out]

double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF); Purpose Get column live load reduction factors Parameters 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

GetWallLLRedFactor ([in] long lWallID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*

pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF); Purpose Get wall live load reduction factors Parameters 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

GetNumWallLoads ([in] long lWallID, [out] long* plNumLineLoads, [out] long* plNumPointLoads);

Purpose Get number of line and point loads on a wall. Parameters lWallID Wall unique ID plNumLineLoads Total number of line loads on wall plNumPointLoads Total number of point loads on wall

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);

Page 214: RAM Data Access Developers Guide

Purpose Information on line loads applied on a wall. Parameters 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 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)

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

GetGravityLoadFramingFlag ([out] long * plGravFraming);

Purpose Get the status of the gravity framing tables. Parameters plGravFraming 0 = not framed, 1 = framed

GetBeamPointLoadType ([in]long lBeamID, [in]long lPtLoadNo, [out] EGRAVPTLOADSOURCE* peLoadSource);

Purpose Get point load source type Parameters lBeamID Beam unique ID lPtLoadNo Point load index number from 0 to lNumPointLoads - 1 peLoadSource Point load source

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 Information on the point loads applied on a wall. Parameters lWallID Wall unique ID

Page 215: RAM Data Access Developers Guide

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 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 pdAxPosNonRedLL Axial Positive Non-Reducible Live Load pdAxNegStorageLL Axial Negative Storage Live Load pdAxPosStorageLL Axial Positive Storage Live Load pdAxNegRoofLL Axial Negative Roof Live Load pdAxPosRoofLL Axial Positive Roof Live Load 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 peLoadType Point load source

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 Get the reaction (axial force) from ONLY gravity members on a column at a particular story. Includes the load from gravity columns above.

Parameters 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

Page 216: RAM Data Access Developers Guide

pdLLPosNonRed The downward non-reducible live load pdLLNegNonRed The upward non-reducible live load pdLLPosStorage The downward storage live load 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

Comments 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)

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);

Purpose 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.

Parameters 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 Comment 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.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID); NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 9.0

Page 217: RAM Data Access Developers Guide

HRESULT 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 Get column tributary area based on gravity analysis assuming beams are simply supported

Parameters lColumnID unique member ID peTensionCompressionType Defines type as tension only/ compression only or both pdPosRedTribArea Positive reducible live load tributary area pdNegRedTribArea Negative reducible live load tributary area pdPosStorageTribArea Positive storage live load tributary area pdNegStorageTribArea Negative storage live load tributary area pdPosRoofTribArea Positive Roof live load tributary area pdNegRoofTribArea Negative Roof live load tributary area pdPosRedTribAreaCant Positive reducible live load tributary area from cantilever

pdNegRedTribAreaCant Negative reducible live load tributary area from cantilever

pdPosStorageTribAreaCant Positive storage live load tributary area from cantilever pdNegStorageTribAreaCant Negative storage live load tributary area from cantilever plRetVal Error code. If value is non zero then check GetLastError Comments

HRESULT GetColumnLLRedFactorExtraInfo([in] long lColumnID, [in, out] double* pdAveRoofSlope, [in, out] long* plNumStoriesAddingToLLPos,

[in, out] long* plNumStoriesAddingToLLNeg, [out, retval] long* plRetVal); Purpose Get additional factor information used for calculating Live Load reduction Parameters 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

Comments HRESULT 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 Get the column side loads from the gravity analysis Parameters 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 Comments

Page 218: RAM Data Access Developers Guide

Version: These methods were made available with RAM Structural System version 10.0 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 Get beam line load info Parameters 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.

Version: These methods were made available with RAM Structural System version 11.0 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);

Page 219: RAM Data Access Developers Guide

Purpose Get beam line load info Parameters 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 peSide The side of the beam that the load is applied to plRetval Return value, 0 = no error else call GetLastError

Sign Convention: A downward acting load is positive. 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, [out] EMemberSide *peSide, long* plRetval);

Purpose Get perpendicular and axial components of point loads applied to a beam. Parameters 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

Page 220: RAM Data Access Developers Guide

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 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 Axial Negative Storage Live Load pdAxPosStorageLL Axial Positive Storage Live Load pdAxNegRoofLL Axial Negative Roof Live Load pdAxPosRoofLL Axial Positive Roof Live Load 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 peLoadSource Point load source peSide The side of the beam that the load is applied to plRetval Return value, 0 = no error else call GetLastError

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.

Version: This interface and its methods were made available with RAM Structural System version 8.1.x GetSteelDesignCode ([out] BSTR* pbstrBeamCode, [out] BSTR* pbstrColumnCode);

Purpose To get the design code used by RAM Steel Beam and Column Parameters pbstrBeamCode Beam code as a string pbstrColumnCode Column code as a string

Page 221: RAM Data Access Developers Guide

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 Get the composite beam properties Parameters 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

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 Parameters 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

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 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.

Parameters lBeamID Beam Unique ID pdInitialRight Initial deflection at right cantilever pdInitialCenter Initial deflection at center span pdInitialLeft Initial deflection at left cantilever

Page 222: RAM Data Access Developers Guide

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

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.

Parameters 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

GetBeamCamber([in] long lBeamID, [out] double* pdCamber);

Purpose Get steel beam camber Parameters lBeamID Beam Unique ID pdCamber Camber value

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods Version: These methods were made available with RAM Structural System version 10.0 GetBeamDesignDecks( [in] long lBeamID, [in, out] EDeckType* peDeckTypeLeft, [in, out] long* plDeckPropIDLeft, [in, out] EDeckType*

peDeckTypeRight, [in, out] long* plDeckPropIDRight ); Purpose Get the deck types and unique IDs on either side of a beam Parameters lBeamID Beam Unique ID peDeckTypeLeft Type of deck on left side of beam plDeckPropIDLeft Unique ID of deck on left side of beam

Page 223: RAM Data Access Developers Guide

peDeckTypeRight Type of deck on right side of beam plDeckPropIDRight Unique ID of deck on right side of beam

IForces1 Philosophy: This interface typically provides RAM Frame member forces. These methods are only available following performing an analysis in RAM Frame.

Version: This interface and its methods were made available with RAM Structural System v8.0.2

Comments 1: (Starting in v8.2) 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

Page 224: RAM Data Access Developers Guide

Figure2. Sign convention for Column and Brace members

Page 225: RAM Data Access Developers Guide

Figure 3. Positive Sign Convention for Walls. 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 Get forces at left side of a point on a lateral beam for a given load case Parameters 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

Page 226: RAM Data Access Developers Guide

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 Get forces at left side of a point on a gravity beam Parameters 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

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 Get lateral column forces for a given load case Parameters 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

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 Get gravity column forces Parameters lColumnID Column Unique ID pdDead Dead load including self weight pdPosLLRed Positive live load Reducible pdPosLLNonRed Positive live load Non-Reducible

Page 227: RAM Data Access Developers Guide

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

GetLatWallForces ([in] long lWallID, [in] long lLoadCase, [out] double *dAxial, [out] double *dMajMom, [out] double *dMajShear);

Purpose Get lateral wall forces for the desired wall and load case Parameters 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

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 Get lateral wall group forces for the desired wall and load case Parameters 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

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 Get effective length info that is defined in RAM Frame criteria

Parameters peColumnMajor The assigned K factor property for column major axis (Use global, Use Nomograph, or Use specified value)

pdColumnMajorValue The eff. Length factor (K) valid only if peColumnMajor is UseSpecifiedValue.

peColumnMinor The assigned K factor property for column minor axis (Use global, Use Nomograph, or Use specified value)

pdColumnMinorValue The eff. Length factor (K) valid only if peColumnMinor is UseSpecifiedValue.

peBeamMajor The assigned K factor property for beam major axis (Use

Page 228: RAM Data Access Developers Guide

global, Use Nomograph, or Use specified value)

pdBeamMajorValue The eff. Length factor (K) valid only if peBeamMajor is UseSpecifiedValue.

peBeamMinor The assigned K factor property for beam minor axis (Use global, Use Nomograph, or Use specified value)

pdBeamMinorValue The eff. Length factor (K) valid only if peBeamMinor is UseSpecifiedValue.

peBraceMajor The assigned K factor property for brace major axis (Use global, Use Nomograph, or Use specified value)

pdBraceMajorValue The eff. Length factor (K) valid only if peBraceMajor is UseSpecifiedValue.

peBraceMinor The assigned K factor property for brace minor axis (Use global, Use Nomograph, or Use specified value)

pdBraceMinorValue The eff. Length factor (K) valid only if peBraceMinor is UseSpecifiedValue.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

IForces2 Philosophy: This is a continuation of the IForces1 interface.

Version: This interface and its methods were made available with RAM Structural System version 8.1.x

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 Get forces at left side of a point on a gravity beam Parameters 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

Page 229: RAM Data Access Developers Guide

pdPosRoofLiveShear Positive roof live load shear pdNegRoofLiveMoment Negative roof live load moment pdNegRoofLiveShear Negative roof live load shear

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 Get lateral brace forces Parameters 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 Minor moment at top pdMajShearTop Major shear at top pdMinShearTop Minor shear at top pdTorsionTop Torsion at top pdMajMomBot Major moment at bottom pdMinMomBot Minor moment at bottom pdMajShearBot Major shear at bottom pdMinShearBot Minor shear at bottom pdTorsionBot Torsion at bottom plResult Returned error code

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID); NOTE: See Common Methods

Version: These methods were made available with RAM Structural System version 8.2

GetAnalysisCaseInfo ([in] long lAnalysisCaseID, [in] EAnalysisResultType eAnalysisReultType, [in, out] SAnalysisCaseInfo* psAnalysisCaseInfo,

[out,retval] long* plRetVal); Purpose Get analysis case info for any RAM SS analysis module. Analysis cases are defined as

the results of analyzing load cases Parameters lAnalysisCaseID Analysis Case Unique ID eAnalysisReultType Analysis module’s 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 Comment Analysis cases are defined as the results of analyzing load cases

GetNumAnalysisCases ([in] EAnalysisResultType eAnalysisReultType, [in, out] long* plNumLoadCases, [out,retval] long* plRetVal);

Purpose Get the number of load cases in this module Parameters eAnalysisReultType Analysis module’s result – RAM Frame, RAM Steel, RAM

Page 230: RAM Data Access Developers Guide

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 Comment Analysis cases are defined as the results of analyzing load cases

GetAnalysisCasesIDArray ([in] EAnalysisResultType eAnalysisReultType, [in, out] long* palLoadCaseIDs, [out,retval] long* plRetVal);

Purpose Get array of unique analysis case ID's for results from a specific module Parameters eAnalysisReultType Analysis module’s 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 Comment Analysis cases are defined as the results of analyzing load cases

GetMemberForces ([in] long lMemberID, [in] EDA_MEMBER_LOC eLocation, [in] long lLoadCaseID, [in] EAnalysisResultType

eAnalysisReultType, [in] BOOL bApplyLLReduction, [in, out] SForce* psMemForces, [out,retval] long* plRetVal); Purpose 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.

Parameters lMemberID Member Unique ID eLocation Location for member forces (not used for walls, always bottom

assumed) lAnalysisCaseID Analysis Case Unique ID eAnalysisReultType Analysis module’s 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 RAM Concrete (if avail) else RAM Gravity

Wall Lateral any RAM Frame Beam/HBrace Gravity steel/other RAM Gravity Beam/HBrace Gravity concrete RAM Concrete Beam/HBrace Lateral any RAM Frame Column Gravity steel/other RAM Gravity

Comment 1

Column Gravity concrete RAM Concrete

Page 231: RAM Data Access Developers Guide

Column Lateral any RAM Frame Brace Lateral any RAM Frame

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 LiveReducibleNegID LiveReducibleSumID LiveUnReduciblePosID LiveUnReducibleNegID LiveUnReducibleSumID LiveStoragePosID LiveStorageNegID LiveStorageSumID LiveRoofPosID LiveRoofNegID LiveRoofSumID

Comment 2

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 RAM Frame (lateral load cases) not available 310 RAM Gravity results are not available 311 File not found (one of the results files) 312 Error reading gravity beam results file 332 Concrete analysis results not available 6121 Brace forces not supported 6126 Beam forces not supported 6127 Generic member forces not supported error 6128 Load case not supported 6129 Concrete analysis column forces file is missing 6130 Concrete analysis wall forces file is missing 6133 Analysis case not supported 9109 Unexpected memory error 12105 Error loading concrete analysis column results file 12106 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)

Page 232: RAM Data Access Developers Guide

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.

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 Obtain element member forces converted to global or to a local system of another element.

Parameters lOriginalMemberID Unique member ID of the original element. Note that the member forces stored in sMemberForceLocal belong to this element.

eLocOrigMember Indicates sMemberForceLocal is defined according to the 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.

eLocFinalMember Indicates converted values are defined according to the sign 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 plRetVal Error code. If value is non zero then check GetLastError Comment Analysis cases are defined as the results of analyzing load cases

Version: These methods were made available with RAM Structural System version 11.1 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

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.

Parameters 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

Page 233: RAM Data Access Developers Guide

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

IConcAnalysis1 Philosophy: To retrieve the results from the Concrete Analysis.

Version: This interface and its methods were made available with RAM Structural System version 8.1

GetDLDeflectionResults ([in] long lBeamID, [in] EBeamSpanType eBmSpanType , [in, out] long* plNumPts, [in, out] SDIAGRAM** ppDLDeflDiag, [retval, out] long* plResult );

Purpose Get the Dead Load deflection curve for a member Parameters 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

GetLLDeflectionResults ([in] long lBeamID, [in] EBeamSpanType eBmSpanType , [in, out] long* plNumPts, [in, out] SENVELOPE** ppLLDeflEnv,

[retval, out] long* plResult ); Purpose Get the beam live load deflection envelope data Parameters 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

GetBeamDeflectionMoments ([in] long lBeamID, [in, out] double* pdMDLlt, [in, out] double* pdMDLmid, [in, out] double* pdMDLrt, [in, out]

double* pdMLLltneg, [in, out] double* pdMLLltpos, [in, out] double* pdMLLmidneg, [in, out] double* pdMLLmidpos, [in, out] double* pdMLLrtneg, [in, out] double* pdMLLrtpos, [out, retval] long* plResult);

Purpose Get the moments that are associated with a particular beam ends and mid point for calculation of the IEff for concrete deflection consideration

Parameters 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

Page 234: RAM Data Access Developers Guide

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 The cumulative, max LL pos moment at the mid of the beam

pdMLLrtneg The cumulative, max LL neg moment at the rt end of the

beam

pdMLLrtpos The cumulative, max LL pos moment at the rt end of the

beam plResult Error code. If value is non zero then check GetLastError

GetBeamCantlDeflectionMoments ( [in] long lBeamID, [in] EBeamSpanType eSpan, [in, out] double* pdMDL, [in, out] double* pdMLLposdefl, [in,

out] double* pdMLLnegdefl, [in, out] long* plResult); Purpose Get the moments that are associated with a particular cantilever for calculation of the IEff

for concrete deflection consideration Parameters 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

GetBeamAnalysisInertia ( [in] long lBeamID, [in, out] double * pdIAnalysis, [in, out] long * lResult);

Purpose Get the moment of inertia used for the analysis Parameters 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

Version: These methods were made available with RAM Structural System version 8.2 GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

NOTE: See Common Methods

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.

Version: This interface and its methods were made available with RAM Structural System version 8.0.2 GetCriteriaKFactor ([in, out] long* pnKxSel, [in, out] long* pnKySel, [in, out] double* pdKx, [in, out] double* pdKy);

Purpose To get the global K Factor criteria Parameters pnKxSel 0 = use nomograph 1 = use this value pnKySel 0 = use nomograph 1 = use this value

Page 235: RAM Data Access Developers Guide

pdKx If “use” is selected, this variable contains the value entered pdKy If “use” is selected, this variable contains the value entered

GetCriteriaAnalysis ([in, out] long* plNumStations, [in, out] double* pdMaxSpc, [in, out] long* plREZ_RadioState, [in, out] double* pdREZPerc, [in,

out] double* pdTorConstRed, [in, out] long* pbSkipLoadBL, [in, out] long* pbSkipLoadNOBl, [in, out] long* pbLLR, [in, out] long* pbColSlend, [in, out] long* pbPin, [in, out] long* pbConstrainRigidDiapSloped);

Purpose Obtain the concrete analysis criteria specified by the user in RAM Concrete Gravity Analysis Module. See Dialog Box from command Criteria – Analysis.

Parameters 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

pbSkipLoadBL True = Skip load live load on beams with beam line numbers

pbSkipLoadNOBl True = Skip load live load on beams with no beam line

numbers

pbLLR True = consider live load reduction when calculating

forces

pbColSlend True = Consider column slenderness when calculationg

column forces

pbPin True = release (pin) the base of concrete gravity columns

at the foundation

pbConstrainRigidDiapSloped True = Do not consider rigid diaphragm on floors that are

sloped.

GetCriteriaBracing ([in, out] long* plSlabBracing, [in, out] double* pdBracingAngle); Purpose To get Bracing criteria Parameters plSlabBracing 0 = Slab braces column 1 = Slab does not brace column. pdBracingAngle Maximum angle from column axis for which beam braces column.

GetAssignBeamLineDefaults ([in, out] double *pdAngleVar, [in, out] double *pdOffset, [in, out] long *plAutoFixity);

Purpose The default settings for the dialog to assign beam line numbers automatically. Refer to concrete analysis mode command Assign-BeamLine Numbers - Automatic

Parameters 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 = Don’t automatically assign fixity to beams in beamlines

1 = Automatically fix all beams in beam line

Page 236: RAM Data Access Developers Guide

2 = Automatically release all beams in beam line

Version: These methods were made available with RAM Structural System version 9.0 GetConceptSelectionAtStory ([in] long lStoryID, [in, out]long* plUseConceptForces, [out,retval] long* lRetval);

Purpose 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.

Parameters 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

GetColForceSource ( [in, out] long* plUseConceptForces, [out,retval] long* lRetval);

Purpose 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.

Parameters 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

Structures used in Original DataAccess Interfaces The use of structures has been avoided in the new RAM Object Model interfaces since they cannot easily be extended without breaking any programs using the older structures. Below are the structures used by the original DataAccess interfaces. SSECTIONS Concrete Section properties

Type Variable Name Comments char SectionName[16] Section label. Can be a total of 15 characters int Shape Variable maps to ECONC_OTHER_SEC float Width Width of rectangular section, Diameter of circular section, Left overhang if T Section float Depth Depth of rectangular section, Total depth of T section, do not use this value if the section is a Pan section float FlangeThickness Flange thickness for T sections where flange is defined float WebThickness Web thickness for T sections float Area Section area. (Value is not defined for T’s with missing flange dimensions and all pan joists) float Ix Major axis bending moment of inertia (Value is not defined for T’s with missing flange dimensions and all pan joists) float Iy Minor axis bending moment of inertia (Value is not always defined) float J Torsional constant of section. (Value is not defined for T’s with missing flange dimensions and all pan joists) float SAx Major axis effective shear area (Value is not defined for T’s with missing flange dimensions and all pan joists) float SAy Minor axis effective shear area (Value is not defined for T’s with missing flange dimensions and all pan joists) float CrackedIFactor Cracked section factor used to reduce moment of inertia values

Page 237: RAM Data Access Developers Guide

int Counter Counter indicates how many members are using this section. BOOL bUseFlangeThick TRUE = user defined Flange Thickness, FALSE = use calculated Flange Thickness based on member location and

connectivity in model BOOL bUseWidth 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.

float fRightOH Right Overhang, used only for Beam T-Sections where the user has defined the flange overhangs. double dPanDepth Web depth from bottom of flange to bottom of web. char achPanLabelLeft[20] Pan joist label used to create left side of section char achPanLabelRight[20] Pan joist label used to create right side of section SCOL_RES Concrete column result basic information Type Variable Name Comments long lColumnID Column’s Unique ID long eResultState Maps to ERESULTS_STATE long eUserSpecState EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design long lNumPatterns Indicates number of bar pattern results (SCOL_PATRES) available for column long eCode Maps to CODE. if eCode == NoCodeDefined, there is no final design double dConcElasticMod Concrete modulus of elasticity

SCOL_PATRES Concrete column bar pattern results Type Variable Name Comments long lColumnID Column’s Unique ID long lPatternDsnID Bar pattern design ID double dBarSpacingMaj Longitudinal Bar spacing parallel to major direction double dBarSpacingMin Longitudinal Bar spacing parallel to minor direction long lBarSpacingError Bar spacing error code double dCapRatioMax Controlling Axial Load / Biaxial Moment Capacity ratio. When > 1.0 column is over stressed double dCapRatioMnMaj Nominal moment capacity in major direction double dCapRatioMnMin Nominal moment capacity in minor direction double dCapRatioPhiDsn Capacity reduction factor used for max capacity double dCapRatioPhiPn Nominal reduced axial load capacity long lCapRatioComboID Load combination ID producing dCapRatioMax long lCapRatioPatternID Column pattern loading producing dCapRatioMax long lCapRatioError Design warnings code encountered in capacity ratio calculation EDA_COL_COMBO_LOC eCapRatioComboLoc Location along column where dCapRatioMax was calculated double dReinRatio Pattern reinforcement ratio double dReinRatioMax Max reinforcement ratio limit double dReinRatioMin Min reinforcement ratio limit

Page 238: RAM Data Access Developers Guide

long lReinRatioMaxComboID ID of load combination producing dReinRatioMax long lReinRatioMaxPatternID Column pattern loading producing dReinRatioMax long lReinRatioMaxError Design warnings encountered in max reinforcement ratio limit check long lReinRatioMinComboID ID of load combination producing dReinRatioMin long lReinRatioMinPatternID Column pattern loading producing dReinRatioMin long lReinRatioMinError Design warnings encountered in min reinforcement ratio limit check double dCapRatioReqAxial Required axial capacity for controlling combo double dCapRatioReqMMajorTop Required Major moment at top capacity for Controlling combo double dCapRatioReqMMajorBot Required Major moment at bottom capacity for controlling combo double dCapRatioReqMMinorTop Required Minor moment at top axial capacity for controlling combo double dCapRatioReqMMinorBot Required Minor moment at bottom capacity for controlling combo double dMaxTensionStressRatio Max bar tension stress ratio used for splice selection long lNumShearSegments Number of transverse reinforcement bar sets SCOL_TRANSRES long lBarPatternID Bar Pattern Unique ID long lShearLegsParalellMaj Number of shear legs parallel to major axis long lShearLegsParalellMin Number of shear legs parallel to minor axis long lSurfaceID Interaction surface Unique ID EDA_CONC_CODE eDsnCode Concrete design code used – ACI318_99 double dClearCover Bar clear cover to transverse reinforcement double dTorsionReqCap Torsional required capacity double dTorsionPrvCap Torsional provided section capacity double dTorsionPhi Torsion capacity reduction factor long lTorsionComboID Load combination producing dTorsionReqCap long lTorsionPatternID Column pattern loading producing dTorsionReqCap long lTorsionError Design warnings related to Torsional capacity check long lComboID_Major Load combo index for controlling slenderness case in major direction long lComboID_Minor Load combo index for controlling slenderness case in major direction long eSlenderClass_Major Slender class if it must be considered (eSlenderType) slender in major axis long eSlenderClass_Minor Slender class if it must be considered (eSlenderType) slender in minor axis long lSlenderness_klrError Design warning code associated with the KL/r check long lSlenderness_PuPcError Design warning code associated with the Pu/Pc ratio check BOOL bAmplifyMoments_Major TRUE if moments were amplified per ACI 10.12.3 BOOL bAmplifyMoments_Minor TRUE if moments were amplified per ACI 10.12.3 double dKlr_Major KL/r ratio for major axis bending double dKlr_Minor KL/r ratio for minor axis bending double dCm_Major Cm per ACI-318 99 10.12.3 in major direction double dCm_Minor Cm per ACI-318 99 10.12.3 3 in minor direction double dLamdaNS_Major LamdaNS per ACI-318 99 10.12.3 3 in major direction double dLamdaNS_Minor LamdaNS per ACI-318 99 10.12.3 3 in minor direction double dBetad_Major Beta d per ACI-318 99 10.12.3 in major direction double dBetad_Minor Beta d per ACI-318 99 10.12.3 in minor direction double dIg_Major Ig (gross mom inert) per ACI-318 99 10.12.3 in major direction double dIg_Minor Ig (gross mom inert) per ACI-318 99 10.12.3 in minor direction double dPu_Major Factored Axial load for controlling slenderness case in major direction

Page 239: RAM Data Access Developers Guide

double dPu_Minor Factored Axial load for controlling slenderness case in minor direction double dPc_Major Pc per 10.12.3 ACI-318 99 10.12.3 in major direction double dPc_Minor Pc per 10.12.3 ACI-318 99 10.12.3 in minor direction double dSPMnTopMaj Nominal unfactored flexural capacity of column at top in major direction double dSPMnTopMin Nominal unfactored flexural capacity of column at top in minor direction double dSPMnBottomMaj Nominal unfactored flexural capacity of column at bottom in major direction double dSPMnBottomMin Nominal unfactored flexural capacity of column at bottom in minor direction double dSPMprTopMaj Probable unfactored flexural capacity of column at top in major direction double dSPMprTopMin Probable unfactored flexural capacity of column top in minor direction double dSPMprBottomMaj Probable unfactored flexural capacity of column bottom in major direction double dSPMprBottomMin Probable unfactored flexural capacity of column bottom in minor direction double dSPVSeismicMaj Calculated minimum shear capacity of column for special provisions double dSPVSeismicMin Calculated minimum shear capacity of column for special provisions ECONC_FRAME_TYPE eFrameType Design frame type long lSPSurfaceID Interaction surface used for special provisions double dSPBeamCapMinMajor Controlling minimum total nominal capacity of concrete beams framing into the major axis faces of

the column double dSPBeamCapMinMinor Same as above for minor face double dSPMnColAboveMaj Nominal Major bending capacity at bottom of column above double dSPMnColAboveMin Nominal Minor bending capacity at bottom of column above long lErrorColumnVBeamMajor Design warning codes for Column v. Beam capacity check long lErrorColumnVBeamMinor Design warning codes for Column v. Beam capacity check long lOtherDesignError Design warning code for first error in list long lNumOtherDesignErrors Number of errors in list SCOL_PATRES_BSTR Type Variable Name Comments long lColumnID Column’s Unique ID long lPatternDsnID Bar pattern design ID bstr bstrBarSpacingMsg Bar spacing design warning bstr bstrCapRatioMsg Capacity ratio design warning bstr bstrReinRatioMaxMsg Reinforcement ratio max limit design warning bstr bstrReinRatioMinMsg Reinforcement ratio min limit design warning bstr bstrSurfaceFile Name of file containing interaction surface diagrams bstr bstrTorsionMsg Torsion capacity check design warning bstr bstrSlenderness_ klrErrorMsg Slenderness kl/r check design warning bstr bstrSlenderness_PuPcErrorMsg Slenderness Pu/Pc check design warning bstr strErrorColumnVBeamMajor Error strings for Column v. Beam capacity check in column major direction bstr strErrorColumnVBeamMinor Error strings for Column v. Beam capacity check in column minor direction strOtherDesignErrorMsg List of Design warnings spaced by "\r\n " SCOL_TRANSRES

Page 240: RAM Data Access Developers Guide

Type Variable Name Comments long lColumnID Column’s Unique ID long lPatternDsnID Bar pattern design ID long lShearError Shear check design warning long lSegNumber This bar pattern’s segment number in column long lCombo Load combo used to design this segment long lPattern Column pattern loading used to design this segment BOOL bShearBarControlDirMaj TRUE = design controlled by major direction shear, FALSE = controlled by minor direction

shear EDA_SEG_SET_INFO SegSetInfo Segment set information EDA_REIN_PLACE_SET ReinPlaceSet Reinforcement placement info. double dShearReqCapMaj Major direction shear forces double dShearStlCapMaj Major direction shear reinforcement capacity double dShearConcCapMaj Major direction concrete capacity double dShearReqCapMin Minor direction shear forces double dShearStlCapMin Minor direction shear reinforcement capacity double dShearConcCapMin Minor direction concrete capacity double dShearPhiReducFactor Shear capacity reduction factor SCOL_TRANSRES_BSTR Type Variable Name Comments long lColumnID Column’s Unique ID long lPatternDsnID Bar pattern design ID long lSegNumber This bar pattern’s segment number in column BSTR bstrShearMsg Shear check design warnings. EDA_SEG_SET_INFO Bar set placement location information Type Variable Name Comments double dStartSeg Start segment location double dEndSeg End segment location double dMaxVal Maximum value in segment double dMinVal Minimum value in segment BOOL bStartSup TRUE = There is a support at start of segment BOOL bEndSup TRUE = There is a support at end of segment EDA_REIN_PLACE_SET Bar set information Type Variable Name Comments

Page 241: RAM Data Access Developers Guide

double dAs_Req Required area of reinforcement double dAs_prv Provided area of reinforcement long lNumBars Number of bars required long lReinIndexNum Reinforcement index number double dBarSpacing Reinforcement spacing provided double dCapacity Capacity of provided rebar SBAR_PATTERN Bar Pattern definition Type Variable Name Comments long lUniqueID Unique to each pattern – this id number is never reused. SREIN_PROP rpLongBarReinProp Longitudinal reinforcement properties SREIN_PROP rpTieBarReinProp Transverse reinforcement properties BOOL bValid TRUE if both bars appear in the Rein_prop table and they are both selected long lGroupNumber Reference back to the pattern group to which this pattern belongs char cPatternLabel[100] Bar pattern label SREIN_PROP Concrete Reinforcement bar properties Type Variable Name Comments char cLabel[15] Reinforcement bar label double dDiameter Bar nominal diameter double dArea Bar nominal area BOOL bFlex TRUE = Bar used for flexure BOOL bShear TRUE = Bar used for shear/torsion SBML_RES Concrete beam line design result which relate to all the beams in the beam line Type Variable Name Comments double dVersion Data version number only to be used by RAM International long lBeamLineID Beam line number long lStory Story number starting with 0 for the first story long lNumCantilevers Number of cantilevers in span long lNumSpans Total number of spans in beam line. Cantilever and back span are considered as one span long eResultState Map to ERESULTS_STATE long eUserSpecState EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design BOOL bTransBarCheck TRUE = Transverse Reinforcement was checked but not optimized.

FALSE = Transverse Reinforcement was both optimized and checked BOOL bLongBarCheckBot Similar to bTransBarCheck for longitudinal bottom reinforcement

Page 242: RAM Data Access Developers Guide

BOOL bLongBarCheckTop Similar to bTransBarCheck for longitudinal top reinforcement BOOL bReqFlxReinOnly TRUE = Only flexure required reinforcement data is available. There is no reinforcement avalable SBM_RES Individual concrete beam span design results Type Variable Name Comments long lBeamUniqueID Unique Beam ID long lSpanIndex Order of this beam in beam line starting with 0 for first beam long lBeamLineID Beam line ID long lStory Story where beam line is located float fTrueBarCoverTop True bar cover to top reinforcement calculated from actual clear cover, transverse reinforcement , longitudinal

top bar diameters and number of layers long lTrueBarCoverTopError Design warning code for fTrueBarCoverTop verses actual user defined bar cover float fTrueBarCoverBot Same as fTrueBarCoverTop for bottom bars long lTrueBarCoverBotError Same as lTrueBarCoverTopError for bottom bars float fTorsionCapPrv Provided torsional capacity float fTorsionCapReq Required torsional capacity long lTorsionError Design warning code for torsional capacity check float fBarSpacingTopLong Top longitudinal bar spacing long lTopLongBarSpacingError Design warning code associated with top bars spacing float fBarSpacingBotLong Bottom longitudinal bar spacing float lBotLongBarSpacingError Design warning code associated with bottom bars spacing float fBarSpacingTrans Transverse bar spacing long lTransBarSpacingError Design warning code associated with transverse bars spacing float fBarSpacingSide Side reinforcement spacing (not used in v8.0.2 or 8.1) long lSideLongBarSpacingError Design warning code for Side reinforcement spacing (not used in v8.0.2 or 8.1) long lFlexBarTopError Design warning code for top flexural reinforcement long lFlexBarBotError Design warning code for bottom flexural reinforcement float fTopReinRatio Top reinforcement ratio float fTopReinRatioLoc Location where fTopReinRatio was calculated long lTopReinRatioComboID Combo ID for maximum reininforcement ratio long lTopReinRatioError Design warning code associated with reinforcement ratio check float fBotReinRatio Bottom reinforcement ratio float fBotReinRatioLoc Location where fBotReinRatio was calculated long lBotReinRatioComboID Combo ID for max rein ratio long lBotReinRatioError Similar to lTopReinRatioError for bottom bars long lTransBarError Design warning code associated with transverse bars float fClearCoverTop Clear cover to top bars float fClearCoverBottom Clear cover to bottom bars float fClearCoverSide Clear cover to side bars

Page 243: RAM Data Access Developers Guide

SBM_RES_BSTR Individual concrete beam span design result strings Type Variable Name Comments long lBeamUniqueID Beam’s Unique ID BSTR bstrDesignMark Beam design mark BSTR bstrTorsionMsg Torsion design warning text BSTR bstrTopLongBarSpacingMsg Top longitudinal bar spacing design warning text BSTR bstrBotLongBarSpacingMsg Bottom longitudinal bar spacing design warning text BSTR bstrTransBarSpacingMsg Transvers bar spacing design warning text BSTR bstrSideLongBarSpacingMsg Side reinforcement bar spacing design warning text BSTR bstrFlexBarTopMsg Top flexural bar design warning text BSTR bstrFlexBarBotMsg Bottom flexural bar design warning text BSTR bstrTopReinRatioMsg Top reinforcement ratio design warning text BSTR bstrBotReinRatioMsg Bottom reinforcement ratio design warning text BSTR bstrSectionErrors Section check design warning text BSTR bstrTopCoverMsg Top cover check design warning text BSTR bstrBotCoverMsg Bottom cover check design warning text BSTR bstrTransBarMsg Transvers bars design warning text 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 long sleeted Bar set ID long lReinIndexNum 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 long lNumBars Number of bars in bar set float startle Bar set start location. If start condition is straight, hook or mechanical then the location is at the end of the

bar. If the start condition is splice then the start location is at the middle of the development length float fend Loc Same as fStartLoc float fBarSpacing Reinforcement spacing provided float fBarDepth Reinforcement bar effective depth float fDevelLength Bar development length float fAs_Req Required area of steel float fAs_prv Provided area of steel float fCapacity Capacity of provided reinforcement BOOL bSetPassed TRUE = bar set has passed design checks from start to end of bar set. long eStartCondition Cast to EBAR_END_CONDITION long eEndCondition Cast to EBAR_END_CONDITION long eBarPlacement Indicates if bar set is for top or bottom reinforcement . Cast to EBAR_PLACEMENT float fTrueBarDepth If value is different from dBarDepth then it is part of two layer set

Page 244: RAM Data Access Developers Guide

float fDevelLengthStart Development length for start of bar set float fDevelLengthEnd Development length for end of bar set long lNumLayersOrLegs Number of layers for multi layer reinforcement in beams Or number of shear legs if bar set is for transverse

reinforcement long lMaxBarsInLayer Maximum number of bars in any layer if lNumLayersOrLegs = 2 and bar set is not transverse long eBarLayerLoc Cast to EBAR_PLACEMENT SBM_BAR_SET_BSTR Bar Set strings Type Variable Name Comments long lSetID Bar set ID number BSTR bstrBarLabel Label for Reinforcement in bar set

SGridLineInfo Grid line information Type Variable Name Comments long lID Grid index number BOOL bLabelI TRUE = Add label at start of grid line BOOL bLabelJ TRUE = Add label at end of grid line BSTR bstrLabel Grid Label double dCoordinate Grid location from the grid system origin dExtMin Grid line minimum value dExtMax Grid line maximum value BOOL bExtMin TRUE = Limit grid line to minimum extent BOOL bExtMax TRUE = Limit grid line to maximum extent BOOL bSnapTo TRUE = A snap point is provided for this grid if it intersects

another grid with bSnapTo also set to true

BEAM_INFO_AT_COLUMN Information on beam framing into column Type Variable Name Comments long lBeamID Beam’s Unique ID number long lColumnFace 1-Major top, 2-minor right, 3-major bottom, 4-minor left double dBeamColumnAngle Angle in plan between beam and column relative to column major axis EDA_MEMBER_LOC eSupportEnd Left or right end EBeamSpanType eSpan Left, middle, right of span. When there is a cantilever there will be two entries in joint data double dVerticalSlopeAngle Angle in vertical plane - positive indicates that the far end of brace is above the column joint long lMajorMomFixed 0 = released, 1 = fixed long lMinorMomFixed 0 = released, 1 = fixed

Page 245: RAM Data Access Developers Guide

long lTorFixed 0 = released, 1 = fixed

BRACE_INFO_AT_COLUMN Information on brace framing into column Type Variable Name Comments long lBraceID Brace Unique ID number long lColumnFace 1-Major top, 2-minor right, 3-major bottom, 4-minor left double dBraceColumnAngle Angle in plan between brace and column relative to column major axis EDA_MEMBER_LOC eBraceEnd Bottom, Top double dVerticalSlopeAngle Angle in vertical plane positive indicates that the far end of brace is above the column joint long lMajorMomFixed 0 = released, 1 = fixed long lMinorMomFixed 0 = released, 1 = fixed long lTorFixed 0 = released, 1 = fixed BAR_SPACING Reinforcement spacing information for concrete column Type Variable Name Comments int nTiesMax Tie maximum spacing. 0 = use code, 1 = use user value double dTiesMax Tie maximum spacing. User entered value. If set to zero, code value will be used. int nTiesMin Tie minimum spacing. 0 = use code, 1 = use user value double dTiesMin Tie minimum spacing. User entered value. If set to zero, code value will be used. int nSpiralMax Spiral maximum spacing. 0 = use code, 1 = use user value double dSpiralMax Spiral maximum spacing. User entered value. If set to zero, code value will be used. int nSpiralMin Spiral minimum spacing. 0 = use code, 1 = use user value double dSpiralMin Spiral minimum spacing. User entered value. If set to zero, code value will be used. int nFlexMax Flexural reinforcement maximum spacing. 0 = use code, 1 = use user value double dFlexMax Flexural reinforcement maximum spacing. User entered value. If set to zero, code value will be used. int nFlexMin Flexural reinforcement minimum spacing. 0 = use code, 1 = use user value double dFlexMin Flexural reinforcement minimum spacing. User entered value. If set to zero, code value will be used. int nClearCover Reinforcement clear cover. 0 = use code, 1 = use user value double dClearCover Reinforcement clear cover. User entered value. If set to zero, code value will be used. int nReinMax Flexural reinforcement ratio maximum limit. 0 = use code, 1 = use user value double dReinMax Flexural reinforcement ratio maximum limit. User entered value. If set to zero, code value will be used. int nReinMin Flexural reinforcement ratio minimum limit. 0 = use code, 1 = use user value double dReinMin Flexural reinforcement ratio minimum limit. User entered value. If set to zero, code value will be used. 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 member’s length.

Page 246: RAM Data Access Developers Guide

Type Variable Name Comments float fLocation Distance or location along member for values below float fMax Max. value at fLocation float fMin Min. value at fLocation float fForRent1 Not Used float fForRent2 Not Used float fForRent3 Not Used long lMaxLC Load combination number that produced fMax. -1 indicates that load combo index number is not available. long lMinLC Load combination number that produced fMin. -1 indicates that load combo index number is not available. long lForRent1 Not Used long lForRent2 Not Used long lForRent3 Not Used 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 fLocation Distance or location along member for values below float fValue Value at fLocation float fForRent1 Not Used float fForRent2 Not Used long lValueLC Load combination number (or other) that produced fValue. -1 indicates that load combo index number is not available. long lForRent1 Not Used long lForRent2 Not Used SLoadCase_CmbGen_DA Load case information for generated load combinations Type Variable Name Comments unsigned char cLabel[ 16 ] String label that identifies the load case. This label CANNOT be used to uniquely identify a load case. unsigned char cType[ 38 ] String that indicates the type of load. unsigned char cSymbol[ 5 ] Symbol used to represent this load case in the load combinations (D, Lp, W1, W2, E1, E2…). This symbol

uniquely identifies the load case. unsigned char cTmpleCaseCode[ 5 ] Symbol used to represent this category of load case in the template file (D, Lp, W, E…) BOOL bUseFlag Flag indicating if this case has been selected for use in combination generation int nLCaseIndex Load Case index float fDirOfLoad 0 = global X-axis, 90 = global Y-axis float fLCaseSpecific Any value associated with this specific load case. Currently this is used for Rho. int nAnalyzeNo 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.

Page 247: RAM Data Access Developers Guide

SLoadCombos_CmbGen_DA Generated load combination data Type Variable Name Comments int NumTerms Number of terms in the load combination float Factors[5] Array of up to 5 factors int LoadCase[5] 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. BOOL bUseFlag Flag that indicates if this load combo is to be used. unsigned char cComboString[100] String representation of the load combination BOOL bTensionOnly Currently not used int nComboNum Load combo number unsigned char cComboIncludes[50] String of symbols separated by commas. This can be used to quickly see which cases are included in a

combination. int nStatus 0 = Unavailable, 1 = Available

SComboParams_DA Code specific input parameters used in load combination generator. Type Variable Name Comments float fValues[10] These are the values associated with control 1 in the load combo generator. There can be up to 10 control 1 values. int nComboBox This is the setting for control 2 – the drop down combo box BOOL bCheckBoxArray[9] These are the settings for control 3 – the table of check box values. There can be up to 9 check boxes. BOOL bUseOnly This is used with control 4. A value of TRUE disables the “Use Code” option. BOOL bLCaseSpcSetting This is used with control 4. A value of TRUE indicates that load case specific values are available. float fLCaseSpc1 For Control 4. This is the first load case specific value. float fLCaseSpc2 For Control 4. This is the second load case specific value. SNodalLoadData Nodal load information Type Variable Name Comments BSTR bstrLabel Label user provided for this individual nodal load double dX The x coordinate of the nodal load double dY The y coordinate of the nodal load double dZ The z coordinate of the nodal load double dFx Nodal Force in the global X directions double dFy Nodal Force in the global Y directions double dFz Nodal Force in the global Z directions SSlabProp – Concrete slab properties assigned to elevated floors or mat foundations

Page 248: RAM Data Access Developers Guide

Type Variable Name Comments BSTR bstrLabel Label user provided for this individual Slab Property long lUniqueID Slab Property unique ID double dThickness Slab thickness double dSelfWeight Slab self wight in lb/sf double dAngle Deck angle for one way deck span double dOffsetFromTOS Slab offset from story or mat foundation top of slab int nCounter Number of times where property is assigned

SDeckProp Composite one way steel deck properties Type Variable Name Comments BSTR bstrDeckLabel Label user provided for this individual Deck Property long lDeckType Deck Table Index long lUniqueID Property Unique ID long lCounter Number of times where property is assigned double dNominalRibHeight Nominal Rib Height double dRibSpacing Rib Spacing double dAvgConcRibWidth Average Concrete Rib Width double dAreaOfConcInRibPerUnitLength Area Of Conc In Rib Per Unit Length for ASD design only double dDistBotDeckToConcCentroid Dist Bot Deck To Conc Centroid for ASD design only double dConcThickAboveFlute Conc Thickness Above Flute/rib double dStudLength Stud Length double dUnitWeight Deck system self weight (units psf) double dConcStressCap Concrete Stress Capacity double dStudStressCapacity Stud Stress Capacity double dStudDiameter Stud Diameter BOOL bShoredConstruction Shored Construction TRUE = shored double dSelfWeight Steel deck self weight (units pcf) double dAngle 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. SFoundationMatInfo Mat foundation information Type Variable Name Comments double dTopOfSlabOffset Mat foundation datum from base of story SFND_DATA Foundation information for spread and continuous foundations

Page 249: RAM Data Access Developers Guide

Type Variable Name Comments long lLabel Footing Number as displayed in RAM Foundation EMATERIALTYPES eMaterial double dX1 double dY1 double dX2 double dY2

These 4 values define the foundation center or center line. (for spreads dX1 = dX2 and dY1 = dY2)

double dZ z location of fnd in the global axis double dLeft distance from left edge of fnd to center line double dRight distance from right edge of fnd to center line double dTop distance from top edge of fnd to first supported member double dBottom distance from bottom edge of fnd to last supported member double dLength length of footing. For spreads, this is top + bottom double dThick thickness of the footing double dAngle angle of the footing w.r.t the global axis BOOL bUserDefined TRUE = the footing is user defined BOOL bDesignDimensions TRUE = dimensions returned are from the design results 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 long lMemberID Member unique ID BSTR bstrScheduleMark Concrete Schedule mark BSTR bstrScheduleMarkPrevious Concrete Schedule previous mark EDXFMarkAssignedBy eMarkChangedBy Mark assigned by long lTime Time stamp of when mark was assigned.

The time is the number of seconds after January 1, 1970 UTC. In C++ projects use CTime

long lTimePrevious 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

SLoadCaseInfo Load case properties Type Variable Name Comments long lUniqueID Load Case UID. BSTR bstrLabel Load case string label ELoadCaseType eLoadType Load Case type

Page 250: RAM Data Access Developers Guide

BOOL bGenerated True = generated load case EFRAMETYPE eFrameType EFRAMETYPE Load case to be used

on lateral, gravity or either frame type

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 long lLoadCaseID Load case UID for this load double dP Downward acting force (positive loads are downward) double dVx Force parallel to global X axis (positive in global X direction) double dVy Force parallel to global Y axis (positive in global Y direction) double dMx Rotational force about the global X axis (Right hand rule for positive direction on all moments) double dMy Rotational force about the global Y axis double dMz Rotational force about the global Z axis SAnalysisCaseInfo Analysis case information. Each load case will generate one or more analysis cases. Type Variable Name Comments long lUniqueID Analysis Load Case UID. long lLoadCaseID Load Case UID that the analysis load case originated from EAnalysisSubType eSubType Indicates the analysis sub type as positive, negative or sum BSTR bstrLabel Analysis load case label ELoadCaseType eLoadType Load case type for this analysis load case BOOL bGenerated True = generated Analysis case. For positive, negative and Sum live load cases this would not be true. BOOL bAnalyzed True = Member Forces are available for this Analysis Case. In some situations, an analysis case can be

analyzed by one module but not another.

SForce Internal member forces and moments. See IForces1 for sign convention Type Variable Name Comments long lAnalysisCaseID Analysis load case UID for this member forc results double dVz_Axial Axial force where Compression is positive double dVx_maj Shear parallel to member major direction double dVy_min Shear parallel to member minor direction double dMx_maj Moment induced by a shearing force dVx_maj double dMy_min Moment induced by a shearing force dVy_min double dMz_Torsion Torsion

Page 251: RAM Data Access Developers Guide
Page 252: RAM Data Access Developers Guide

Common Structure and Enumerator Definitions COMBO_MATERIAL_TYPE

Type of load combination.

Value Description NONE_DEFINED No combinations defined STEEL_STAND RAM Frame Steel Standard provisions generated combos STEEL_SPEC RAM Frame Steel Special provisions generated combos STEEL_CUSTOM RAM Frame Steel custom combos FND_CONCRETE RAM Foundation generated concrete combos FND_SOIL RAM Foundation generated soil combos FND_CUSTOM_CONC RAM Foundation custom concrete combos FND_CUSTOM_SOIL RAM Foundation custom soil combos RAM_CONCRETE RAM Concrete generated combos RAM_CONCRETE_CUSTOM RAM Concrete custom combos STEEL_SPEC_CUSTOM RAM Frame Steel Special provisions custom combos ANALYSIS_CUSTOM RAM Frame custom combos STEEL_GRAV RAM Steel gravity load combinations.

COMBOTYPES

Enumerates the RAM Frame combination types.

Value Description EFrameAnalysisCustomCombos Custom combos in analysis mode EFrameSteelStdGenCombos Generated combos in Steel Standard mode EFrameSteelStdCustomCombos Custom combos in Steel Standard mode EFrameSteelSeismicGenCombos Generated combos in Steel Seismic mode EFrameSteelSeismicCustomCombos Custom combos in Steel Seismic mode

E_BARLAYERS_OPTION

Bar layers option for concrete members.

Value Description BarLayersUseDefault Use global default for number of layers of bars BarLayers1Only Use only one layer of bars

Page 253: RAM Data Access Developers Guide

BarLayers2Allowed Allow up to 2 layers of bars E_COVER_OPTION

Clear cover option for concrete members.

Value Description CoverUseDefault Use global default for clear cover CoverUserDefined Use user defined clear cover

E_SHEARLEGS_OPTION

Shear legs option for concrete members.

Value Description ShearLegsUseDefault Use global default for number of shear legs ShearLegsUserDefined Use user defined number of shear legs

E_STATUS

Status of a module.

Value Description ModHadNO_CHANGE There has been no change that requires rerunning this module. ModIsVALID The module status is valid ModIsINVALID The module status is invalid ModIsNOTAVAIL The module status is not available

E_STIRRUPS_OPTION

Stirrup option for concrete members.

Value Description StirrupsUseDefault Use global default StirrupsOpen Design with Open stirrups StirrupsClose Design with Closed stirrups Stirrups135Hook Design with 135 Hook stirrups StirrupsHoop Design with Hoop stirrups

EAggregateType

Page 254: RAM Data Access Developers Guide

Concrete aggregate type.

Value Description

eConcAggLWC Light weight concrete eConcAggNWC Normal weight concrete

EAnalysisResultType

Module analysis results to be used for member internal forces. Value Description

RAMGravityResultType Results from RAM Steel Analysis RAMFrameResultType Results from RAM Frame Analysis RAMConcreteResultType Results from RAM Concrete Analysis RAMConceptResultType Results from RAM Concept Analysis (not yet implemented) RAMFoundationResultType Results from RAM Foundation Analysis (not yet implemented) DefaultResultType Results taken from most appropriate source based on member’s framing and material type. OtherResultType (not yet implemented)

EAnalyzeFlag

Indicates if the corresponding member is to be optimized by RAM Structural System, or simply analyzed

Value Description eOptimize Design will be optimized eAnalyze Design will be analyzed eOptimizeStuds Size will be analyzed, studs will be optimized (used only for beams)

EAXIS

Used to indicate axis.

Value Description EMajorAxis Specifies the major axis EMinorAxis Specifies the minor axis

EBAR_END_CONDITION

Reinforcement bar end condition or shape. Note this enum is not defined in DA it will need to be defined manually by user.

Page 255: RAM Data Access Developers Guide

Value Description

STRAIGHT Straight bar LAP_SPLICE Lap spliced with an adjacent bar HOOK90 90 Deg. hook HOOK135 135 Deg. hook CLOSED Closed stirrup U Open Stirrup HOOP Seismic Hoop Stirrup MECHANICAL Mechanical splice

EBAR_PLACEMENT

Reinforcement bar location in concrete member. Note this enum is not defined in DA it will need to be defined manually by user.

Value Description

BP_BOTTOM Bottom reinforcement BP_TOP Top Reinforcement BP_LEFT Left end of span BP_RIGHT Right end of span BP_UPPER_LAYER Upper layer BP_LOWER_LAYER Lower Layer

EBeamSpan

Beam condition at a face of a column

Value Description

eNoBeam No beam at column face eBackspanBeam Backspan of beam at column face eCantileverBeam Cantilevered beam at column face

EBeamSpanType

Defines Part of beam span type.

Value Description

eLeftCantl Left cantilever of beam eMidSpan Beam mid span eRightCantl Right cantilever of beam

Page 256: RAM Data Access Developers Guide

eNoSpanDefined No span part defined – An error could have been encountered EBuildingCode

List of building codes that can be used during design.

Value Description eCodeUBC_Method1 UBC Roof Live Load Reduction Method 1 eCodeUBC_Method2 UBC Roof Live Load Reduction Method 2 eCodeIBC_General IBC Roof Live Load Reduction General eCodeIBC_Alternate IBC Roof Live Load Reduction Alternate eCodeSBC SBC eCodeBOCA BOCA eCodeCanada NBC of Canada eCodeBritish BS 6399 eCodeEurocode Eurocode

ECombinationSourceType

Indicates whether the combination is custom or generated.

Value Description eCustomCombo Custom or user-defined load combination eGeneratedCombo Generated load combination

ECompoundLoadCaseState

Indicates what the compound state of the load case.

Value Description eMergedLoadCase Merged load case eCompoundLoadCase Compound load case ePrimaryLoadCase Load cannot be broken down into sub loads

ECONC_OTHER_SEC

Concrete and ‘Other’ section shapes.

Value Description ERect Rectangular section

Page 257: RAM Data Access Developers Guide

ECircle Circular section ET Tee section EOther ‘Other’ section (no shape defined for ‘Other’ sections) EPanJoist Pan joist section (calculated by RAM Structural System)

ECONC_FRAME_TYPE

Concrete lateral frame type.

Value Description ConcFrameType_Ordinary Ordinary moment frame design ConcFrameType_Intermediate Intermediate moment frame design ConcFrameType_Special Special moment frame design

EDA_COL_COMBO_LOC

Column evaluated combination results location along column length.

Value Description COMBO_AT_TOP Combo value at top of column COMBO_AT_SPAN Combo value along column span COMBO_AT_BOTTOM Combo value at bottom of column

EDA_CONC_CODE

Concrete design code.

Value Description eACI318_95 ACI 318-95 eACI318_99 ACI 318-99 eACI318_02 ACI 318-02 eCanadian Canadian eEuroCode Eurocode eBS8110_97 BS 8110-97

EDA_MEMBER_LOC

Location relative to a member. Some locations are not relevant to all members.

Value Description

Page 258: RAM Data Access Developers Guide

eStart Start of member eEnd End of member eStartSupportCantilever Cantiliver end reaction at start support eStartSupportMidSpan Mid span reaction at start support eEndSupportMidSpan Mid span reaction at end support eEndSupportCantilever Cantiliver end reaction at end support eTop Top of column or brace eBottom Bottom of column or brace eTopStart Top start of wall eTopEnd Top end of wall eBottomStart Bottom start of wall eBottomEnd Bottom end of wall

EDeckType

Type of deck.

Value Description eDeckType_Composite Composite Deck eDeckType_NonComposite Non-composite Deck eDeckType_Concrete Concrete Slab

EDefaultOrAlternate

Whether the default table directory is used (Tables) or the alternate directory is used (Working)

Value Description eDefault Use default directory eAlternate1 Use alternate 1 directory

EDiaphragm

Type of diaphragm.

Value Description eNoDiaphragm No diaphragm eRigidDiaphragm Rigid diaphragm

EDRAWINGCOLOR

Page 259: RAM Data Access Developers Guide

Color that a member type is displayed in.

Value Description eGridLabelColor Grid label eSteelGravColColor Steel gravity column eSteelLatColColor Steel lateral column eConcGravColColor Concrete gravity column eConcLatColColor Concrete lateral column eOtherGravColColor Other gravity column eOtherLatColColor Other lateral column eSteelGravBeamColor Steel gravity beam eSteelLatBeamColor Steel lateral beam eConcGravBeamColor Concrete gravity beam eConcLatBeamColor Concrete lateral beam eConcJoistBeamColor Concrete joist beam eOtherGravBeamColor Other gravity beam eOtherLatBeamColor Other lateral beam eJoistColor Steel Joist eSmartbeamColor Smartbeam eSteelBraceColor Steel brace eConcBraceColor Concrete brace eOtherBraceColor Other brace eConcGravWallColor Concrete gravity wall eConcLatWallColor Concrete lateral wall eOtherGravWallColor Other gravity wall eOtherLatWallColor Other lateral wall eFoundationColorColor Foundation SlabEdgeColor Slab edge eSlabOpenColor Slab opening eDeckColor Deck eWebOpeningColor Web opening eLoadsColor Loads eDiagramsColor Diagram eTextColor Text

EDXFMarkAssignedBy

Member DXF schedule mark assigned by category.

Value Description DXFMarkUser Mark assigned by user

Page 260: RAM Data Access Developers Guide

DXFMarkGenRAMSS Mark generated by RAM SS DXFMarkother Mark assigend by other

EEdge

Edges of a wall.

Value Description

eTopEdge Top edge of wall eBottomEdge Bottom edge of wall

EFRAMETYPE

Frame type.

Value Description MemberIsGravity Gravity member MemberIsLateral Lateral member MemberIsEither Either type (cannot be used for assigning to a member)

EGRAVPTLOADSOURCE

Source of point load on member.

Value Description EPtLoadFromGravBmReact Point load from gravity beam reaction EPtLoadFromFrameBeamReact Point load from frame beam reaction EPtLoadFromGravColReact Point load from gravity column reaction EPtLoadFromFrameColReact Point load from frame column reaction EPtLoadUserApplied User applied point load EPtLoadSourceUndefined Unknown source for point load EPtLoadPassedThruGravWall Pt load was passed down through a gravity wall EPtLoadPassedThruFrameWall Pt load passed down through a frame wall

EGridAxis

Type of grid.

Value Description

Page 261: RAM Data Access Developers Guide

eGridXorRadialAxis X grid if in orthogonal grid system; Radial grid if in radial grid system eGridYorCircularAxis Y grid if in orthogonal grid system; Circular grid if in radial grid system

EINTERFACES

Enumerator used to get pointers to specific DA interfaces.

Value Description IDBIO1_INT IDBIO1 IModelData_INT IModelData1 IConcreteModule_INT IConcColModState1 IModelGeometry_INT IModelGeometry1 IGravityLoads_INT IGravityLoads1 ILoading_INT ILoading1 IForces_INT IForces1 IMemberData_INT IMemberData1 IConcBeamState_INT IConcBeamState1 IConcAnalysisState_INT IConcAnalysisState1 IModelStatus_INT IModelStatus1 IGravitySteelDesign_INT IGravitySteelDesign1 ISteelColumnState_INT Interface not published yet! IModelData2_INT IModelData2 IConcAnalysis1_INT IConcAnalysis1 IConcCntlrCommon1_INT IConcCntlrCommon1 IMemberData2_INT IMemberData2 IConcBeamState2_INT IConcBeamState2 IForces2_INT IForces2 IModelGeometry2_INT IModelGeometry2

EIsolatedFndType

Type of foundation.

Value Description eIFndSpread Spread footing eIFndPileCap Pile cap footing

EJoistType

Page 262: RAM Data Access Developers Guide

Type of steel joist.

Value Description eJstStandard Standard joist with uniform load eJstCloseUniform “Close enough” to uniform load eJstREquivalent Equivalent Uniform Load, Ed Ryan (Vulcraft) method eJstSJIEquivalent Equivalent Uniform Load, SJI method eJstCustom Custom label, Uniform Load eJstKCS KCS Joist eJstGirderEqualPtLoads Joist Girder, Equal Point Loads eJstGirderClosePtLoads Joist Girder, “Close Enough” to Equal Point Loads eJstSpecial Special Joist

EJstNonUniformLoadOption

Joist criteria option for joists with non-uniform loads.

Value Description eStlJstNonUniUseEquivalentMethod Use Uniform Equivalent Method to pick joist sizes eStlJstNonUniSelectFromCSTable Select joist sizes from Constant Shear table eStlJstNonUniUsexxGSP Use xxGSP label

EJstUniformLoadOption

Joist criteria option for joists with uniform loads.

Value Description eStlJstUniSelectFromStandardTable Select joist sizes from standard table eStlJstUniSelectFromCSTable Select joist sizes from Constant Shear table eStlJstUniUseCustomLabel Use custom label for joist sizes

EKFAC_ASSIGN

Identifies what the current setting assigned to the column is for effective length.

Value Description UseGlobalKFac Use the global criteria for this column (in specified axis) UseNomoForKFac Use the nomograph for this column (in the specified axis) UseThis Use the assigned K factor for this column (in the specified axis)

Page 263: RAM Data Access Developers Guide

ELineLoadUserApplied

Source of line load on member.

Value Description ELineLoadUserApplied User applied line load directly to the beam ELineLoadFromSurfaceLoad The line load is from a distributed surface load ELineLoadFromEdge Load is from a slab or opening edge ELineLoadSelfWeight Load is the member self weight ELineLoadPassedThruGravityWall Load was passed down to this beam through a gravity wall (wall loads from above applied to

supporting member below wall) ELineLoadPassedThruFrameWall Load was passed down to this beam through a frame wall ELineLoadSourceUndefined Undefined, should not occur

ELoadCaseType

Type of load case

Value Description DeadLCa Dead Load LiveLCa Live Load LiveReducibleLCa Live Reducible LiveUnReducibleLCa Live Unreducible LiveStorageLCa Live Storage LiveRoofLCa Live Roof Load ConstructionDeadLCa Construction Dead Load ConstructionLiveLCa Construction Live MassDeadLCa Mass Dead Load BalancedLCa Balanced Load WindLCa Wind Load SeismicLCa Seismic Load SnowLCa Snow Load VirtualLCa Virtual Load DynamicLCa Dynamic Load OtherLCa Other Load

EMATERIALTYPES

Type of material.

Page 264: RAM Data Access Developers Guide

Value Description

ESteelMat Steel ESteelJoistMat Steel Joist ESmartbeamBeamMat Smartbeam EConcreteMat Concrete EOtherMat ‘Other’ EWallPropConcreteMat Concrete Wall EWallPropOtherMat Other Wall ENoneMaterial None or N/A (cannot be used for assigning to a member) EAnyMaterial Any (cannot be used for assigning to a member)

EMemberInPolyCategory

Category of members to look for in polygon.

Value Description eStartMemPolyCat Members that start inside the given polygon (Not Implemented) eEndMemPolyCat Members that end inside polygon eAboveMemPolyCat Members that are in the story above polygon eBelowMemPolyCat Members that have thier start end inside the polygon ePassThroughMemPolyCat Members that pass through the level - Not implemented / future item

EMemberOrientation

Member orientation

Value Description eOrientUnknown Unknown orientation eOrientVertical Vertical orientation eOrientHorizontal Horizontal orientation

EMemberSide

Side of a member something is associated with

Value Description eMemLeftSide Left side of member eMemRightSide Right side of member eMemNoSide Center of member

Page 265: RAM Data Access Developers Guide

eMemBothSides Both sides of member ePATTERN_TYPE

Concrete column bar pattern type.

Value Description TIE Rectangular transverse ties SPIRAL Spiral transverse reinforcement CIRCULAR Circular transverse ties IRREGULAR Irregular transverse reinforcement – Not currently used

EPileConfiguration

Pile group configuration.

Value Description ePileConfigTriangular Triangular 3-pile pile group configuration ePileConfig5PileGroup Rectangular 5-pile Pile group ePileConfig7PileGroup Rectangular 7-pile Pile group ePileConfigRectangular Rectangular pile group (user defined number of piles) ePileConfig8PileGroup Rectangular 8-pile Pile group (piles not arranged in rows/columns) ePileConfig2PileGroup Rectangular 2-pile Pile group ePileConfig5SqrPileGroup Square 5-pile Pile group

ERESULTS_STATE

Identifies the state of the design of an individual member.

Value Description MemberNotReady Data is missing so a design cannot be performed. (light blue) MemberReady Member is ready to be designed (yellow) MemberDesignPassed Member is designed and the design passed (green) MemberDesignFailed Member is designed and the design failed. (red)

ERoofLLType

Type of roof live load.

Value Description

Page 266: RAM Data Access Developers Guide

eRoofLoadsAreSnow Roof loads are snow eRoofLoadsAreReducible Roof loads are reducible eRoofLoadsUnReducible Roof loads are unreducible

ESIDESWAY_ASSIGN

Identifies what the current setting assigned to the column is for sidesway.

Value Description UseGlobalSS Use the global criteria for this column (in specified axis) ItIsBraced The column is braced for this column (in the specified axis) ItIsUnbraced The column is unbraced for this column (in the specified axis)

eSlenderType

Concrete column slenderness type. Note: This enum is not used directly in DA it is mapped to a long.

Value Description Slender If user wants to consider slenderness and column is slender NotSlender If user wants to consider slenderness but column is not slender SlenderNotConsidered If user chooses not to consider slenderness SlenderError_klrExceedsLimit If user wants to consider slenderness and column exceeds kl/r limit per

code SlenderError_PuExceedsPc If user wants to consider slenderness and Pu exceeds Pc in ACI

ESMARTBEAMTYPE

Castellated or Cell (Smartbeam) beam type.

Value Description SMARTBEAM_CAST Castellated beam SMARTBEAM_CELL Cell beam

EStateStatus

Status of an item’s state.

Value Description eStateNotAvail State is unavailable eStateNotCurrent Item’s state is not current eStateCurrent Item’s state is current

Page 267: RAM Data Access Developers Guide

ESTEEL_ROLLED_FLAG

Roll flag for steel member

Value Description

EStlBuilt Built up shape EStlRolled Rolled shape

ESTEEL_SEC

Steel section shapes

Value Description

EStlWF I-Section (Wide Flange) EStlTube Rectangular HS EStlPipe Round HS EStlChannel Channel EStlDoubleL Double Angle EStlLSection Single Angle EStlFlatBar Flat Bar EstlRoundBar Round Bar EStlTSection T Section

ESteelDesignCode

Design code for steel members.

Value Description eASD ASD 9th Edition eLRFD LRFD 3rd Edition eCANCSA_1994 CAN/CSA-S16.1-94 eBS5950_1990 BS5950:1990 eBS5950_2000 BS5950:2000 eEurocode3 Eurocode

ESubLoadCaseType

Source or Type of the ELoadCaseType

Page 268: RAM Data Access Developers Guide

Value Description eNoSubType No sub load type eGravityLoad Gravity load type eStoryLoad Story load eNodalLoad Nodal load eUserDefinedStoryLoad User defined story load eImportedLoad Imported load eEigen Eigen eResponseSpectra Response Spectra eCenterOfRigidity Center of Rigidity

ETensionCompressionMemType

Indicates whether members takes tension, compression, or both.

Value Description ETensionCompressionMem Member takes both tension and compression ETensionOnlyMem Member takes tension only ECompressionOnlyMem Member takes compression only

ETimeStampAction

Action for time stamp retrieval.

Value Description eTSAdd Add eTSDelete Delete eTSChange Change

ETimeStampProperty

Property for time stamp retrieval.

Value Description eTSNoProp No particular property eTSSize Member size eTSReframeFlag Floor reframe eTSFloorType Floor type

EUniqueMemberTypeID

Page 269: RAM Data Access Developers Guide

Member type.

Value Description

eTypeNone No type, or not applicable eTypeColumn Member is a column eTypeBeam Member is a beam eTypeWall Member is a wall eTypeBrace Member is a vertical brace eTypeFoundation Member is a foundation eTypeNode Member is a node eTypePointLoading Member is a point load eTypeLineLoading Member is a line load eTypeSurfaceLoading Member is a surface load eTypePointLoadSetProp Member is a point load property set eTypeLineLoadSetProp Member is a line load property set eTypeSurfaceLoadSetProp Member is a surface load property set eTypeFloorPerimeter Member is a floor perimeter (slab edge) eTypeFoundationMatPerimeter Member is a mat foundation perimeter eTypeFloorOpening Member is an opening in a floor (slab opening) eTypeFloorPenetrations Member is a floor penetration eTypeDeckOrSlab Member is a deck or slab eTypeNonComposite Member is a non-composite deck property set eTypeFoundationMatSlab Member is a mat foundation slab definition eTypeDeckProp Member is a composite deck property set eTypeSlabProp Member is a concrete slab property set eTypeStory Member is a story eTypeFloorType Member is a floor type eTypeLoadCase Member is a gravity load case eTypeAnalysisCase Member is an analysis case eTypeNodalLoad Member is a nodal load eTypeNodalLoadProp Member is a nodal load property set eTypeConcSectionProp Member is a concrete section eTypeOtherSectionProp Member is an ‘Other’ section eTypePile Member is a pile definition eTypePileConfiguration Member is a pile configuration eTypeGridSystem Member is a grid system eTypeGrid Member is a grid eTypeHorizontalBrace Member is a horizontal brace

EUnits

Page 270: RAM Data Access Developers Guide

Type of unit system.

Value Description

eUnitsEnglish English units eUnitsSI SI Units eUnitsMetric Metric Units

EUSER_SPECIFIED_STATE

Enumerates used to specify design state as optimized or user defined/frozen.

Value Description OptimizeResults Member was optimized ResultsAreUserDefined Member was user defined and therefore possibly changed from optimized design

EUserOverride

Indicates if the corresponding value is user overridden

Value Description eUserNA Not Applicable eUserYes Value is user defined or overridden eUserNo Value is not overridden by user

EWebOpenPosition

Position of web opening in beam web.

Value Description eWebOpenCentered Opening is centered in beam web eWebOpenOffsetToTop Opening position is offset from top of beam to top of opening eWebOpenOffsetToCenter Opening position is offset from top of beam to center of opening eWebOpenOffsetToBot Opening position is offset from top of beam to bottom of opening

EWebOpenShape

Shape of web opening.

Value Description

Page 271: RAM Data Access Developers Guide

eRectOpening Rectangular opening eCircularOpening Circular opening

EWhichModule

RAM Structural System modules.

Value Description

AllModules All RAM Structural System modules IAmFramingTables Framing Tables IAmRamManager RAM Manager IAmRamModeler RAM Modeler IAmRamSteelBeam RAM Steel Beam IAmRamSteelColumn RAM Steel Column IAmRamFrameAnalysis RAM Frame Analysis IAmRamFrameLCombo RAM Frame Load Combinations mode IAmRamFrameStandard RAM Frame Standard Provisions mode IAmRamFrameSpecial RAM Frame Special Provisions mode IAmRamFrameDrift RAM Frame Drift Control mode IAmRamFoundation RAM Foundation IAmRamConcreteAnalysis RAM Concrete Analysis IAmRamConcreteColumn RAM Concrete Column IAmRamConcreteBeam RAM Concrete Beam

REFIID

IDs of various DA interfaces.

Value Description IID_IDBIO1 ID for IDBIO interface IID_Model ID for IModel interface IID_IModelGeometry1 ID for IModelGeometry1 interface IID_IModelGeometry2 ID for IModelGeometry2 interface IID_IModelData1 ID for IModelData1 interface IID_IModelData2 ID for IModelData2 interface IID_IMemberData1 ID for IMemberData1 interface IID_IMemberData2 ID for IMemberData2 interface IID_IConcAnalysisState1 ID for IConcAnalysisState1interface IID_IConcColModState1 ID for IConcColModState1 interface IID_IConcColModState2 ID for IConcColModState2 interface IID_IConcBeamState1 ID for IConcBeamState1 interface

Page 272: RAM Data Access Developers Guide

IID_IConcBeamState2 ID for IConcBeamState2 interface IID_IGravityLoads1 ID for IGravityLoads2 interface IID_ILoading1 ID for ILoading1 interface IID_IForces1 ID for IForces1 interface IID_IForces2 ID for IForces2 interface IID_IModelStatus1 ID for IModelStatus1 interface IID_IGravitySteelDesign1 ID for IGravitySteelDesign1 interface IID_IConcCntlrCommon1 ID for IConcCntlrCommon1 interface

SCoordinate

3D Cartesian coordinate.

Value Description dXLoc X Coordinate dYLoc Y Coordinate dZLoc Z Coordinate

SGridSysType

Type of grid system.

Value Description eGridOrthogonal Orthogonal grid system eGridRadial Radial grid system eGridSkewed Skewed grid system (not applicable)

Page 273: RAM Data Access Developers Guide

Appendix A - RAM Object Model Diagram

P r o p e r t i e sG e t C o u n t ( )G e t ( i n lo n g ) > p I t e m I n t e r f a c eG e t A t ( l o n g in d e x ) > p I t e m I n t e r f a c eF i l t e r ( i n C r i t e r ia ) ?A d d ( ) > p I t e m I n t e r f a c e ( )D e le t e ( in U I D )

C o l l e c t i o n O b j e c t s

U I DP r o p e r t i e s

S t a n d a r d O b j e c t

M o d e l

F lo o r T y p e s

S t o r ie s S t o r y

B e a m s

C o lu m n s

S la b P e r im e t e r s

S la b O p e n in g s

S la b P e r im e t e r

V e r t i c a lB r a c e s

W a l l s

B e a m

C o lu m n

V e r t i c a lB r a c e

W a l l

S la b O p e n in g

L a y o u t B e a m

L a y o u t C o lu m n

L a y o u t W a l l

G r id S y s t e m s G r id S y s t e m G r i d s G r i d

C o n c S e c t P r o p s

O t h e r S e c t P r o p s

C o n c S e c P r o p

O t h e r S e c t P r o p

W e b O p e n in g s W e b O p e n in g

F lo o r T y p e

S la b E d g e s S la b E d g e

I s o la t e d F n d s I s o la t e d F n d

L a y o u t I s o la t e d F n d

L a y o u t I C o n t F n d

C o n t F n d s C o n t F n d

D e c k s D e c k P o in t s P o in t

C o m p D e c k P r o p s C o m p D e c k P r o p

L a y o u t M a t P e r im

M a t F n d P e r im s L a y o u t M a t P e r im

P o in t s P o in t

C l ip p e d F n d P r o p s

C l ip p e d F n d P r o p

L a y o u t B e a m s

L a y o u t C o lu m n s

L a y o u t W a l ls

L a y o u t I s o la t e d F n d s

L a y o u t C o n t F n d s

L a y o u t M a t P e r im s

L a y o u t M a t P r o p P o ly P o in t s P o in tL a y o u t M a t P r o p P o ly s

L a y o u t H o r i z B r a c eL a y o u t H o r iz B r a c e s

C a n G e t H e r e F r o m M o d e l

C o n c S la b P r o p s C o n c S la b P r o p

N o n C o m p D e c k P r o p s N o n C o m p D e c k P r o p

H o r iz B r a c e s H o r i z B r a c e

M a t F n d P r o p P o ly s M a t P r o p P o ly

P o in t s

P o in t

P i l e C o n f i g u r a t i o n s P i le C o n f ig u r a t io n

P i l e s P i le

S t e e lM a t e r i a ls S t e e lM a t e r ia l

C o n c r e t e M a t e r i a ls C o n c r e t e M a t e r ia l

O t h e r M a t e r i a l s O t h e r M a t e r i a l

I C o n c r e t e C r i t e r ia

I S t e e lC r i t e r ia

Page 274: RAM Data Access Developers Guide

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 use 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 VB/VBA Type long long double double float single bstr string dw Long struct 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 Enum BOOL 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

Page 275: RAM Data Access Developers Guide

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

Page 276: RAM Data Access Developers Guide

• 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

Page 277: RAM Data Access Developers Guide

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.

Page 278: RAM Data Access Developers Guide

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. Don’t forget to call IDBIO1::CloseDatabase when done with the model.

Strings and COM COM passes strings in the form of BSTR’s. 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.

Page 279: RAM Data Access Developers Guide

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.

Page 280: RAM Data Access Developers Guide

The following method is used to get the entire rebar table for the concrete column program. Notice that an array of SREIN_PROP’s 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;

Page 281: RAM Data Access Developers Guide

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();

Page 282: RAM Data Access Developers Guide

} 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 developer’s studio. Follow through the steps listed in “The Basics” to see how they are implemented in a Console App.

Page 283: RAM Data Access Developers Guide

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

}

Page 284: RAM Data Access Developers Guide

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 function’s 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.

Page 285: RAM Data Access Developers Guide

Appendix E – Additional Load Case Information Load Case Type labels:

Label Meaning RAMUSER Gravity load modeled in RAM Modeler

Nodal load modeled in RAM Modeler where: RAMUSERNODAL_type

type W for wind, S for seismic, O for other, V for virtual

W_User User defined story force of type Wind Generated Wind force where: code is the code selected to generate the forces

Wind_code_direction

direction indicates the direction of the force (X or Y)

EQ_User User defined story force of type Earthquake (seismic) Generated Earthquake force where: code is the code selected to generate the forces dir indicates the direction of the force (X or Y)

EQ_code_dir_eccentricity

eccentricity +E = positive eccentricity -E = negative eccentricity

Dynamic Load Case using Response Sprectra code is the code selected to generate the forces

if code is not shown this indicates a general CQC solution.

Dyn_code_CQC_direction

dir indicates the direction of the force (X or Y) Eigen Solution Dynamic Load Case using Eigen Solutions. Center of Rigidity Center of Rigidity Virtual Load Case_User Virtual Load Case to be used in RAM Drift Control.

Load Case Types (as integers):

Value Load Type RamSteelLoadType = 0 Gravity Load case modeled in RAM Modeler NodalLateralLoadType =1 Nodal Lateral load modeled in RAM Modeler WindLoadType = 2 Wind defined in RAM Frame SeismicLoadType = 3 Seismic defined in RAM Frame

Page 286: RAM Data Access Developers Guide

DynamicLoadType = 4 Dynamic defined in RAM Frame OtherLoadType = 5 “Other” defined in RAM Frame

Load Case Sub-Load Types (as integers):

Load Type 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 Positive Roof Live Load (can be reducible or snow)

RamSteelLoadType

NEG_ROOF_LL 0x0040 Negative Roof Live Load (can be reducible or snow)

NodalLateralLoadType WIND_NODAL2 SEISMIC_NODAL2 OTHER_NODAL2 VIRTUAL_NODAL2

0 1 2 3

4 types of nodal lateral loads

WindLoadType SeismicLoadType DynamicLoadType EIGEN_SOLUTION2

RESPONSE_SPECTRA2 RESPONSE_SPECTRA_UBC972 RESPONSE_SPECTRA_IBC20002

0 1 2 3

4 types of Dynamic loads

OtherLoadType USER_DEFINED_STORY2 CENTER_RIGIDITY2 VIRTUAL_LOADCASE2

0 1 2

3 types of “Other” loads.