ram dataaccess developers guide

451
 RAM DataAccess Developer’ s Guide Release 14.07.00 February 2015 Bentley Systems 2744 Loker Avenue West, Suite 103 Carlsbad, CA 92010 Telephone: (760) 431-3610 Toll Free: (800) 726-7789 Fax: (760) 431-5214

Upload: mike-junior

Post on 10-Jan-2016

30 views

Category:

Documents


6 download

DESCRIPTION

This is a manual about how to use RAM DataAccess. RAM DataAccess is used to interact with RAM Structural System's internal programming language.

TRANSCRIPT

Page 1: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 1/450

 

RAM DataAccess

Developer’s Guide 

Release 14.07.00February 2015

Bentley Systems2744 Loker Avenue West, Suite 103

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

Fax: (760) 431-5214

Page 2: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 2/450

TRADEMARK NOTICEBentley and the "B" Bentley logo are registered or non-registered trademarks of Bentley Systems, Incorporated.

RAM SBeam, RAM Structural System, RAM Manager, RAM Modeler, RAM Steel, RAM Frame, RAM Foundation and RAM Concreteare registered or non-registered trademarks of Bentley Systems, Incorporated.

 All other marks are the property of their respective owners.

COPYRIGHT NOTICECopyright (c) 2015 Bentley Systems, Incorporated. All Rights Reserved.Including software, file formats, and audiovisual displays; may only be used pursuant to applicable software license agreement;contains confidential and proprietary information of Bentley Systems, Incorporated and/or third parties which is protected bycopyright and trade secret law and may not be provided or otherwise made available without proper authorization.

ACKNOWLEDGEMENTSObjective Grid C++ Library Copyright © Rogue Wave Software, Inc.Virtual Print Engine (VPE) Copyright © IDEAL Software

CM2 MeshTools © Computing Objects SARLMath Kernel Library (MKL) © Intel CorporationThe Boost Graph Library (BGL) © Siek, J.G., Lee, L., and Lumsdaine, A.Ultimate Toolbox © Dundas Software Ltd.TurboDXF © Ideal EngineeringPortions Copyright © Microsoft CorporationIncludes Adobe(R) PDF Library technology. Portions Copyright (c) Adobe Systems, Inc.Clipper library © Angus Johnsonzlib software © Jean-loup Gailly and Mark Adler.Portions Copyright © GrapeCity, Inc. 1987-2011. All Rights Reserved.

RESTRICTED RIGHTS LEGENDSIf this software is acquired for or on behalf of the United States of America, its agencies and/or instrumentalities ("U.S. Government"),it is provided with restricted rights. This software and accompanying documentation are "commercial computer software" and"commercial computer software documentation," respectively, pursuant to 48 C.F.R. 12.212 and 227.7202, and "restricted computersoftware" pursuant to 48 C.F.R. 52.227-19(a), as applicable. Use, modification, reproduction, release, performance, display ordisclosure of this software and accompanying documentation by the U.S. Government are subject to restrictions as set forth in this Agreement and pursuant to 48 C.F.R. 12.212, 52.227-19, 227.7202, and 1852.227-86, as applicable. Contractor/Manufacturer isBentley Systems, Incorporated, 685 Stockton Drive, Exton, PA 19341-0678.

Unpublished - rights reserved under the Copyright Laws of the United States and International treaties.

Page 3: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 3/450

DISCLAIMER

The software and related documentation, including this documentation, are protected by both United States copyright law andinternational treaty provisions. Any unauthorized copying or reproduction is strictly prohibited and subject to civil and criminalpenalties. Please refer to the License Agreement for authorization to make a backup copy of the software. You may not sell thissoftware or documentation or give copies of them away to anyone else.

Except as expressly warranted in the License Agreement, Bentley Systems, Incorporated disclaims all warranties, expressed orimplied, including but not limited to implied warranties of merchantability and fitness for a particular purpose, with respect to thesoftware, the accompanying written materials, and any accompanying hardware. All results should be verified to the user’ssatisfaction. The contents of these written materials may include technical inaccuracies or typographical errors and may be revisedwithout prior notice.

Page 4: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 4/450

Table of Contents 

Introduction .......................................................................................................................................................................................... 10 

Basic Concepts of the RAM Object Model ........................................................................................................................................... 10 

General Information ............................................................................................................................................................................. 12 

Creating and Updating a Model ........................................................................................................................................................... 14 

Reading an Existing Model .................................................................................................................................................................. 18 

The Object Model Interfaces ................................................................................................................................................................ 19 

DAArray ............................................................................................................................................................................................ 19 

IAnalyticalResult ............................................................................................................................................................................... 20 

IBasePlate ........................................................................................................................................................................................ 21 

IBeam ............................................................................................................................................................................................... 21 

IBeams ............................................................................................................................................................................................. 25 

IColumn ............................................................................................................................................................................................ 26 

IColumns .......................................................................................................................................................................................... 30 

IColumnStack ................................................................................................................................................................................... 32 

ICompDeckProp ............................................................................................................................................................................... 32 

ICompDeckProps ............................................................................................................................................................................. 33 

IConcreteCriteria .............................................................................................................................................................................. 35 

IConcreteMaterial ............................................................................................................................................................................. 35 

IConcSectProp ................................................................................................................................................................................. 36 

IConcSectProps ............................................................................................................................................................................... 37 

IConcShearWallCriteria .................................................................................................................................................................... 40 

IConcSlabProp ................................................................................................................................................................................. 40 

IConcSlabProps ............................................................................................................................................................................... 41 

IContinuousFnd ................................................................................................................................................................................ 42 

IContinuousFnds .............................................................................................................................................................................. 44 

ICouplingBeam ................................................................................................................................................................................. 45 

ICouplingBeamCriteria ..................................................................................................................................................................... 46 

ICouplingBeams ............................................................................................................................................................................... 47 

IDB ................................................................................................................................................................................................... 49 

IDBRecord ........................................................................................................................................................................................ 49 

IDBRecords ...................................................................................................................................................................................... 49 

IDBTable .......................................................................................................................................................................................... 49 

IDBTables ........................................................................................................................................................................................ 49 

IDeck ................................................................................................................................................................................................ 49 

IDecks .............................................................................................................................................................................................. 51 

IDeckTableEntries ............................................................................................................................................................................ 53 

IDeckTableEntry ............................................................................................................................................................................... 53 

Page 5: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 5/450

IDiaphragm ....................................................................................................................................................................................... 54 

IDiaphragms ..................................................................................................................................................................................... 55 

IField ................................................................................................................................................................................................ 56 

IFields............................................................................................................................................................................................... 56 

IFinalWallOpening ............................................................................................................................................................................ 57 

IFinalWallOpenings .......................................................................................................................................................................... 57 

IFloorType ........................................................................................................................................................................................ 58 

IFloorTypes ...................................................................................................................................................................................... 62 

IFrameAnalysisCriteria ..................................................................................................................................................................... 64 

IGridSystem ..................................................................................................................................................................................... 64 

IGridSystems .................................................................................................................................................................................... 65 

IHorizBrace ...................................................................................................................................................................................... 66 

IHorizBraces ..................................................................................................................................................................................... 69 

IIsolatedFnd ..................................................................................................................................................................................... 70 

IIsolatedFnds .................................................................................................................................................................................... 72 

ILayoutBeam .................................................................................................................................................................................... 73 

ILayoutBeams .................................................................................................................................................................................. 78 

ILayoutColumn ................................................................................................................................................................................. 80 

ILayoutColumns ............................................................................................................................................................................... 83 

ILayoutContinuousFnd ..................................................................................................................................................................... 86 

ILayoutContinuousFnds ................................................................................................................................................................... 88 

ILayoutHorizBrace ............................................................................................................................................................................ 89 

ILayoutHorizBraces .......................................................................................................................................................................... 91 

ILayoutIsolatedFnd ........................................................................................................................................................................... 93 

ILayoutIsolatedFnds ......................................................................................................................................................................... 95 

ILayoutMatFndPerim ........................................................................................................................................................................ 97 

ILayoutMatFndPropPoly ................................................................................................................................................................... 97 

ILayoutWall ...................................................................................................................................................................................... 97 ILayoutWalls ..................................................................................................................................................................................... 99 

ILineLoadPropertySet..................................................................................................................................................................... 101 

ILineLoadPropertySets ................................................................................................................................................................... 101 

ILineLoadSet .................................................................................................................................................................................. 103 

ILineLoadSets ................................................................................................................................................................................ 103 

ILoadCase ...................................................................................................................................................................................... 104 

ILoadCases .................................................................................................................................................................................... 106 

ILoadCombination .......................................................................................................................................................................... 107 

ILoadCombinationParam ........................................ ............................................. ........................................... ................................ 107 

ILoadCombinationParams .............................................................................................................................................................. 108 

Page 6: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 6/450

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

ILoadCombinationTerm .................................................................................................................................................................. 111 

ILoadCombinationTerms ................................................................................................................................................................ 111 

ILoadComboInternal ....................................................................................................................................................................... 113 

ILoadComboParamCntrl1 ....................................... ............................................. ............................................ ............................... 113 

ILoadComboParamCntrl3 ....................................... ............................................. ............................................ ............................... 113 

ILoadComboParamsCntrl1 ............................................................................................................................................................. 114 

ILoadComboParamsCntrl3 ............................................................................................................................................................. 115 

IMatFndPerim ................................................................................................................................................................................. 116 

IMatFndPropPoly ........................................................................................................................................................................... 116 

IMemberForce ................................................................................................................................................................................ 116 

IMemberForces .............................................................................................................................................................................. 117 

IModel ............................................................................................................................................................................................ 118 

IModelGrid ...................................................................................................................................................................................... 132 

IModelGrids .................................................................................................................................................................................... 133 

INode .............................................................................................................................................................................................. 134 

INodes ............................................................................................................................................................................................ 135 

INonCompDeckProp ...................................................................................................................................................................... 135 INonCompDeckProps..................................................................................................................................................................... 136 

IOtherMaterial ................................................................................................................................................................................ 137 

IOtherSectProp .............................................................................................................................................................................. 137 

IOtherSectProps ............................................................................................................................................................................. 138 

IPile ................................................................................................................................................................................................ 140 

IPileConfiguration ........................................................................................................................................................................... 140 

IPileConfigurations ......................................................................................................................................................................... 141 

IPiles .............................................................................................................................................................................................. 142 

IPoint .............................................................................................................................................................................................. 143 

IPointLoad ...................................................................................................................................................................................... 144 IPointLoadPropertySet ................................................................................................................................................................... 145 

IPointLoadPropertySets ................................................................................................................................................................. 145 

IPointLoads .................................................................................................................................................................................... 146 

IPointLoadSet ................................................................................................................................................................................. 147 

IPointLoadSets ............................................................................................................................................................................... 147 

IPoints ............................................................................................................................................................................................ 148 

IProperties ...................................................................................................................................................................................... 150 

IProperty ......................................................................................................................................................................................... 151 

IPropertyDefinition .......................................................................................................................................................................... 153 

IPropertyDefinitions ........................................................................................................................................................................ 155 

Page 7: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 7/450

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

IRawWallOpening........................................................................................................................................................................... 159 

IRawWallOpenings ......................................................................................................................................................................... 159 

IRawWallSectionCut ....................................... ............................................. ............................................. ...................................... 161 

IRawWallSectionCuts ..................................................................................................................................................................... 165 

IRBSPropertySet ............................................................................................................................................................................ 167 

IReactionNode ............................................................................................................................................................................... 167 

IReactionNodes .............................................................................................................................................................................. 168 

IRecord ........................................................................................................................................................................................... 169 

IRecords ......................................................................................................................................................................................... 169 

IShell .............................................................................................................................................................................................. 170 

IShells ............................................................................................................................................................................................ 171 

ISlabEdge ....................................................................................................................................................................................... 171 

ISlabEdges ..................................................................................................................................................................................... 172 

ISlabOpening ................................................................................................................................................................................. 173 

ISlabOpenings ................................................................................................................................................................................ 174 

ISlabPerimeter ............................................................................................................................................................................... 175 

ISlabPerimeters .............................................................................................................................................................................. 175 ISnowLoadPropertySet .................................................................................................................................................................. 176 

ISnowLoadPropertySets ......................................... ............................................. ........................................... ................................ 176 

ISnowLoadSet ................................................................................................................................................................................ 178 

ISnowLoadSets .............................................................................................................................................................................. 179 

ISteelBeamDesignResult ............................................................................................................................................................... 180 

ISteelCriteria .................................................................................................................................................................................. 180 

ISteelMaterial ................................................................................................................................................................................. 182 

IStories ........................................................................................................................................................................................... 183 

IStory .............................................................................................................................................................................................. 184 

IStress ............................................................................................................................................................................................ 188 IStresses ........................................................................................................................................................................................ 189 

IStringValue .................................................................................................................................................................................... 189 

ISurfaceLoadPropertySet ............................................................................................................................................................... 190 

ISurfaceLoadPropertySets ............................................................................................................................................................. 190 

ISurfaceLoadSet ............................................................................................................................................................................ 191 

ISurfaceLoadSets ........................................................................................................................................................................... 192 

ITable ............................................................................................................................................................................................. 193 

ITrialGroup ..................................................................................................................................................................................... 194 

ITrialGroups ................................................................................................................................................................................... 195 

IVerticalBrace ................................................................................................................................................................................. 195 

Page 8: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 8/450

IVerticalBraces ............................................................................................................................................................................... 199 

IWall ............................................................................................................................................................................................... 201 

IWallBarLayout ............................................................................................................................................................................... 205 

IWallBarLayouts ............................................................................................................................................................................. 206 

IWallBarPattern .............................................................................................................................................................................. 207 

IWallBarPatterns ............................................................................................................................................................................ 208 

IWallBarPlacement ......................................................................................................................................................................... 209 

IWallBarPlacements ....................................................................................................................................................................... 210 

IWallBarSet .................................................................................................................................................................................... 211 

IWallBarSets .................................................................................................................................................................................. 212 

IWallCodeMessage ........................................................................................................................................................................ 213 

IWallCodeMessages ...................................................................................................................................................................... 213 

IWallCodeResult ............................................................................................................................................................................ 215 

IWallCodeResults ........................................................................................................................................................................... 215 

IWallDesignGroup .......................................................................................................................................................................... 216 

IWallDesignGroups ........................................................................................................................................................................ 219 

IWallFailedMember ........................................................................................................................................................................ 220 

IWallFailedMembers ....................................... ............................................. ............................................. ...................................... 221 IWallFE ........................................................................................................................................................................................... 222 

IWallFEs ......................................................................................................................................................................................... 223 

IWallLimitCheck ............................................................................................................................................................................. 224 

IWallLimitChecks ............................................................................................................................................................................ 224 

IWallPanel ...................................................................................................................................................................................... 226 

IWallPanelReinfZone...................................................................................................................................................................... 228 

IWallPanelReinfZones .................................................................................................................................................................... 229 

IWallPanels .................................................................................................................................................................................... 230 

IWalls ............................................................................................................................................................................................. 231 

IWallSectionDsnCut ....................................................................................................................................................................... 232 IWallSectionDsnCutForceSet ......................................................................................................................................................... 235 

IWallSectionDsnCutForceSets ....................................................................................................................................................... 235 

IWallSectionDsnCuts...................................................................................................................................................................... 236 

IWebOpening ................................................................................................................................................................................. 239 

IWebOpenings ............................................................................................................................................................................... 239 

WallBarPatternTemplate ................................................................................................................................................................ 241 

WallBarPatternTemplates .............................................................................................................................................................. 242 

Original DataAccess Interfaces ......................................... ............................................. ........................................... ......................... 244 

IConcAnalysis1 .............................................................................................................................................................................. 244 

IConcAnalysisState1 ...................................................................................................................................................................... 246 

Page 9: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 9/450

IConcBeamState1 .......................................................................................................................................................................... 252 

IConcBeamState2 .......................................................................................................................................................................... 262 

IConcCntlrCommon1 ...................................................................................................................................................................... 272 

IConcColModState1 ....................................................................................................................................................................... 276 

IConcColModState2 ....................................................................................................................................................................... 282 

IConcept ......................................................................................................................................................................................... 283 

IDBIO1 ........................................................................................................................................................................................... 286 

IForces1 ......................................................................................................................................................................................... 288 

IForces2 ......................................................................................................................................................................................... 297 

IGravityLoads1 ............................................................................................................................................................................... 303 

IGravitySteelDesign1...................................................................................................................................................................... 321 

ILoading1 ....................................................................................................................................................................................... 324 

IMemberData1 ............................................................................................................................................................................... 329 

IMemberData2 ............................................................................................................................................................................... 341 

IModelData1 ................................................................................................................................................................................... 346 

IModelData2 ................................................................................................................................................................................... 352 

IModelGeometry1 ........................................................................................................................................................................... 361 

IModelGeometry2 ........................................................................................................................................................................... 373 IModelStatus1 ................................................................................................................................................................................ 377 

IRamDataAccess2.......................................................................................................................................................................... 379 

ISteelColumnState ......................................................................................................................................................................... 379 

ISteelColumnState2 ....................................................................................................................................................................... 383 

RamDataAccess1........................................................................................................................................................................... 384 

Common Structure Definitions ........................................................................................................................................................... 385 

Common Enumerator Definitions ....................................................................................................................................................... 403 

 Appendix A - RAM Object Model Diagram ....................................... ............................................. ............................................ ......... 436 

 Appendix B – Using DataAccess from VB/VBA ................................................................................................................................. 437 

 Appendix C – Using RAM DataAccess in a Visual C++ Project ............................................ ............................................. ................ 441  Appendix D - Using RAMDataAccess in C++ with Smart Pointers ..................................................................... ............................... 446 

 Appendix E – Additional Load Case Information ............................................. ............................................. ...................................... 448 

 Appendix F – Shear wall interface constants ..................................................................................................................................... 450 

Page 10: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 10/450

IntroductionRAM DataAccess was first introduced several years ago as a new way to access data in a RAM Structural System model. Itreplaced 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 modifythe RAM SS model via DataAccess. At that point, we decided that the existing interfaces did not lend themselves well to this newrequired functionality and a new set of interfaces, collectively termed the “RAM Object Model” were designed with theserequirements in mind. These new interfaces, which allow data to not only be read, but also updated, added and deleted, have beenincorporated into our existing RAM DataAccess COM component, although they can for the most part be used independently of thepre-existing interfaces. The RAM Object Model interfaces have been designed with the framework of the RAM Structural System inmind to help ensure that a valid model is created (see the first section under Basic Concepts below). The interfaces have also beenarchitected 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 thesame functionality can be achieved in either set of interfaces, it is preferred to use the RAM Object Model interfaces. Eventually allfunctionality will be provided via interfaces that are built on the RAM Object Model architecture and the original interfaces willgradually become obsolete.

Basic Concepts of the RAM Object ModelIn designing the RAM Object Model interfaces, both the framework of the RAM Structural System and future extensibility of theobject model were taken into consideration.

RAM Structura l System Model

The RAM Structural System makes use of the concept of a typical floor, or f loor type. Each floor type can be used to define multiplestories in a model such that there is often a one-to-many correspondence between floor types and stories. This modeling conceptposes some restrictions on how a model may be modified outside of the RAM Structural System. For example, although membersizes 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 basedon the same floor type must have the same basic geometry. (Note that vertical braces are an exception, since they are added to thestory, not to the floor type.)

RAM Object Model Arc h i tecture

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). Thecollection interface allows for the addition or deletion of the type of entity associated with the interface (although there are some

Page 11: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 11/450

exceptions as explained below). For example, to add or delete floor types, use the IFloorTypes interface. The collection interfacecan be used to iterate through a set of entities and to filter the collection to obtain a subset of that type of entity.

For each member that is modeled through a floor type in the RAM Structural System, but which may also be altered on a story basis(beams, columns, etc), there are two corresponding interfaces, one for the floor type, and one for the story. Each ILayoutMember 1 interface, for example, corresponds to a member in the floor type, which may correspond to zero, one or more actual members,depending on how many stories are associated with the floor type. (Note that floor types are sometimes referred to as “layout types”

in the RAM Structural System, so these interfaces 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 theIMember  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 thestories associated with that floor type. The documentation for each interface indicates which properties can be set from thatinterface.

 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 needto 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 12: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 12/450

General Information

Consistency wi th RAM Structura l System

The version of RAM DataAccess is consistent with the version of RAM Sructural System installed on the computer. It is possible toencounter situations where the user writes a program in one version and then shares it with another user who is running an earlierversion that does not support some of the methods used in the program. You may want to call the GetVersion method in theIRamDataAccess2 interface at the beginning of the program and only allow the program to continue if a certain version ofRAMDataAccessl or later is available.

In general, RAM DataAccess will return information that is consistent with the state of RAM Structural System. In order for a model’sresults to be accessible, it needs to be run/analyzed in RAM Structural System and saved first. You could use DataAccess to checkthe model status to ensure this if desired. Also, results are consistent with the various criteria in RAM Structural System. Forexample, if member self-weight is included in the RAM Manager critieria, then the dead load in force methods will include self-weightunless the method makes it an option.

Defin i t ions and Naming Con vent ion

RAM International utilizes Hungarian Notation to make it easy to identify data and variable types. Each variable or data type isprefixed with one or more letters that identify its type. The following table l ists the most common prefixes and their meanings. (Noteto 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 MeaningI  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 pointerThis is how we pass strings through a COM interface. VB/VBA

l or n long, a 32-bit signed integerd double, a 64-bit double precision numberf float, a 32-bit single precision numbere an enumerated type. Technically a long.dw DWORD, a 32-bit unsigned integer.p a pointer VB/VBAa an arraypp Pointer to a pointer for an array.

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

Page 13: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 13/450

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 notchanged or redimentioned in any way. The memory must be released on the calling function side using CoTaskMemFree.

This feature is incompatible with VB/VBA and all Automation programming tools.

Prefixes are often combined to provide more information about a variable. For instance, the prefix “pd” would refer to, not just a pointer, but apointer 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. Notethat 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 successfullyE_FAIL The method did not complete successfullyE_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_OKwill result in an error that must be handled in an error_handler or catch statement respectively. C++ users can change this defaultbehavior 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 codethat 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 ifyou 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 examplecode 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 14: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 14/450

 

A Note about th is Docum entat ion

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

Creating and Updating a Model

Opening a Model

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

Start ing 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 arestored 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 whichdesign 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 nodefaults 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 typ e

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 representsan empty collection. Use the Add() function to add a new floor type. Once you have the resulting IFloorType interface, you canimmediately generate a story associated with that floor type, or simply begin adding members. You can create one or more storiesfrom the same floor type before or after adding members. However, until you create at least one story from the floor type, themembers on that floor type are not part of the 3D model.

Defin ing gr id systems

Page 15: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 15/450

Grid systems can be defined once and assigned to one or more floor types. A floor type can have one or more grid systemsassigned 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 collectionof 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, callGetGridSystemIDArray() to get the collection of grid system unique IDs that are assigned to that floor type (it may be empty). Fromthe resulting IDAArray interface, add the unique ID of the grid system to be assigned to this floor type. The new grid systemassignment is not completed until the IDAArray interface is passed back to the f loor type using the SetGridSystemIDArray() functioncall.

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, getthe IStories interface, which is the collection of stories for the model. Use the Add() function to add a new story.

Add ing co lumnsColumns 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 foreach story associated with that floor type. Using the IFloorType interface for the floor type to which you want to add columns, get theILayoutColumns interface, which represents the collection of columns on that floor type. Use the Add() function to add a newcolumn. You can use the resulting ILayoutColumn interface to set properties for the newly added column(s).

Adding beams, wal ls or hor izonta l 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, onewill be added to the 3D model for each story associated with that floor type. Using the IFloorType interface for the floor type to whichyou 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 canuse the resulting ILayoutBeam, ILayoutWall or  ILayoutHorizBrace interface to set properties for the newly added member(s).

Adding vert ica l braces

Since vertical braces span 2 or more stories, they are not added to floor types. (And consequently, they do not have acorresponding 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 adda new brace, passing in the IDs of the stories into which the brace frames. You can use the resulting IVerticalBrace interface to setproperties for the newly added brace. An alternative to getting the entire list of vertical braces for the model is to get theIVerticalBraces 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.

Page 16: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 16/450

 

Defin ing m ater ia l propert ies fo r a m ember

Eventually, the RAM Structural System will allow material properties to be defined separately from any member and assigned to oneor 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 addmaterial properties to their corresponding collection interfaces (ISteelMaterials, IConcreteMaterials, IOtherMaterials). Rather, thereis 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 materialproperty ID (lMaterialID). If the member is steel, call GetSteelMaterial() from the IModel interface using the lMaterialID value of thecorresponding 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 materialdefinition.

Assign ing sizes to stee l 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 setfor the strSectionLabel  must exactly match the name of the size listed in the corresponding design table. Custom tables can becreated by the engineer, but these must follow the format of the tables provided by RAM. The RAM Structural System will look forthe sizes in the design tables specified in the IModel interface. Be sure to set the name of the Master Steel Table as well as thespecific tables for steel beams and steel columns. If needed, also be sure to set the names of the tables for castellated and cellularbeam sections.

Assign ing sect ion prop ert ies to concrete members

To assign section properties to a concrete member, you must first define a concrete section property. From the IModel interface, callGetConcreteSectionProps() 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 validsection property.) The resulting IConcSectProp interface can be used to set additional properties for the section. To assign thesection property to a concrete member, either set the strSectionLabel property for the member to the strLabel  property of theIConcSectProp, 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 materialof the beam and when the model is run in the RAM Structural System, an error message will be issued for the member.

Page 17: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 17/450

 Also note that concrete section properties are defined by the type of member they can be assigned to: beam, column or brace. Seethe 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 Str ucturalSystem and they can include members of any type of material which are not currently represented in the RAM Structural System. Toassign 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 propertiesdefined in the model. Use the Add() function to define a new ‘Other’ section property. The resulting IOtherSectProp interface can beused to set additional properties for the section. To assign the section property to an ‘Other’ member, either set the strSectionLabelproperty for the member to the strLabel  property of the IOtherSectProp, or set the lSectionID property of the member to the uniqueID 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 whenthe 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. Seethe documentation for the IOtherSectProp interface for more information.

Updat ing an exist ing model

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

Updat ing a colum n

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 functionsassociated 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, youcan 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 foreach story that uses the floor type). Loop through the IColumn interfaces to get the properties for the columns at each story.

Updating beams , wal ls, horizontal braces

See section above on updating a column.

Page 18: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 18/450

 

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 ModelTo read in an existing RAM Structural System model, call GetStories() from the IModel interface. Use the GetCount() function in theIStories interface to determine the number of stories in the model, then use the GetAt() function to get the IStory interface for eachstory.

From the IStory interface, call GetColumns() to get an IColumns collection interface for the columns on that story. Use theGetCount() 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.

Gett ing sect ion pro pert ies for con crete 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 asproperties 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 areavailable as properties through the IOtherSectProp interface.

Gett ing mater ial propert ies for a mem ber

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

Page 19: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 19/450

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

DAArray

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

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

 Add a new item to the end of the DA array.

Parameters pvrtItem Item being added to the DA arrayplRetval Return variable. 0 if successful.

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

Get at a DA array item by index number.

Parameters lIndex Index into the arraypvrtItem Item value in the array at lIndex

GetSize ([out] long plSize) 

Get the size of the array.

Parameters plSize Number of entries in the DA array

Remove ([in] pvrtItem) 

Removes a item from the DA array by item value.

Parameters pvrtItem Item in the DA array

Page 20: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 20/450

 RemoveAt ([in] lIndex) 

Removes an item from the DA array by index number.

Parameters lIndex Index into the array for the item being removed

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

 Add a new DAArray interface.

Parameters lIndex Index into the DA arraypvrtItem Item value at index

SetSize ([in] lSize) 

Sets the size of the DA Array.

Parameters lSize Number of entries in the DA array

IAnalyticalResult

This interface represents the analytical results for an individual member.

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

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

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 21: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 21/450

IBasePlate

This interface represents a single base plate.

PropertiesType Property Get Set Description

double dAngle X The angle of the dLength axis with the X=0 Axis, counterclockwise.

double dLength X Length of base plate (in direction of column major axis)

double dThickness X Thickness of base platedouble dWidth X Width of base plate

long lColumnID X Unique ID of the column associated with this base plate

IBeam

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

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

Gets the analytical result interface.

Parameters 

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

Gets the indicated coordinates for the beam.

Parameters eBeamCoordLoc Whether to get the end coordinates or the support coordinatespStartPoint SCoordinate corresponding to the start of the beampEndPoint SCoordinate corresponding to the end of the beamplRetval 0 if successful

-1 if coordinates cannot be retrieved

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

Gets rigid link information at the end of a beam.

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

Page 22: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 22/450

 Parameters pPoint Coordinates of the end the rigid link at the supporting member for end of the beam. Coordinates match end

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

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

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

Parameters strCustomProps 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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

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

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

Parameters 

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

Gets rigid link information at the start of a beam.

Parameters pPoint Coordinates of the end the rigid link at the supporting member for start of the beam. Coordinates match start

coordinates if no rigid link exists

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

Page 23: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 23/450

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

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

Gets the steel beam design results interface.

Parameters 

PropertiesNote 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

BOOL bComposite X If TRUE, beam is composite. If FALSE, beam is non-composite.

BOOL bMajAxisBendFixedEnd X X Major axis bending release at end of beam (j-end).

BOOL bMajAxisBendFixStart X X Major axis bending release at start of beam (i-end).

BOOL bMinAxisBendFixedEnd X X Minor axis bending release at end of beam (j-end).

BOOL bMinAxisBendFixedStart X X Minor axis bending release at start of beam (i-end).BOOL bTorFixedEnd X X Torsion release at end of beam (j-end).

BOOL bTorFixedStart X X Torsion release at start of beam (i-end).

BOOL bUseRBS X X True if the user has indicated to use the reduced beam on this beam

double dCamber X X Camber of the beam

double dEndCantilever X Length of cantilever at end of beam (j-end)

double dFlangeOverhangLeft X Left flange length beyond beam’s web thickness 

double dFlangeOverhangRight X Right flange length beyond beam’s web thickness 

double dFlangeThickBot X Thickness of bottom flange of beam

double dFlangeThickLeft X Thickness of left flange beyond beam’s web thickness 

double dFlangeThickRight X Thickness of right flange beyond beam’s web thickness 

double dFlangeThickTop X Thickness of top flange of beam

double dFlangeWidthBot X Width of bottom flangedouble dFlangeWidthTop X Width of top flange

double dStartCantilever X Length of cantilever at start of beam (i-end)

double dStudDiameter X X Stud diameter

double dStudLength X X Stud length

double dStudSegment1Length X X Length of first stud segment

double dStudSegment2Length X X Length of second stud segment

double dStudSegment3Length X X Length of third stud segment

double dStudSegment4Length X X Length of fourth stud segment

double dStudSegment5Length X X Length of fifth stud segment

double dStudTensileStrength X X Tensile strength of stud

double dUnbracedLengthAxialLX X X Unbraced axial length in the major axis

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

Page 24: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 24/450

Type Property Get Set Description

double dUnbracedLengthAxialLY X X Unbraced axial length in the minor axis

double dUnbracedLengthFlexLY X X Unbraced length for lateral torsional buckling

double dWebDepth X Top or single web depth

double dWebDepthBot X Bottom we depth for beams made from different top and bottom sections

double dWebWidth X Top or single web width

double dWebWidthBot X Bottom web width for beams made from different top and bottom sections

EFRAMETYPE eFramingType X Whether member is lateral or gravity

EBeamConnectionType eLeftConnectionType X X Connection type at the left support of beamEMATERIALTYPES eMaterial X X Material type of beam. Valid options for beams are ESteelMat, ESteelJoistMat,ESmartbeamBeamMat, EConcreteMat, or EOtherMat.

EJoistType eMemberJoistType X Type of joist (if beam material type is ESteelJoistMat)

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

EBeamConnectionType eRightConnectionType X X Type of connection on the right end

ESeismicProvFrameType eSeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame, etc)

ECONC_OTHER_SEC eShape X Only valid for Concrete or Other material. Returns shape of cross section

long eSharingLoadType X X Returns sharing load type:-1:  None0:  Entirely two-way1:  Entirely one-way

2:  One-way and two-way long lBeamLineNumber X X Beam line that beam is part of (applicable only if this is a concrete beam).

long lFlangeBracing X X Flange bracing flags. Sum the appropriate flags to determine the appropriate value for thesettings.0 – All global1 – Override global2 – Top flange braced4 – Bot flange braced 

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

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

Long lLeftConnectionID X X Left end connection UID

long lMaterialID X Unique ID of material properties for this beam. Must correspond to type of material. Seesection Getting material properties for a member for more information.

long lRightConnectionID X X Right end connection ID

long lSectionID X X Unique ID of concrete or ‘Other’ section assigned to this beam. See Assigning sectionproperties to concrete members and Assigning section properties to ‘Other’ members formore information.

long lUID X Unique ID of beam.

Page 25: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 25/450

Type Property Get Set Description

long lUnbracedLength X X Unbraced length flags. Sum the appropriate flags to determine the appropriate value forthe settings.0 – All global1 – Override global UnbracedLengthAxialLX2 – Override global UnbracedLengthAxialLY4 – User defined UnbracedLengthAxialLX8 – User defined UnbracedLengthAxialLY32 – Override global UnbracedLengthFlexLY

128 – User defined UnbracedLengthFlexLYESeismicProvFrameType SeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame, etc)

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.

IBeams

This interface represents a collection of beams associated with a story. This collection can be used to read data for beams at a

story. To add or delete beams, use the ILayoutBeams interface associated with a floor type.

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

Filters the collection of beams based on given criteria.

Parameters eFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

Gets an interface for a specific beam by unique ID.

Parameters lUID The unique ID of the requested layout beamppIBeam Pointer to an IBeam interface that represents the requested beam, or NULL if no beam is found in the collection

with the given unique ID.

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

Page 26: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 26/450

 Gets an interface for a specific beam by index.

Parameters lIndex The index into the collection of the requested beamppIBeam Pointer to an IBeam interface that represents the requested beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of beams in the collection

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

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

Parameters strCustomProps 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 beused to read data for a column at a story. To change coordinates, use the ILayoutColumn interface.

GetEndCoordinates ([out] SCoordinate* pPoint1, [out] SCoordinate* pPoint2, [out, retval] long* plRetval)

Gets the end coordinates for the column.

Parameters pPoint1 SCoordinate of the column end. This is the top of standard columns and

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

top of hanging columns.

Page 27: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 27/450

plRetval 0 if successful-1 if coordinates cannot be retrieved

GetFinalSpliceSetting ([out, retval] long * eFinalSpliceSetting)

Determine if the column is spliced or not.

Parameters eFinalSpliceSetting 0 = No splice

1 = splice2 = temporary splice added by RAMSS because of change of property between stories. The temporary spliceoverrides the user defined value.

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

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

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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

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

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

Parameters pPoint Coordinates of end of the rigid link at the support. This is always at the bottom of standard columns and top of

hanging columns. Matches column end coordinates if there is no rigid link.plMemberID Unique ID of the member that supports the rigid link.

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

Page 28: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 28/450

 Sets rigid link end coordinates.

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

PropertiesNote 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

BOOL bAbsMajorAxisEccentricity X TRUE if eccentricity in major axis is absolute distance. FALSE if eccentricity is relativeto column’s centerline. 

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

BOOL bAtFoundation X Indicates if column is at foundation level

BOOL bBracedMajorAxisByMember X TRUE if column is braced in column local X direction by the slab or a beam (within userspecified angle)

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

BOOL bDoubleAngleLLBackToBack X X Double angle long leg back to back

BOOL bDoubleAngleSnugTightBolt X X Double angle using snug tight bolted intermediate connectors

BOOL bHanger X X Flag indicating whether the column is a hanging column or not.

BOOL bKinked X X Part of a nonlinear column stack

BOOL bMajAxisBendFixedBot X X Major axis bending release at bottom of column (j-end).

BOOL bMajAxisBendFixedTop X X Major axis bending release at top of column (i-end).

BOOL bMinAxisBendFixedBot X X Minor axis bending release at bottom of column (j-end).

BOOL bMinAxisBendFixedTop X X Minor axis bending release at top of column (i-end).

BOOL bSglAngleMirrored X X Single angle mirrored orientation

BOOL bSpliceLevel X X Indicates whether this column is spliced at this story. This is set in the story data in themodeler.

BOOL bTorFixedBot X X Torsion release at bottom of column (j-end).

BOOL bTorFixedTop X X Torsion release at top of column (i-end).

double dDblAngleBackSpacing X X Double angle back to back spacing

double dLength X X Column length

double dLoadSharingFactor X X Factor for load sharing

double dMajorAxisEccentricity X Eccentricity value for major axis

double dMinorAxisEccentricity X Eccentricity value for minor axis

double dOrientation X Orientation of column with respect to the global axis system.

double dStressRatio X X Stress ratio for column (used by RAM Frame)

double dUnbracedLengthAxialLX X X Axial unbraced length for buckling about the X axis

double dUnbracedLengthAxialLY X X Axial unbraced length for buckling about the Y axis

Page 29: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 29/450

Type Property Get Set Description

double dUnbracedLengthFlexLX X X Flexural unbraced length for lateral torsional buckling

double dUnbracedLengthFlexLY X X Flexural Unbraced length

double dUnityForSizeSelected X X Column interaction equation value

double dZBotOffset X X Bottom z offset from story below elevation (or foundation) for start of column. This ismade available because the offset at the bottom of the column (at the transitionbetween floortypes or at the foundation) may differ from that at the other stories thatuse the floortype. This is true if the member a column sits on is lowered or raised.

EAnalyzeFlag eAnalyzeFlag X X Whether column will be optimized or analyzed during design.

EBeamSpan  eBeamSpanAtSide1 X Beam type framing into this side of column

EBeamSpan  eBeamSpanAtSide2 X Beam type framing into this side of column

EBeamSpan  eBeamSpanAtSide3 X Beam type framing into this side of column

EBeamSpan  eBeamSpanAtSide4 X Beam type framing into this side of column

EFRAMETYPE eFramingType X Whether member is lateral or gravity

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

ESTEEL_SEC eOptimizeShape X X Shape for which steel column will be optimized

ESeismicProvFrameType  eSeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame, etc) As defined inRAM Frame

long eSharingLoadType X X Returns sharing load type:

-1:  None0:  Entirely two-way1:  Entirely one-way2:  One-way and two-way 

EUserOverride  eUserSpliceLevel X X Indicates user assigned splice setting for a given story. Default value is eUserNAwhich, means the splice from the story data should be used. A value of eUserYesmeans that the user has set a splice at this level. A value of eUserNo means that theuser has removed the splice at this level.

The user’s assignment overrides the story data setting except in cases where thephysical geometry necessitates a splice, such as changing material between levels.

single fMaxLLRed X X Maximum live load reduction

long lColumnAboveUID X Unique ID of column abovelong lDesignStatus X X Design status

long lDxfElevationNumber X X DXF Elevation number

long lFlangeBracing X X Flange bracing flags. Sum the appropriate flags to determine the appropriate value forthe settings.0 – All global1 – Override global UnbracedLengthAxialLX2 – Override global UnbracedLengthAxialLY4 – User defined UnbracedLengthAxialLX8 – User defined UnbracedLengthAxialLY

long lFrameNumber X X Frame number for lateral members. The frame number for lateral columns defaults tozero but can be set to a positive number. The frame number for gravity columns is

always -1.

Page 30: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 30/450

Type Property Get Set Description

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

long lLLRedCalc X X Calculated Live Load reduction factor

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.

long lMemberBelowUID X Unique ID of column below

long lSectionID X X Unique ID of concrete or ‘Other’ section assigned to this column. See Assigningsection properties to concrete members and Assigning section properties to ‘Other’members for more information.

long lStoryID X Get the ID of the story this column belongs to. Returns -1 in the event of an error.

long lUID X Unique ID of column

long lUnbracedLength X X Unbraced length flags. Sum the appropriate flags to determine the appropriate valuefor the settings.0 – All global1 – Override global UnbracedLengthAxialLX2 – Override global UnbracedLengthAxialLY4 – User defined UnbracedLengthAxialLX8 – User defined UnbracedLengthAxialLY32 – Override global UnbracedLengthFlexLY128 – User defined UnbracedLengthFlexLY

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

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

long lWallGroupNumber X X Wall group number

ESeismicProvFrameType SeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame, etc)

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.

BSTR strTrialSizeUsed1 X X User assigned trial size 1

BSTR strTrialSizeUsed2 X X User assigned trial size 2

BSTR strTrialSizeUsed3 X X User assigned trial size 3

IColumns

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

Filter ([in] EColumnFilter  eColumnFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of columns based on given criteria.

Page 31: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 31/450

 Parameters eColumnFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

Gets an interface for a specific column by unique ID.

Parameters lUID The unique ID of the requested columnppIColumn Pointer to an IColumn interface that represents the requested column, or NULL if no column is found in the

collection with the given unique ID.

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

Gets an interface for a specific column by index.

Parameters lIndex The index into the collection of the requested columnppIColumn Pointer to an IColumn interface that represents the requested column, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of columns in the collection

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

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

Parameters strCustomProps 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

Page 32: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 32/450

member type

IColumnStack

This interface represents a single column stack in the model.

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

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

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

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

PropertiesType Property Get Set Description

long lBasePlateColumnID X Unique ID of column at which the base plate occurs

BSTR strGridLabel X Get the grid intersection label at this column stack

ICompDeckProp

This interface represents a single composite deck property.

PropertiesType Property Get Set Description

BOOL bShored X X TRUE if the deck is shored.

double dEffectiveThickness X X The effective thickness of the deck.

double dElasticModulus X X The elastic modulus of the deck.double dFpc X X The concrete compression capacity (psi).

double dPoissonsRatio X X The Poisson’s Ratio of the deck. 

double dSelfWtDeck X X The self-weight of the steel deck (psf).

double dStudDiameter X X The stud diameter.

double dStudFu X X The ultimate strength of the stud (ksi).

double dStudLength X X The length of the studs.

double dThickAboveFlutes X X Concrete thickness above top of flutes.

double dUnitWeight X X The unit weight of the concrete (ksi).

long lUID X Unique ID of composite deck property.

Page 33: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 33/450

Type Property Get Set Description

BSTR strDeckType X X Type of deck. This name must match the name in the deck table andis limited to 19 characters.

BSTR strLabel X X Label for the composite deck property

ICompDeckProps

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

Add ([in] BSTR bstDeckType, [in] double dThickAboveFlutes, [in] double dStudLength, [out, retval] ICompDeckProp **ppICompDeckProp)

 Adds a new composite deck property.

Parameters 

bstDeckType Name of deck from deck tabledThickAboveFlutes Thickness of concrete above top of flutesdStudLength Length of the studppICompDeckProp Pointer to an ICompDeckProp interface that represents the newly added composite deck property.

Add2 ([in] BSTR bstLabel, [in] BSTR bstDeckType, [in] double dThickAboveFlutes, [in] double dStudLength, [out, retval]ICompDeckProp ** ppICompDeckProp)

 Adds a new composite deck property. 0.

Parameters bstLabel Name of the composite deck propertybstDeckType Name of deck from deck tabledThickAboveFlutes Thickness of concrete above top of flutesdStudLength Length of the studppICompDeckProp Pointer to an ICompDeckProp interface that represents the newly added composite deck property.

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

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

Parameters 

Page 34: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 34/450

lUID Unique ID of composite deck property to deleteplRetval 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 currentlyassigned to a deck polygon

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

Filters the collection of composite deck properties based on given criteria.

Parameters eCompDeckPropsFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested composite deck propertyppICompDeckProp Pointer to an ICompDeckProp interface that represents the requested composite deck property, or NULL if no

composite deck property is found in the collection with the given unique ID.

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

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

Parameters 

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

invalid.

GetCount ([out, retval] long* plCount)

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

Parameters 

Page 35: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 35/450

plCount Number of composite deck properties in the collection

IConcreteCriteria

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

PropertiesType Property Get Set Description

EDA_CONC_CODE eConcreteDesignCode  X X Design code for concrete beams and columns

EDA_CONC_CODE eFoundationDesignCode X X Design code for foundations

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

 

BSTR strReinforcementTable X X Rebar table to use when designing concrete beams and columns. File must have a .renextension. Maximum 32 characters allowed.

 

IConcreteMaterial

This interface represents a single concrete material property set. A member’s concrete material properties can be read and setthrough this interface.

PropertiesType Property Get Set Description

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

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

double dFct X X Concrete cracking stress capacity. Only used for ACI code design.(Only applicable for beams and columns)

double dFpc X X Concrete compressive strength (f’c). 

double dFyBoundary X X Yield strength of boundary steel reinforcing for concrete shear walls.

double dFyDistributed X X Yield strength of distributed steel reinforcing for concrete shear walls.

double dFyLongitudinal X X Yield strength of longitudinal steel reinforcing for concrete columns,beams, horizontal braces and foundations.

double dFyTiesLinks X X Yield strength of steel reinforcing for ties and links for concrete shearwalls.

double dFyTransverse X X Yield strength of transverse steel reinforcing for concrete columns,beams, horizontal braces and foundations.

double dPoissonsRatio X X Poisson’s Ratio. 

double dSelfWeight X X Self-weight of member.

Page 36: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 36/450

Type Property Get Set Description

double dUnitWeight X X Unit weight of member.

EAggregateType eConcreteAggType X X Aggregate type of concrete. (Only applicable for beams and columns)

IConcSectProp

This interface represents a single concrete section. Certain properties cannot be changed once a section is defined, such as theshape or the type of member (beam, column, or brace) to which it can be assigned.

Note that pan joist sections, which can only be created in the RAM Structural System Modeler, will be treated as tee sections throughDataAccess, but the properties will not be editable.

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

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

Parameters strCustomProps 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.

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

PropertiesType Property Get Set Description

double dCrackedAxialFactor X X Cracked section factor for axial stiffness. It is the multiplier for theaxial stiffness.

double dCrackedFactor X X Cracked factor of concrete section.

double dCrackedTorsionFactor X X Cracked section factor for torsional stiffness. It is the multiplier for thetorsional stiffness.

double dDepth X X Depth of section. Applies to rectangular and tee sections.

double dDiameter X X Diameter of section. Applies to round sections.

Page 37: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 37/450

Type Property Get Set Description

double dFlangeOverhangLeft X X Left flange overhang. Applies to tee sections. If -1, program willcalculate this value.

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

double dFlangeThickLeft X X Left flange thickness. Applies to tee sections. If -1, program willcalculate this value based on slab thickness. Note that if the left orright flange thickness is set, it will be applied to both sides.

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 orright flange thickness is set, it will be applied to both sides.

double dWebWidth X X Web width of section. Applies to rectangular and tee sections.

EUniqueMemberTypeID eMemType X Type of member to which this section can be assigned.

ECONC_OTHER_SEC eShape X Shape of the section.

long lUID X Unique ID of concrete section.

BSTR strLabel X X A label for this concrete section. Limited to 15 characters.

IConcSectProps

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

AddRect ([in]BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dTotalBeamDepth, [in] double dWebWidth, [out,retval] IConcSectProp** ppIConcSectProp)

 Adds a new rectangular concrete section. Rectangular sections can be defined for beams, columns or vertical braces.

Parameters bstName Label of concrete section. Limited to 15 characters.eMemType Must specify if this is a rectangular section for a beam, column or bracedTotalBeamDepth Total depth of sectiondWebWidth Web thickness of sectionppIConcSectProp Pointer to an IConcSectProp interface that represents the newly added concrete section.

AddRound ([in]BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dDiameter, [out, retval] IConcSectProp**ppIConcSectProp)

 Adds a new round concrete section. Round sections can be defined for columns or vertical braces.

Page 38: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 38/450

 Parameters bstName Label of concrete section. Limited to 15 characters.eMemType Must specify if this is a rectangular section for a beam, column or bracedDiameter Diameter of sectionppIConcSectProp Pointer to an IConcSectProp interface that represents the newly added concrete section.

AddTee ([in]BSTR bstName, [in] double dFlangeLeftOverhang, [in] double dFlangeRtOverhang, [in] double dFlangeThick, [in]

double dTotalBeamDepth, [in] double dWebWidth, [out, retval] IConcSectProp** ppIConcSectProp)

 Adds a new tee section. Assumed to be for a beam since concrete tee sections cannot be assigned to ‘Other’ member types.

Parameters bstName 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 sectiondWebWidth Web thickness of sectionppIConcSectProp Pointer to an IConcSectProp interface that represents the newly added concrete section.

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

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

Parameters lUID Unique ID of concrete section to deleteplRetval 0 if concrete section is deleted successfully

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

Filter ([in] EConcSectPropsFilter  eConcSectPropsFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of concrete sections based on given criteria.

Parameters eConcSectPropsFilter Indicates the type of filter to use on the collectionvarFilterCriteria 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 39: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 39/450

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

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

Parameters lUID The unique ID of the requested concrete sectionppIConcSectProp Pointer to an IConcSectProp interface that represents the requested concrete section, or NULL if no concrete

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

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

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

Parameters lIndex The index into the collection of the requested concrete sectionppIConcSectProp Pointer to an IConcSectProp interface that represents the requested concrete section, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of concrete sections in the collection

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

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

Parameters strCustomProps 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 40: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 40/450

IConcShearWallCriteria

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

PropertiesType Property Get Set Description

BOOL  bAutoGenSCOpeningCutAtBtm X Whether or not auto-generated section cuts include horizontal cuts above the bottoms of openings.

BOOL  bAutoGenSCOpeningCutAtSides X Whether or not auto-generated section cuts include vertical cuts inside openings.BOOL  bAutoGenSCOpeningCutAtTop X Whether or not auto-generated section cuts include horizontal cuts below the tops of openings.

BOOL  bAutoGenSCOpeningCutsOutside X Whether or not auto-generated section cuts include cuts around the outside of openings.

BOOL  bAutoGenSCPanelCutAtBtm X Whether or not auto-generated section cuts include horizontal cuts at the bottoms of walls.

BOOL bAutoGenSCPanelCutAtEnds X Whether or not auto-generated section cuts include vertical cuts at the edges of walls.

BOOL  bAutoGenSCPanelCutAtTop X Whether or not auto-generated section cuts include horizontal cuts at the tops of walls.

double dAutoGenSCEdgeOffset X The distance from the edges of walls and openings to offset auto-generated section cuts.

double dAutoGenSCHorizMaxSpacing X The maximum spacing between horizontal section cuts for auto-generated section cuts, or 0.0 ifthere is no maximum.

double dAutoGenSCVertMaxSpacing X The maximum spacing between vertical section cuts for auto-generated section cuts, or 0.0 if thereis no maximum.

BSTR strConcreteCode X The unique ID of this wall bar pattern template.

IConcSlabProp

This interface represents a single concrete slab property.

PropertiesType Property Get Set Description

BOOL bUseElasticModulus X X If FALSE, uses the calculated elastic modulus for the slab. If TRUE,uses the elastic modulus from the dElasticModulus property.

double dBendingCrackedFactor X X Bending cracked factor of the concrete slab.double dDiaphragmCrackedFactor X X Diaphragm cracked factor of the concrete slab.

double dElasticModulus X X Elastic modulus of the concrete slab if bUseElasticModulus is TRUE.

double dFpc X X FPC of the concrete slab.

double dPoissonsRatio X X Poisson’s Ratio of the concrete slab. 

double dSelfWeight X X Self-weight of concrete slab.

double dThickness X X Thickness of concrete slab.

double dUnitWeight X X Unit weight of the concrete slab.

long lUID X Unique ID of concrete slab property.

BSTR strLabel X X Label of concrete slab property. Limited to 19 characters.

Page 41: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 41/450

IConcSlabProps

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

Add ([in] BSTR bstSlabName, [in] double dThick, [in] double dSelfWeight, [out, retval] IConcSlabProp** ppIConcSlabProp)

 Adds a new concrete slab property.

Parameters bstSlabName Label for concrete slab property. Limited to 19 characters.dThick Thickness of concrete slabdSelfWeight Self-weight of concrete slabppIConcSlabProp 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 cannotbe deleted.

Parameters lUID Unique ID of concrete slab property to deleteplRetval 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 assignedto a deck or mat footing polygon

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

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

Parameters lUID The unique ID of the requested concrete slab propertyppIConcSlabProp Pointer to an IConcSlabProp interface that represents the requested concrete slab property, or NULL if no concrete

slab property is found in the collection with the given unique ID.

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

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

Page 42: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 42/450

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

invalid.

GetCount ([out, retval] long* plCount)

Gets the number of concrete slab properties in the collection.

Parameters plCount Number of concrete slab properties in the collection

ICont inuousFnd

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

ILayoutContinuousFnd interface.

GetCoordinates ([out] SCoordinate* pStartCenterLinePoint, [out] SCoordinate* pEndCenterLinePoint, [out, retval] long* plRetval)

Gets the coordinates of the continuous foundation.

Parameters pStartCenterLinePoint SCoordinate corresponding to the start center point of the foundationpEndCenterLinePoint SCoordinate corresponding to the end center point of the foundationplRetval 0 if successful

-1 if coordinates cannot be retrieved

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

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

Parameters strCustomProps 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 43: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 43/450

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

Gets an interface for a specific property by property name.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

GetReinforcement ([out, retval] SFND_CONT_REINF* pVal)

Gets reinforcement information for continuous foundation.

Parameters pVal Structure for continuous foundation reinforcement. See SFND_CONT_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)

Gets additional continuous foundation reinforcement information.

Parameters pVal Structure for additional continuous reinforcement. See SFND_REINF_OTHER_DATA.

PropertiesType Property Get Set Description

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

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

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

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

double dThickness X X Thickness of foundation

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

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

long lMaterialID X Unique ID of material properties for this continuous foundation. Foundation is always concrete. See sectionGetting material properties for a member for more information.

long lUID X Unique ID of the continuous footing.

Page 44: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 44/450

ICont inuousFnds

This interface represents a collection of continuous foundations associated with a story. While continuous foundations are added tothe ILayoutContinuousFnds interface (which is associated with a floor type), they only are considered in the 3D model at the loweststory 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 continuousfoundations at that story.

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

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

Parameters lUID The unique ID of the requested continuous foundationppIContinuousFnd Pointer to an IContinuousFnd interface that represents the requested continuous foundation, or NULL if no

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

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

Gets an interface for a specific continuous foundation by index.

Parameters lIndex The index into the collection of the requested continuous foundationppIContinuousFnd Pointer to an IContinuousFnd interface that represents the requested continuous foundation, or NULL if lIndex is

invalid.

GetCount ([out, retval] long* plCount)

Gets the number of continuous foundations in the collection.

Parameters plCount Number of continuous foundations in the collection

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

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

Parameters 

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

Page 45: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 45/450

pplPropertyDefs Pointer to an IPropertyDefinitions interface that represents a collection ofproperties that can be associated with this member type.

ICoupl ingBeam

This interface represents a coupling beam.

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

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

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

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

Gets the collection of wall bar sets in the receiver.

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

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

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

Parameters 

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

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

Sets an interface for the collection of points in the receiver.

Parameters pIPoints An IPoints interface to assign to the receiver.plRetVal 0 if points were assigned successfully.

-1 if assignment failed.

Properties

Page 46: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 46/450

Type Property Get Set Description

BOOL bDesigned X X Indicates whether or not this coupling beam has been designed. BOOL bFrozen X X Indicates whether or not this coupling beam has been frozen by the user. BOOL bUseBarPattern X X Indicates if the bar pattern option is selected in the uniform layout option

BOOL bUseUniformLayout X X Indicates if the uniform layout option is selected

double dBotLongRowSpacing X X Spacing of the bottom longitudinal bars in the nonuniform layout option

double  dDiagElementHeight X X Distance between outer edges of diagonal longitudinal bars

double  dDiagElementWidth X X Distance between outer edges of diagonal longitudinal bars

double  dDiagTieSpacing X X Tie spacing for diagonal reinforcment

double  dLongBarSpacing X X Spacing of the horizontal bars in the uniform layout optiondouble  dSideBarSpacing X X Spacing of the side bars in the nonuniform layout option

double  dStirrupSpacing X X Spacing of the transverse bars in the nonuniform layout option

double  dTopLongRowSpacing X X Spacing of the top longitudinal bars in the nonuniform layout

double  dTransBarSpacingUniform X X Spacing of the transverse bars in the uniform layout option

long lBotLongBarSize X X Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option

long  lDiagReinfSize X X Index of the bar size in the rebar table for the diagonal longitudinal bars

long  lDiagTieSize X X Index of the bar size in the rebar table for the diagonal tie bars

long  lLongBarSize X X Index of the bar size in the rebar table for the horizontal bars in the uniform layout option

long  lNumBotLongBarRows X X Number of bottom layers of reinforcing in the nonuniform layout option

long  lNumBotLongBars X X Number of bottom bars in each layer of reinforcing in the nonuniform layout option

long  lNumDiagBarsSide X X Number of diagonal longitudinal bars at sideslong  lNumDiagBarsTopAndBot X X Number of diagonal longitudinal top and bottom bars

long  lNumLayers X X Number of layers of reinforcing in the uniform layout option

long  lNumTopLongBarRows X X Number of top layers of reinforcing in the nonuniform layout option

long  lNumTopLongBars X X Number of top bars in each layer of reinforcing in the nonuniform layout option

long  lSideBarSize X X Index of the bar size in the rebar table for the side bars in the nonuniform layout option

long  lStirrupSize X X Index of the bar size in the rebar table for the transverse bars in the nonuniform layout option

long  lStirrupSizeUniform X X Index of the bar size in the rebar table for the vertical bars in the uniform layout option

long  lTopLongBarSize X X Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option

long  lUID X The unique ID of the coupling beam

ICoupl ingBeamCriter ia

This interface represents global coupling beam reinforcing criteria.

PropertiesType Property Get Set Description

BOOL bUseBarPattern Indicates if the bar pattern option is selected in the uniform layout option

BOOL bUseUniformLayout X X Indicates if the uniform layout option is selected

DOUBLE dBotLayerSpacing X X Spacing of the bottom longitudinal bars in the nonuniform layout option

DOUBLE dDiagElementHeight X X Distance between outer edges of diagonal longitudinal bars

Page 47: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 47/450

Type Property Get Set Description

DOUBLE dDiagElementWidth X X Distance between outer edges of diagonal longitudinal bars

DOUBLE dDiagTieSpacing X X Tie spacing for diagonal reinforcment

DOUBLE dLongBarSpacing X X Spacing of the horizontal bars in the uniform layout option

DOUBLE dSideBarSpacing X X Spacing of the side bars in the nonuniform layout option

DOUBLE dStirrupSpacing X X Spacing of the transverse bars in the nonuniform layout option

DOUBLE dStirrupSpacingUniform X X Spacing of the transverse bars in the uniform layout option

DOUBLE dTopLayerSpacing X X Spacing of the top longitudinal bars in the nonuniform layout

LONG lBotBarSize X X Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option

LONG lDiagLongBarSize X X Index of the bar size in the rebar table for the diagonal longitudinal barsLONG lDiagTieSize X X Index of the bar size in the rebar table for the diagonal tie bars

LONG lLongBarSize X X Index of the bar size in the rebar table for the horizontal bars in the uniform layout option

LONG lNumBotBars X X Number of bottom bars in each layer of reinforcing in the nonuniform layout option

LONG lNumBotLayers X X Number of bottom layers of reinforcing in the nonuniform layout option

LONG lNumDiagBarsSide X X Number of diagonal longitudinal bars at sides

LONG lNumDiagBarsTopBot X X Number of diagonal longitudinal top and bottom bars

LONG lNumLayers X X Number of layers of reinforcing in the uniform layout option

LONG lNumTopBars X X Number of top bars in each layer of reinforcing in the nonuniform layout option

LONG lNumTopLayers X X Number of top layers of reinforcing in the nonuniform layout option

LONG lSideBarSize X X Index of the bar size in the rebar table for the side bars in the nonuniform layout option

LONG lStirrupSize X X Index of the bar size in the rebar table for the transverse bars in the nonuniform layout optionLONG lStirrupSizeUniform X X Index of the bar size in the rebar table for the vertical bars in the uniform layout option

LONG lTopBarSize X X Index of the bar size in the rebar table for the top longitudinal bars in the nonuniform layout option

ICoupl ingBeams

This interface represents a collection of  ICouplingBeam objects.

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

 Adds a new wall panel to the receiver.

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

Clear ()

Deletes all coupling beams from the collection.

Delete ([in] long lUID)

Page 48: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 48/450

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

Parameters lUID Unique ID of the coupling beam to delete.

DeleteAt ([in] long lIndex)

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

Parameters lPanelID Index of the coupling beam to delete.

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

Gets an interface for a specific coupling beam unique ID.

Parameters 

lUID The unique ID of the requested wall panel.ppICouplingBeam Pointer to an ICouplingBeam interface that represents the requested coupling beam, or NULL if no coupling beam isfound in the collection with the given unique ID.

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

Gets an interface for a specific coupling beam by index.

Parameters lIndex The index into the collection of the requested coupling beam.ppICouplingBeam Pointer to an ICouplingBeam interface that represents the requested coupling beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall panels in the receiver.

Parameters plCount The number of IWallPanel objects in the collection.

Page 49: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 49/450

IDB

Internal use only.

IDBRecord

Internal use only.

IDBRecords

Internal use only.

IDBTable

Internal use only.

IDBTables

Internal use only.

IDeck

This interface represents a specific deck on a floor type.

GetFinalPolygon ([in] LONG lStoryUID, [in] LONG lIndex, [out,retval] IPoints** ppIPoints)

Gets the specified final polygon for this deck. Note that exterior polygons are at the beginning of this list. The return value fromGetNumFinalDiaphragms (plCount) determines how many of these polygons are exterior polygons. The first plCount polygons in this listare the exterior ones.

Parameters lStoryUID The story ID of the story for which to get the polygon.lIndex Index of the polygon to get.

Page 50: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 50/450

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

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

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

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

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

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

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

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

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

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

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

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

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

Parameters ppIPoints Pointer to IPoints collection that represents the vertices of the deck polygon. Note that these are the points in the

logical deck polygon, prior to being intersected with slab edges or having overlying deck areas subtracted. Additionally, the Z values are not populated with valid data.

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

Page 51: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 51/450

Sets the list of points, or vertices, that define the deck polygon. The number of vertices cannot change. The first and last point must beidentical.

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

Properties

Type Property Get Set DescriptionBOOL bDropCap X Flag indicating whether or not this deck was modeled as a drop cap.

double dAngle X X Orientation of deck

EDeckType eDeckPropType X Type of deck, either composite, non-composite or concrete

ESlabActions eSlabAction X X The slab action for this deck (one-way or two-way).

long lDropCapColumnID X The unique ID of the column associated with the drop cap

long lPropID X Unique ID of the deck property

long lUID X Unique ID of deck polygon

IDecksThis interface represents a collection of all decks on a floor type.

Add ([in] long lDeckPropID, [in] long lNumPoints, [out, retval] IDeck** ppIDeck)

 Adds a new deck to the collection of decks for the model.

Parameters lDeckPropID Unique ID of deck property used by this decklNumPoints 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

AddDropCap ([in] long lDeckPropID, [in] long lNumPoints, [in] lColumnID, [out, retval] IDeck** ppIDeck)

 Adds a new deck to the collection of decks for the model.

Parameters lDeckPropID Unique ID of deck property used by this decklNumPoints 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.

Page 52: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 52/450

lColumnID Unique ID of the column associated with the drop capppIDeck Pointer to an IDeck interface that represents the new deck, or NULL if Add fails

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

Deletes the deck with the given unique ID from the collection.

Parameters 

lDeckUID Unique ID of the deck to deleteplRetval If deletion fails (lDeckUID not found) this is set to a value less than zero. Otherwise, it is set to 0.

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

Deletes the deck at the given index from the collection.

Parameters lIndex Index in the collection of the deck to delete

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

Filters the collection of decks based on given criteria.

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

-1 if collection could not be filtered

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

Gets an interface for a specific deck by unique ID.

Parameters lUID The unique ID of the requested deckppIDeck Pointer to an IDeck interface that represents the requested deck, or NULL if no deck is found in the collection with

the given unique ID. If the collection is filtered, only the decks in the filtered collection are considered.

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

G t i t f f ifi d k b i d

Page 53: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 53/450

Gets an interface for a specific deck by index.

Parameters lIndex The index into the collection of the requested deckppIDeck Pointer to an IDeck interface that represents the requested deck, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of decks in the collection

IDeckTableEntries

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

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

Gets the IDeckTableEntry object at the specified index.

Parameters lIndex The index of the specified deck table entry.ppIDeckTableEntry The IDeckTableEntry object at the specified index.

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

Gets number of IDeckTableEntry objects in the collection.

Parameters plCount The number of IDeckTableEntry objects in the collection.

IDeckTableEntry

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

Page 54: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 54/450

 PropertiesType Property Get Set Description

DOUBLE dABD X Area of concrete in the rib per unit deck width

DOUBLE dRSpac X Rib spacing

DOUBLE dTD X Nominal rib height

DOUBLE dWR X Average rib width

DOUBLE dYBar2 X Distance from the bottom of the deck to the centroid of the concrete area dABD

BSTR strDeckName X The name of the decking.

IDiaphragm

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

GetPointLoads ([in] EAnalysisResultType eAnalysisType, [in] long lLoadCaseID, [out,retval] IPointLoads** ppIPointLoads)

Gets the collection of point loads on this diaphragm.

Parameters eAnalysisType 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.

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

Gets the collection of shells (quads) for this diaphragm.

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.

PropertiesType Property Get Set Description

BOOL bSkipSurfaceLoad X X Skip surface load polygon edges as constraints while meshing

T P t G t S t D i ti

Page 55: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 55/450

Type Property Get Set Description

double dAdvMeshShapeQualValue X X This parameter controls the trade-off between shape optimization andsize optimization. It is the weight of the shape quality in the measureof the global quality of an element. The default value (0.6) gives aslight preference to the shape quality over the size quality.

double dAdvMeshSizeRatio X X This ratio is used to get a coarser mesh (for ratio > 1) or a finer mesh(for ratio < 1) than what the mesher would normally produce. Defaultvalue is 1.0.

double dAdvNormEdgeLengthRatio X X This parameter is used to limit the length of the edges in the

generated mesh (normalized length). This is not a strict enforcementhowever. Most of the edges will be shorter than this limit, but somemay remain somewhat longer. The default value of 1.414 gives theoptimal meshes with respect to the size qualities. With this defaultvalue, the average edge length tends to be 1 (optimal edge quality onaverage). Sometimes, it can be useful to limit the length of the edgesto a shorter value (usually between 1 and 1.414), and to accept anaverage value smaller than 1 (sub-optimal edge qualities on average).

double dHardNodeDensityFactor X X Factor for mesh density around a hard node, larger is less dense,default 1.0.

double dMaxMeshLength X X It allows defining the maximum distance between two nodes along amesh edge. Note that the program may generate additional nodes

closer than user entered value, but it is never allowed to be largerthan that value.

double dMergeNodeTolerance X X Any two mesh nodes found to be smaller than this value, the programtreat these two nodes the same (only keeps one copy of the node)

double dMeshTolerance X X It is used in geometry calculation as a threshold tolerance value. Thisshould not be confused with a merge (close) node tolerance.Examples are as follows: it is used as a tolerance to check a node ison a line or to check a point is inside a polygon, etc...

EDiaphragmDeckDirTypes eContainedDeckDirections X Snapshot of the different deck directions contained in the diaphragm.

long lAdvMeshOptimizationLevel X X From value 1 on, the optimizer algorithm uses several techniques toimprove both the shape quality and the size quality of the elements,such as node smoothing, edge swapping, and node insertion. Default

value of 3 is usually a good compromise between quality and CPUcost.

long lPerimeterID X The perimeter ID of this diaphragm. Note: for diaphragms createdusing eDSModelData as the value of eSource inIStory::GetDiaphragms2, this will be the same as the unique ID.

long lUID X Unique ID of diaphragm.

IDiaphragms

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

Page 56: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 56/450

 

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

Gets an interface for a specific diaphragm by unique ID.

Parameters lUID The unique ID of the requested diaphragmppIDiaphragm Pointer to an IDiaphragm interface that represents the requested diaphragm, or NULL if no diaphragm is found in

the collection with the given unique ID.

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

Gets an interface for a specific diaphragm by index.

Parameters lIndex 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.

GetCount ([out, retval] long* plCount)

Gets the number of diaphragms in the collection.

Parameters plCount Number of diaphragms in the collection

IField

Internal use only.

IFields

Internal use only.

IFi lW llO i

Page 57: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 57/450

IFinalWallOpening

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

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

Gets the vertices of the opening clipped to the wall polygon.

Parameters ppIVertexCoordinates Pointer to an IPoints collection interface which represents the locations of thevertices of the opening in 3D coordinates.

PropertiesType Property Get Set Description

long lRawOpeningUID X Unique ID of raw wall opening from which this this clipped opening originated

long lWallUID X Unique ID of wall to which this final opening is clipped

IFinalWallOpeningsThis interface represents a collection of final wall openings associated with a wall. Final openings are the collection of openings thatintersect a wall, regardless of which wall into the openings were initially modeled.

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

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

Parameters lUID 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 wallopening is found in the collection with the given unique ID.

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

Gets an interface for a final wall opening by index.

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

invalid.

Page 58: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 58/450

 GetCount ([out, retval] long* plCount)

Gets the number of wall openings in the collection.

Parameters plCount Number of final wall openings in the collection

IFloorType

This interface represents a single floor type in the model.

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

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

Parameters 

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

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

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

Parameters 

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

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

Gets the collection of all decks for this floor type.

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

GetGridSystemIDArray ([out retval] IDAArray** ppIDAArray)

Page 59: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 59/450

GetGridSystemIDArray ([out, retval] IDAArray ppIDAArray)

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

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

type.

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

Gets the collection of all beams for this floor type.

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

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

Gets the collection of all columns for this floor type.

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

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

Gets the collection of all continuous foundations for this floor type.

Parameters ppILayoutContinuousFnds Pointer to an ILayoutContinuousFnds collection interface that represents all continuous foundations defined on

this floor type

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

Gets the collection of all horizontal braces for this floor type.

Parameters ppILayoutHorizBraces Pointer to an ILayoutHorizBraces collection interface that represents all horizontal braces defined on this floor type

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

Gets the collection of all isolated foundations for this floor type

Page 60: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 60/450

Gets the collection of all isolated foundations for this floor type.

Parameters ppILayoutIsolatedFnds Pointer to an ILayoutIsolatedFnds collection interface that represents all isolated foundations defined on this floor

type

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

Gets the collection of all walls for this floor type.

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

GetLineLoadSets (ILineLoadSets ** ppLineLoadSets )Gets the collection of all line load sets for this floor type.

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

GetPointLoadSets (IPointLoadSets** ppPointLoadSets )

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

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

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

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

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

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

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

Parameters 

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

Page 61: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 61/450

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

GetSnowLoadSets ([out, retval] ISnowLoadSets **ppSnowLoadSets)Gets the collection of all snow load sets for this floor type.

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

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

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

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

GetSurfaceLoadSets (ISurfaceLoadSets **ppSurfaceLoadSets) Gets the collection of all surface load sets for this floor type.

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

GetSurfaceLoadSets2 ([out, retval] ISurfaceLoadSets **ppSurfaceLoadSets)Gets the collection of all surface load sets for this floor type. Note: this is the same as GetSurfaceLoadSets, but with theppSurfaceLoadSets argument set to be a retval.

Parameters 

ppSurfaceLoadSets  Pointer to an ISurfaceLoadSets collection interface that represents all surface load sets defined on this floor type.

SetGridSystemIDArray ([in] IDAArray * pIDAArray, [out, retval] long *plRetVal)

Sets the collection of unique IDs of grid systems that are assigned to this floor type.

Parameters pIDAArray 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

PropertiesType Property Get Set Description

long lUID X Unique ID of floor type

BSTR strLabel X X Label of floor type. Maximum of 19 characters allowed.

Page 62: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 62/450

BSTR strLabel X X Label of floor type. Maximum of 19 characters allowed.

IFloorTypes

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

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

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

Parameters bstrFloorTypeName A label for the floor type. Max 19 characters allowed.ppFloorType Pointer to an IFloorType interface that represents the newly added floor type.

Copy ([in] long lSrcIndex, [in] BSTR strFloorTypeName, [in] DWORD dwWhatToCopy, [out, retval] IFloorType** ppFloorType)

Creates a duplicate copy of the specified floor type.

Parameters lScrIndex Index of the floor type to copy.bstrFloorTypeName A label for the new floor type. Max 19 characters allowed.dwWhatToCopy Bitwise OR of members of the EFloorTypeElements enumeration indicating what portions of the floor type should

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

Copy2 ([in] long lSrcIndex, [in] BSTR strFloorTypeName, [in] LONG lWhatToCopy, [out, retval] IFloorType** ppFloorType)

Creates a duplicate copy of the specified floor type.

Parameters lScrIndex Index of the floor type to copy.bstrFloorTypeName A label for the new floor type. Max 19 characters allowed.lWhatToCopy Bitwise OR of members of the EFloorTypeElements enumeration indicating what portions of the floor type should

be copied.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

Page 63: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 63/450

e e es a oo ype o e co ec o e oo ype us be e e ed co ec o o be de e ed o e a a oo ype a sassociated with a story cannot be deleted. All stories associated with the floor type must be deleted first.

Parameters lUID Unique ID of floor type to be deletedplRetval 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 oneor more stories.

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

Filters the collection of floor types based on given criteria.

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

-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested floor typeppFloorType Pointer to an IFloorType interface that represents the requested floor type, or NULL if no floor type is found in the

collection with the given unique ID. If the collection is filtered, only the floor types in the filtered collection are considered.

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

Gets an interface for a specific floor type by index.

Parameters lIndex The index into the collection of the requested floor typeppFloorType Pointer to an IFloorType interface that represents the requested floor type, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount )

Gets the number of floor types in the collection. When the collection is filtered, this function returns the number in the filtered collection, not

Page 64: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 64/450

yp , ,the total number of floor types in the model. When the collection is unfiltered, this function returns the total number of floor types in themodel.

Parameters plCount Number of floor types in the collection

MSIWorkaround_ EFloorTypeElements _DO_NOT_CALL ()

Internal use only.

IFrameAnalysisCriteria

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

PropertiesType Property Get Set Description

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

BOOL bConsiderPDelta X X TRUE if PDelta effect should be considered during analysis, FALSE if notBOOL 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 nodedouble 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).double dMeshShapeQualityRatio X X Advanced wall mesh shape quality ratio (between 0.1 and 1). The Default is 0.6.

double dPDeltaFactor X X Scale factor (between 0 and 10) to magnify the effect of PDelta during the analysis. TheDefault is 1.

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 diaphragmslong lMeshOptimizationLevel X X Advanced wall mesh optimization level (between 1 and 10). The Default is 3.

IGridSystem

This interface represents a single grid system.

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

Gets the collection of grid lines for the grid system.

Page 65: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 65/450

g g y

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

PropertiesType Property Get Set Description

double dRotation X X Rotation angle of grid system.

double dXoffset X X Offset of grid system from 0, along x-axis.double dYoffset X X Offset of grid system from 0, along y-axis.

SGridSysType eOrientationType X X Orientation type of grid system.

long lUID X Unique ID of grid system.

BSTR strLabel X X Label of grid system.

IGridSystems

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

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

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

Parameters bstGridSystemLabel Label for this grid systemppIGridSystem Pointer to an IGridSystem interface that represents the newly added grid system.

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

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

Parameters lUID Unique ID of grid system to deleteplRetval 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.

 

Page 66: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 66/450

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

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

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

Parameters lUID The unique ID of the requested grid systemppIGridSystem Pointer to an IGridSystem interface that represents the requested grid system, or NULL if no grid system is found in

the collection with the given unique ID.

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

Gets an interface for a specific grid system by index.

Parameters lIndex The index into the collection of the requested grid systemppIGridSystem Pointer to an IGridSystem interface that represents the requested grid system, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of grid systems in the collection

IHorizBrace

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

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

 

Page 67: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 67/450

Gets the end coordinates for the horizontal brace.

Parameters pStartPoint SCoordinate corresponding to the start of the horizontal bracepEndPoint SCoordinate corresponding to the end of the horizontal braceplRetval 0 if successful

-1 if coordinates cannot be retrieved

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

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

Parameters strCustomProps 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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

PropertiesNote 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

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 areback to back.

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.

BOOL bMajAxisBendFixEnd X X Major axis bending release at end of horizontal brace (j-end).

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

BOOL bMinAxisBendFixedEnd X X Minor axis bending release at end of horizontal brace (j-end).

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

Type Property Get Set Description

Page 68: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 68/450

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 thatthe long leg is vertical.

BOOL bTorFixedEnd X X Torsion release at end of horizontal brace (j-end).

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

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

double dUnbracedLengthAxialX X X Strong axis unbraced length for axial compression

double dUnbracedLengthAxialY X X Weak axis unbraced length for axial compressiondouble dUnbracedLengthFlexuralY X X Unbraced length for lateral torsional buckling

ETensionCompressionMemType eAnalysisType X X Indicates whether horizontal brace takes tension, compression, or both

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

long lFlangeBracing X X Flange bracing flags. Sum the appropriate flags to determine the appropriatevalue for the settings.0 – All global1 – Override global2 – Top flange braced4 – Bot flange braced 

long lFrameNumber X X Frame number assigned

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

long lMaterialID X Unique ID of material properties for this horizontal brace. Must correspond totype of material. See section Getting material properties for a member for moreinformation.

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 sectionproperties to ‘Other’ members for more information.

long lUID X Unique ID of horizontal brace.

long lUnbracedLength X X Unbraced length flags. Sum the appropriate flags to determine the appropriatevalue for the settings.0 – All global

1 – Override global UnbracedLengthAxialLX2 – Override global UnbracedLengthAxialLY4 – User defined UnbracedLengthAxialLX8 – User defined UnbracedLengthAxialLY32 – Override global UnbracedLengthFlexLY128 – User defined UnbracedLengthFlexLY

BSTR strSectionLabel X X Label of the size or section property for this horizontal brace. Limited to 15characters. See Assigning sizes to steel members, Assigning section propertiesto concrete members, and Assigning section properties to ‘Other’ members formore information.

IHorizBraces

Page 69: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 69/450

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

Filter  ([in] EHorizBraceFilter  eHorizBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout horizontal braces based on given criteria.

Parameters eFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested layout horizontal braceppIHorizBrace Pointer to an IHorizBrace interface that represents the requested horizontal brace, or NULL if no horizontal brace is

found in the collection with the given unique ID.

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

Gets an interface for a specific horizontal brace by index.

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

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of horizontal braces in the collection

 

Page 70: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 70/450

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

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

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 thismember type

IIsolatedFnd

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

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

Gets the coordinate of the isolated foundation.

Parameters pCenterPoint SCoordinate corresponding to the center point of the isolated foundationplRetval 0 if successful

-1 if coordinate cannot be retrieved

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

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

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

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

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

Parameters 

strCustomProps Leave blank for public properties, or enter a valid user ID to get properties for this beam defined by a specific user( t t i l t d)

Page 71: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 71/450

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

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

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

Gets isolated foundation reinforcement for location.

Parameters eLoc Location of reinforcement. See EFndReinfLoc.pVal Structure containing reinforcement information. See SFND_ISO_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)

Gets additional reinforcement information.

Parameters pVal Structure for additional reinforcement information. See SFND_REINF_OTHER_DATA.

PropertiesType Property Get Set Description

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

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

double dLeft X X Dimension from center of foundation to left edge of footing when footing major axis is parallel toglobal X-axis

double dOrientation X X Orientation of foundation

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

double dThickness X X Thickness of foundation

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

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

Type Property Get Set Description

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

Page 72: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 72/450

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

long lMaterialID X Unique ID of material properties for this isolated foundation. Foundation is always concrete. Seesection Getting material properties for a member for more information.

long lPileConfigurationID X X ID of pile configuration assigned to this foundation; only applies if eType is EFndPileCap. Fromthe IModel interface, call GetPileConfiguration() using this ID to get the interface for the pileconfiguration associated with this pile cap footing.

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 thispile cap footing.

long lUID X Unique ID of isolated foundation.

IIsolatedFnds

This interface represents a collection of isolated foundations (foundations that sit under a single column) associated with a story.While isolated foundations are added to the ILayoutIsolatedFnds interface (which is associated with a floor type), they only areconsidered 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 willyield an empty IIsolatedFnds collection, but from the IStory associated with the bottom story, the IIsolatedFnds collection willrepresent all the isolated foundations at that story.

Filter  ([in] EIsolatedFndFilter  eIsolatedFndFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of isolated foundations based on given criteria.

Parameters eIsolatedFndFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.

plRetval 0 if successful-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested isolated foundationppIIsolatedFnd 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.

Page 73: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 73/450

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

Gets an interface for a specific isolated foundation by index.

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

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 filteredcollection, not the total number of isolated foundations on the story. When the collection is unfiltered, this function returns the total numberof isolated foundations on the story.

Parameters plCount Number of isolated foundations in the collection

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

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

Parameters strCustomProps 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

ILayoutBeam

This interface represents a single layout beam. A layout beam is a beam associated with a floor type. Since a floor type can beassociated with one or more stories, a layout beam may actually represent one or more beams. This interface can be used to modifythe coordinates and properties of a layout beam.

GetAssociatedStoryBeams ([out, retval] IBeams** ppIBeams)

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

Page 74: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 74/450

with the floor type the layout beam is on.

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

GetEndRigidLink ([out] double *pdX, [out] *double pdY, [out] long *plMemberID)

Gets the support unique ID and coordinates for the rigid link at the end of the beam.

Parameters pdX X coordinate of the end of the rigid link on the supporting member at the end of the beam. Matches beam end

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

Y coordinate if there is no rigid link.plMemberID Unique ID of the member that supports the rigid link at the end of the beam.

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

Gets the coordinates of the layout beam. Note that it returns the coordinates of the support points of the beam. For the actual endcoordinates, use the IBeam interface.

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

GetStartRigidLink ([out] double *pdX, [out] *double pdY, [out] long *plMemberID)

Gets the support unique ID and coordinates for the rigid link at the start of the beam.

Parameters pdX X coordinate of the end of the rigid link on the supporting member at the start of the beam. Matches beam start

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

Y coordinate if there is no rigid link.plMemberID Unique ID of the member that supports the rigid link at the start of the beam

Page 75: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 75/450

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

GetStubCantileverCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdStartZOffset, [out] double*pdEndtX, [out] double *pdEndY, [out] double *pdEndZOffset)

Gets the end coordinates of a stub cantilever layout beam. 1.

Parameters pdStartX X coordinate of the supported stub cantilever end.pdStartY Y coordinate of the supported stub cantilever end.pdStartZOffset Z offset value from the story elevation of the supported stub cantilever end.pdEndX X coordinate of the free stub cantilever end.pdEndY Y coordinate of the free stub cantilever end.pdEndZOffset Z offset value from the story elevation of the free stub cantilever end.

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

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

defined on this beam.

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

IsStubCantilever ([out, retval] BOOL* bStubCantilever)

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

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

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

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

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

SetLayoutCoordinates ([in] double dStartSupportX, [in] double dStartSupportY, [in] double dStartSupportZOffset, [in] doubledEndSupportX [in] double dEndSupportY [in] double dEndSupportZOffset [out retval] long* plRetval)

Page 76: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 76/450

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 bedefined from left-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, theywill be reversed.

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

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

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

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

SetStubCantileverCoordinates ([in] double dStartX, [in] double dStartY, [in] double dStartZOffset, [in] double dEndtX, [in] doubledEndY, [in] double dEndZOffset)

Sets the end coordinates of a stub cantilever layout beam. 1.

Parameters dStartX X coordinate of the supported stub cantilever end.dStartY Y coordinate of the supported stub cantilever end.dStartZOffset Z offset value from the story elevation of the supported stub cantilever end.dEndX X coordinate of the free stub cantilever end.dEndY Y coordinate of the free stub cantilever end.dEndZOffset Z offset value from the story elevation of the free stub cantilever end.

Properties

Note that some properties that can be set through the ILayoutBeam interface cannot be retrieved. Any property of a beam that canvary story-to-story (such as the section label which corresponds to the beam size) cannot be retrieved through this interface

Page 77: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 77/450

vary story-to-story (such as the section label, which corresponds to the beam size) cannot be retrieved through this interfacebecause the ILayoutBeam interface may represent more than one beam, not all of which will have the same assigned size. Forexample, if a floor type is associated with 3 stories, the corresponding beams on those stories may have 3 different assigned sizes.So the section label is one property that cannot be retrieved through the ILayoutBeam interface. To get the section label for a beam,use the IBeam interface.

When a property is set through the ILayoutBeam interface, all beams represented by this interface will be updated.

Type Property Get Set Description

BOOL bComposite X X If TRUE, beam is composite. If FALSE, beam is non-composite.

BOOL bMajAxisBendFixedEnd X Major axis bending release at end of beam (j-end).

BOOL bMajAxisBendFixedStart X Major axis bending release at start of beam (i-end).

BOOL bMinAxisBendFixedEnd X Minor axis bending release at end of beam (j-end).

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

BOOL bTorFixedEnd X Torsion release at end of beam (j-end).

BOOL bTorFixedStart X Torsion release at start of beam (i-end).

double dCastellatedBottomDt X X

double dCastellatedDt X X ‘dt’ is the distance from the top of the beam to the top of a castellated beam opening. 

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.

double dCastellatedMaxE X X Minimum space between holes in castellated beams.

double dCastellatedMinE X X Maximum space between holes in castellated beams.

double dCastellatedPhiBot X X Angle off the horizontal of the slant of the bottom two slanted portions of the holes incastellated beams.

double dCastellatedPhiTop X X Angle off the horizontal of the slant of the top two slanted portions of the holes in castellatedbeams.

double dCastellatedTopDt X X Vertical distance from flange to hole for castellated beams.

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

double dCellularMaxS X X Minimum center-to-center spacing of holes in cellular beams.

double dCellularMinS X X Maximum center-to-center spacing of holes in cellular beams.

double dCellularS X X ‘S’ is the spacing between openings for cellular beams. This is the maximum dimension in thecase that a range was specified by the design.

double dEndCantilever X X Length of cantilever at end of beam (j-end)

double dManufacturerSelfWeight X X Self weight supplied by a custom beam manufacturer, used in place of self-weight calculationfor calculating reactions on other members – only used in Ram Structural System iflManufacturerID has been set. This value should be in pounds per linear foot.

double dStartCantilever X X Length of cantilever at start of beam (i-end)

EAnalyzeFlag eAnalyzeFlag X X Whether beam will be optimized or analyzed during design

EFRAMETYPE eFramingType X X Whether member is lateral or gravity

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

EJoistType eMemberJoistType X X Type of joist (if beam material type is ESteelJoistMat)

Type Property Get Set Description

ESMARTBEAMTYPE eSmartBeamSubType X X Whether the beam is a castellated or cellular smartbeam. Only applicable if eMaterial is

Page 78: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 78/450

yp y ppESmartbeamBeamMat.

EDefaultOrAlternate eSteelTable X X Whether beam size will be found in default or alternate steel beam design table

long lBeamLineNumber X Beam line that beam is part of (applicable only if this is a concrete beam).

long lDeckUID X Deck unique id on the “left” or “right” of the beam.

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

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

long lManufacturerID X X 0 if none assigned. Custom beam manufacturers may obtain a manufacturer ID from RAMInternational. When set on a beam, the beam will be ignored during the Design All commandin RAM Steel Beam.

long lMaterialID X Unique ID of material properties for this beam. Must correspond to type of material. Seesection Getting material properties for a member for more information.

long lSectionID X Unique ID of concrete or ‘Other’ section assigned to this beam. See Assigning sectionproperties to concrete members and Assigning section properties to ‘Other’ members for moreinformation.

long lUID X Unique ID of layout beam. This unique ID corresponds to the beam on the top storyassociated with this floor type, if any.

BSTR strSectionLabel X Label of the size or section property for this beam. Limited to 15 characters. See Assigningsizes to steel members, Assigning section properties to concrete members, and Assigning

section properties to ‘Other’ members for more information.

ILayoutBeams

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

Add ([in] EMATERIALTYPES eMat, [in]double dStartSupportX, [in] double dStartSupportY, [in]double dZOffset1, [in]double

dEndSupportX, [in]double dEndSupportY, [in]double dZOffset2, [out, retval] ILayoutBeam** ppILayoutBeam)

 Adds a new layout beam to the collection of layout beams for the floor type. A beam is defined by its support points, not its end points.Beams must be defined from left-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAMStructural System, they will be reversed. If a beam is cantilevered, the cantilever length is added as a property of the ILayoutBeaminterface.

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

Page 79: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 79/450

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.

AddStubCantilever ([in] EMATERIALTYPES eMat, [in]double dStartX, [in] double dStartY, [in]double dZOffset1, [in]double dEndX,

[in]double dEndY, [in]double dZOffset2, [out, retval] ILayoutBeam** ppILayoutBeam)

 Adds a new stub cantilever layout beam to the collection of layout beams for the floor type. 1

Parameters eMat Material type of beam to add (Valid options are ESteelMat, ESteelJoistMat, ESmartbeamBeamMat, EConcreteMat,

or EOtherMat)dStartX X coordinate of the supported stub cantilever end.dStartY Y coordinate of the supported stub cantilever end.dZOffset1 Z offset value from the story elevation of the supported stub cantilever end.dEndX X coordinate of the free stub cantilever end.

dEndY Y coordinate of the free stub cantilever end.dZOffset2 Z offset value from the story elevation of the free stub cantilever 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 thelayout beam is on.

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

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

Filters the collection of layout beams based on given criteria.

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 80: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 80/450

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

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

Parameters 

lUID The unique ID of the requested layout beamppILayoutBeam Pointer to an ILayoutBeam interface that represents the requested layout beam, or NULL if no layout beam is foundin the collection with the given unique ID.

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

Gets an interface for a specific layout beam by index.

Parameters lIndex The index into the collection of the requested layout beamppILayoutBeam Pointer to an ILayoutBeam interface that represents the requested layout beam, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of layout beams in the collection

ILayoutColumn

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

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

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

Page 81: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 81/450

yp y

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

column.

GetLayoutCoordinates ([out] double *pdX, [out] double *pdY, [out] double *pdZ1Offset, [out]double *pdZ2, [out, retval] long*

plRetval)

Gets the coordinates of the top of the layout column.

Parameters pdX X coordinate of the columnpdY Y coordinate of the columnpdZ1Offset Z offset value from the story elevation. This is the top of the standard

columns and the bottom of hanging columns.pdZ2Offset Z offset value from the story elevation. This is the bottom of the standard

columns and the top of hanging columns.

plRetval 0 if successful-1 if coordinates cannot be retrieved

GetLayoutCoordinates2 ([out] double *pdX1, [out] double *pdY1, [out] double *pdZ1Offset, [out] double *pdX2, [out] double*pdY2, [out]double *pdZ2Offset)

Gets the coordinates of the layout column.

Parameters pdX1 X coordinate of the column. This is the top of standard columns and the

bottom of hanging columns.pdY1 Y coordinate of the column. This is the top of standard columns and the

bottom of hanging columns.pdZ1Offset Z offset value from the story elevation. This is the top of standard columns

and the bottom of hanging columns.pdX2 X coordinate of the column. This is the bottom of standard columns and the

top of hanging columns.pdY2 Y coordinate of the column. This is the bottom of standard columns and the

top of hanging columns.pdZ2Offset Z offset value from the story elevation. This is the bottom of standard

columns and the top of hanging columns.

 

SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZ1Offset, [in] double dZ2Offset, [out, retval] long* plRetval)

Page 82: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 82/450

SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZ1Offset, [in] double dZ2Offset, [out, retval] long plRetval)

Sets the coordinates of the layout column.

Parameters dX X coordinate of the columndY Y coordinate of the column

dZTopOffset Z offset value from the story elevation. This is the top of the standardcolumns and the bottom of hanging columns.dZBotOffset Z offset value from the story elevation. This is the bottom of the standard

columns and the top of hanging columns.plRetval 0 if successful

-1 if coordinates cannot be set

SetLayoutCoordinates2 ([in] double dX1, [in] double dY1, [in] double dZ1Offset, [in] double dX2, [in] double dY2, [in] doubledZ2Offset)

Sets the coordinates of the layout column.

Parameters dX1 X coordinate of the column. This is the top of standard columns and bottom of

hanging columns.dY1 Y coordinate of the column. This is the top of standard columns and the

bottom of hanging columns.dZ1Offset Z offset value from the story elevation. This is the top of standard columns

and the bottom of hanging columns.dX2 X coordinate of the column. This is the bottom of standard columns and the

top of hanging columns.dY2 Y coordinate of the column. This is the bottom of standard columns and the

top of hanging columns.dZ2Offset Z offset value from the story elevation. This is the bottom of standard

columns and the top of hanging columns.

PropertiesNote that some properties that can be set through the ILayoutColumn interface cannot be retrieved. Any property of a column thatcan vary story-to-story (such as the section label, which corresponds to the column size) cannot be retrieved through this interfacebecause the ILayoutColumn interface may represent more than one column, not all of which will have the same assigned size. Forexample, 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 acolumn, use the IColumn interface.

Page 83: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 83/450

,

When a property is set through the ILayoutColumn interface, all columns represented by this interface will be updated.

Type Property Get Set Description

BOOL bDblAngleLLBackToBack X X True if double angles have long leg back to back

BOOL bDblAngleSnugTightBolt X X True if double angles are using the snug tight bolts for intermediate connectors

BOOL bHanger X X True if layout column is a hanging column

BOOL bMajAxisBendFixedBot X Major axis bending release at bottom of column (j-end)

BOOL bMajAxisBendFixTop X Major axis bending release at top of column (i-end)

BOOL bMinAxisBendFixedBot X Minor axis bending release at bottom of column (j-end).

BOOL bMinAxisBendFixedTop X Minor axis bending release at top of column (i-end).

BOOL bSglAngleMirrored True if single angle layout column is mirrored.

BOOL bTorFixedBot X Torsion release at bottom of column (j-end).

BOOL bTorFixedTop X Torsion release at top of column (i-end).

double dDblAngleBackSpacing The back to back spacing between angles in the double angle section

double dOrientation X X Orientation of column in degrees. Angle measured between web of column and x-axis.

EFRAMETYPE eFramingType X X Whether member is lateral or gravity

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

long lFrameNumber X Frame number for lateral members. Must be positive number.long lLabel X Numeric label of column used for on-screen display in RAM Structural System. It is unique per

floor type.

long lMaterialID X Unique ID of material properties for this column. Must correspond to type of material. Seesection Getting material properties for a member for more information.

long lSectionID X Unique ID of concrete or ‘Other’ section assigned to this column. See Assigning sectionproperties to concrete members and Assigning section properties to ‘Other’ members for moreinformation.

long lUID X Unique ID of layout column. This unique ID corresponds to the column on the top storyassociated with this floor type, if any.

BSTR strSectionLabel X Label of the size or section property for this column. Limited to 15 characters. See Assigningsizes to steel members, Assigning section properties to concrete members, and Assigning

section properties to ‘Other’ members for more information.

ILayoutColumns

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

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

Page 84: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 84/450

y pp y )

 Adds a new (vertical) layout column to the collection of layout columns for the floor type. Since sloped columns are currently not handled inthe RAM Structural System, only one set of x,y coordinates are used in the definition of a new column.

Parameters eMat Material type of column to add. (Valid options are ESteelMat, EConcreteMat, or EOtherMat)

dX X coordinate of the columndY Y coordinate of the columndZTopOffset Z offset value from the story elevation. This is the top of standard columns and the bottom of hanging columns.dZBotOffset Z offset value from the story elevation. This is the bottom of standard columns and the top of hanging columns.ppILayoutColumn Pointer to an ILayoutColumn interface that represents the newly added layout column.

Add2 ([in] EMATERIALTYPES eMat, [in]double dX1, [in]double dY1, [in]double dX2, [in] double dY2, [in]double dZ1Offset,[in]double dZ2Offset, [out, retval] ILayoutColumn** ppILayoutColumn)

 Adds a new (possibly sloping) layout column to the collection of layout columns for the floor type.

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

Add3 ([in] EMATERIALTYPES eMat, [in]double dX1, [in]double dY1, [in]double dX2, [in] double dY2, [in]double dZ1Offset,[in]double dZ2Offset, [in] BOOL bHanger, [out, retval] ILayoutColumn** ppILayoutColumn)

 Adds a new (possibly sloping) layout column (standard or hanging) to the collection of layout columns for the floor type.

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

dZ1Offset Z offset value from the story elevation. This is the top of standard columns and the bottom of hanging columns.dZ2Offset Z offset value from the story elevation. This is the bottom of standard columns and the top of hanging columns.

f f

Page 85: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 85/450

bHanger Enter 1 if the column is a hanger and 0 if it is not.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.

Parameters lUID Unique ID of layout column to deleteplRetval 0 if layout column is deleted successfully

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

Filter  ([in] EColumnFilter  eColumnFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout columns based on given criteria.

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

-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested layout columnppILayoutColumn Pointer to an ILayoutColumn interface that represents the requested layout column, or NULL if no layout column is

found in the collection with the given unique ID.

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

Gets an interface for a specific layout column by index.

Parameters lIndex The index into the collection of the requested layout column

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

Page 86: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 86/450

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 filteredcollection, not the total number of layout columns on the floor type. When the collection is unfiltered, this function returns the total numberof layout columns on the floor type.

Parameters plCount Number of layout columns in the collection

ILayoutCont inuousFnd

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

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

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

Parameters ppIContinuousFnd Pointer to an IContinuousFnd interface that represents the continuous foundation at the lowest story associated

with this layout continuous foundation. If no stories are defined for the floor type associated with the layoutcontinuous foundation, this pointer will be NULL.

GetLayoutCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdEndX, [out] double *pdEndY, [out] double*pdZOffset, [out, retval] long* plRetval)

Gets the coordinates of the layout continuous foundation.

Parameters pdStartX X coordinate of the center of the start of the footingpdStartY Y coordinate of the center of the start of the footingpdEndX X coordinate of the center of the end of the footingpdEndY Y coordinate of the center of the end of the footingpdZOffset 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

Page 87: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 87/450

GetReinforcement ([out, retval] SFND_CONT_REINF* pVal)

Gets reinforcement information for continuous foundation.

Parameters 

pVal Structure for continuous foundation reinforcement information. See SFND_CONT_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)

Gets additional reinforcement information for continuous foundation.

Parameters pVal Structure for additional reinforcement information. See SFND_REINF_OTHER_DATA.

SetLayoutCoordinates ([in]double dStartX, [in] double dStartY, [in]double dEndX, [in] double dEndY, [in]double dZOffset, [out,retval] long* plRetval)

Sets the coordinates of the layout continuous foundation.

Parameters dStartX X coordinate of the center of the start of the footingdStartY Y coordinate of the center of the start of the footingdEndX X coordinate of the center of the end of the footingdEndY Y coordinate of the center of the end of the footingdZOffset Z offset value from the story elevation for the top of the footing applied to both the start and end of the footingplRetval 0 if successful

-1 if coordinates cannot be set

PropertiesType Property Get Set Description

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

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

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

double dOrientation X Orientation of foundation

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

double dThickness X X Thickness of foundation

Type Property Get Set Description

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

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

Page 88: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 88/450

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

long lMaterialID X Unique ID of material properties for this continuous foundation. Foundations are always concrete. Seesection Getting material properties for a member for more information.

long lUID X Unique ID of layout continuous foundation.

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

Add ([in]double dStartX, [in] double dStartY, [in]double dEndX, [in] double dEndY, [in]double dZOffset, [out, retval]ILayoutContinuousFnd** ppILayoutContinuousFnd)

 Adds a new layout continuous foundation to the collection of layout continuous foundations for the floor type.

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

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

Deletes the layout continuous foundation with the given unique ID.

Parameters lUID Unique ID of layout continuous foundation to deleteplRetval 0 if layout continuous foundation is deleted successfully

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

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

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

Parameters lUID The unique ID of the requested layout continuous foundationppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation or

Page 89: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 89/450

ppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation, orNULL if no layout continuous foundation is found in the collection with the given unique ID.

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

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

Parameters lIndex The index into the collection of the requested layout continuous foundationppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation, or

NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of layout continuous foundations in the collection.

Parameters 

plCount Number of layout continuous foundations in the collection

ILayoutHorizBrace

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

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

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

Parameters ppIHorizBraces Pointer to an IHorizBraces interface that represents the collection of story horizontal braces associated with this

layout horizontal brace.

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

 Gets the coordinates of the layout horizontal brace.

Page 90: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 90/450

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] doubledEndSupportX, [in] double dEndSupportY, [in] double dEndSupportZOffset, [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 coordinatesare sent in opposite of the convention used by the RAM Structural System, they will be reversed.

Parameters 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).plRetval 0 if successful

-1 if coordinates cannot be set

Properties

Note that some properties that can be set through the ILayoutHorizBrace interface cannot be retrieved. Any property of a horizontalbrace that can vary story-to-story (such as the section label, which corresponds to the brace size) cannot be retrieved through thisinterface because the ILayoutHorizBrace interface may represent more than one horizontal brace, not all of which will have the sameassigned size. For example, if a floor type is associated with 3 stories, the corresponding horizontal braces on those stories mayhave 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

Type Property Get Set Description

BOOL bDblAngleLLBacktoBack X Applies to a steel horizontal brace that has been assigned a double anglesection If TRUE long legs of double angle are back to back If FALSE short

Page 91: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 91/450

section. If TRUE, long legs of double angle are back to back. If FALSE, shortlegs are back to back.

BOOL bDblAngleSnugTightBolt X Applies to a steel horizontal brace that has been assigned a double anglesection. TRUE indicates that only a snug tight connector will be used.

BOOL bMajAxisBendFixEnd X Major axis bending release at end of horizontal brace (j-end).

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

BOOL bMinAxisBendFixedEnd X Minor axis bending release at end of horizontal brace (j-end).

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

BOOL bSglAngleLongLegHorizontal Applies to a steel horizontal brace that has been assigned a single anglesection. TRUE indicates that the long leg of the angle is horizontal. FALSEindicates that the long leg is vertical.

BOOL bTorFixedEnd X Torsion release at end of horizontal brace (j-end).

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

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

ETensionCompressionMemType eAnalysisType X Indicates whether horizontal brace takes tension, compression, or both

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

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

long lMaterialID X Unique ID of material properties for this horizontal brace. Must correspond totype of material. See section Getting material properties for a member formore information.

long lSectionID X Unique ID of concrete or ‘Other’ section assigned to this horizontal brace.See Assigning section properties to concrete members and Assigning sectionproperties to ‘Other’ members for more information.

long lUID X Unique ID of layout horizontal brace. This unique ID corresponds to the beamon the top story associated with this floor type, if any.

BSTR strSectionLabel X Label of the size or section property for this horizontal brace. Limited to 15characters. See Assigning sizes to steel members, Assigning sectionproperties to concrete members, and Assigning section properties to ‘Other’members for more information.

ILayoutHorizBraces

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

 

Add ([in] EMATERIALTYPES eMat, [in]double dStartSupportX, [in] double dStartSupportY, [in]double dStartSupportZOffset,[i ]d bl dE dS tX [i ]d bl dE dS tY [i ]d bl dE dS tZOff t [ t t l] IL tH i B **

Page 92: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 92/450

[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 fromleft-to-right, top-to-bottom. If the coordinates are sent in opposite of the convention used by the RAM Structural System, they will bereversed.

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.

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 thefloor type that the layout horizontal brace is on.

Parameters lUID Unique ID of layout horizontal brace to deleteplRetval 0 if layout horizontal brace is deleted successfully

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

Filter  ([in] EHorizBraceFilter  eHorizBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout horizontal braces based on given criteria.

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

-1 if collection could not be filtered

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

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

Page 93: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 93/450

Parameters lUID The unique ID of the requested layout horizontal braceppILayoutHorizBrace Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace, or NULL if no

layout horizontal brace is found in the collection with the given unique ID.

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

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

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

invalid.

GetCount ([out, retval] long* plCount)

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

Parameters plCount Number of layout horizontal braces in the collection

ILayoutIsolatedFnd

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

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

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

Parameters 

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

Page 94: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 94/450

foundation, this pointer will be NULL.

GetLayoutCoordinates ([out] double *pdX, [out] double *pdY, [out] double *pdZOffset, [out, retval] long* plRetval)

Gets the coordinates of the layout isolated foundation.

Parameters pdX X coordinate of the center of the footingpdY Y coordinate of the center of the footingpdZTopOffset Z offset value from the story elevation for the top of the footingplRetval 0 if successful

-1 if coordinates cannot be retrieved

GetReinforcement ([out, retval] SFND_ISO_REINF* pVal)

Gets reinforcement information for isolated footing.

Parameters pVal Structure for islolated footing information. See SFND_ISO_REINF.

GetReinforcementOtherData ([out, retval] SFND_REINF_OTHER_DATA* pVal)

Information for isolated foundation reinforment.

Parameters pVal Structure for additional reinforment information. See SFND_REINF_OTHER_DATA.

SetLayoutCoordinates ([in] double dX, [in] double dY, [in] double dZOffset, [out, retval] long* plRetval)

Sets the coordinates of the layout isolated foundation.

Parameters dX X coordinate of the center of the footingdY Y coordinate of the center of the footingdZTopOffset Z offset value from the story elevation for the top of the footingplRetval 0 if successful

-1 if coordinates cannot be set

PropertiesType Property Get Set Description

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

Page 95: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 95/450

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

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

double dLeft X X Dimension from center of foundation to left edge of footing when footing major axis is parallel toglobal X-axis

double dOrientation X X Orientation of foundation

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

global X-axisdouble dThickness X X Thickness of foundation

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

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

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

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.

long lPileConfigurationID X X ID of pile configuration assigned to this foundation; only applies if eType is EFndPileCap. Fromthe IModel interface, call GetPileConfiguration() using this ID to get the interface for the pileconfiguration associated with this pile cap footing.

long lPileID X X ID of pile type assigned to this foundation; only applies if eType is EFndPileCap. From the IModelinterface, call GetPile() using this ID to get the interface for the pile definition associated with thispile cap footing.

long lUID X Unique ID of layout foundation.

ILayoutIsolatedFnds

This interface represents a collection of isolated foundations (foundations that sit under a single column) associated with a floor type.This collection is used to add or delete isolated foundations on a floor type. (Foundations cannot be added or deleted for a story

through the IIsolatedFnds interface, so this is the only interface through which isolated foundations can be added or deleted from themodel.)

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

 Adds a new layout isolated foundation to the collection of layout isolated foundations for the floor type.

Parameters eType 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 footingdZOffset Z offset value from the story elevation for the top of the footingppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the newly added layout isolated foundation.

Page 96: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 96/450

pp y y p y y

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

Deletes the layout isolated foundation with the given unique ID.

Parameters lUID Unique ID of layout isolated foundation to deleteplRetval 0 if layout isolated foundation is deleted successfully

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

Filter  ([in] EIsolatedFndFilter  eIsolatedFndFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout isolated foundations based on given criteria.

Parameters eIsolatedFndFilter Indicates the type of filter to use on the collection (see table below for filter types)

varFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

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

Parameters lUID The unique ID of the requested layout isolated foundationppILayoutIsolatedFnd Pointer to an ILayoutIsolatedFnd interface that represents the requested layout isolated foundation, or NULL if no

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

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

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

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

lIndex is invalid.

 GetCount ([out, retval] long* plCount)

Page 97: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 97/450

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

Parameters plCount Number of layout isolated foundations in the collection

ILayoutMatFndPerim

Future interface.

ILayoutMatFndPropPoly

Future interface.

ILayoutWall

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

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

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

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

GetLayoutCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdStartZTopOffset, [out]double*pdStartZBotOffset, [out] double *pdEndX, [out] double *pdEndY, [out] double *pdEndZTopOffset, [out]double *pdEndZBotOffset,[out, retval] long* plRetval)

 Gets the coordinates of the layout wall.

Page 98: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 98/450

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

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 theconvention used by the RAM Structural System, they will be reversed.

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

PropertiesWhen a property is set through the ILayoutWall interface, all columns represented by this interface will be updated.

Type Property Get Set Description

Type Property Get Set Description

double dCrackedFactor X Membrane cracked factor. Applies if wall is concrete.

double dCrackedFactorForBending X X Out-of-plane bending cracked factor. Applies if wall is concrete.

Page 99: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 99/450

double dThickness X Thickness of wall.

EFRAMETYPE eFramingType X X Whether member is lateral or gravity

EMATERIALTYPES eMaterial X Material type of wall. Valid options for walls are EWallPropConcreteMat orEWallPropOtherMat.

long lFrameNumber X Frame number for lateral members. Must be positive number.

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

long lMaterialID X Unique ID of material properties for this wall. Must correspond to type of material. Seesection Getting material properties for a member for more information.

long lUID X Unique ID of layout wall. This unique ID corresponds to the wall on the top story associatedwith this floor type, if any.

ILayoutWalls

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

be added or deleted from the model.)

Add ([in] EMATERIALTYPES eMat, [in]double dStartX, [in] double dStartY, [in]double dStartZTopOffset, [in]doubledStartZBotOffset, [in]double dEndX, [in]double dEndY, [in]double dEndZTopOffset, [in]double dEndZBotOffset, [in]doubledThickness, [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 StructuralSystem, 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.

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 wallppILayoutWall Pointer to an ILayoutWall interface that represents the newly added layout wall.

Page 100: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 100/450

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 layoutwall is on.

Parameters lUID Unique ID of layout wall to deleteplRetval 0 if layout wall is deleted successfully

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

Filter  ([in] EWallFilter  eWallFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of layout walls based on given criteria.

Parameters 

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

-1 if collection could not be filtered

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

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

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 inthe collection with the given unique ID.

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

Gets an interface for a specific layout wall by index.

Parameters lIndex The index into the collection of the requested layout wallppILayoutWall Pointer to an ILayoutWall interface that represents the requested layout wall, or NULL if lIndex is invalid.

 GetCount ([out, retval] long* plCount)

Page 101: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 101/450

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 wallson the floor type.

Parameters plCount Number of layout walls in the collection

ILineLoadPropertySet

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

PropertiesType Property Get Set Description

double dConstDeadLoad X X Construction Dead load (positive is down)

double dConstLiveLoad X X Construction Liveload (positive is down)

double dDeadLoad X X Dead load magnitude (positive is down)double dLiveLoad X X Live load magnitude (positive is down)

double dMassDeadLoad X X Mass dead load magnitude (positive is down)

double dPartitionLoad X X Partion load magnitude (positive is down)

ELoadCaseType  eLiveLoadType X X The live load case type (MUST BE A LIVE LOAD TYPE)

long lUID X Unique ID of property set

BSTR strLabel X X Label of the property set. Limited to 19 characters.

ILineLoadPropertySets

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

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

 Adds a new line load property set to the collection.

Parameters bstrLabel 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

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

Page 102: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 102/450

Deletes a line load property set.

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 l ine load set. 

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

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

Parameters lUID Unique ID of the requested line load property setppILineLoadPropSet Pointer to an ILineLoadPropertySet interface that represents the requested line load property set, or NULL if no

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

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

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

Parameters lIndex Index of the requested line load property setppILineLoadPropSet Pointer to an ILineLoadPropertySet interface that represents the requested line load property set, or NULL if

lIndex is invalid.

GetCount([out, retval] long *plCount)

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

Parameters plCount Number of line load property sets in the collection

ILineLoadSet

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

Page 103: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 103/450

stories, a line load set may actually represent load sets on multiple stories. This interface can be used to modify the location andproperties of a line load set.

PropertiesType Property Get Set Description

long lPropertySetUID X X The UID of the LineLoadPropertySet associated with the line load set

long lUID X Unique ID of the Line Load SetSCoordinate  sCoordinateEnd X X Location of end of the line load (only X and Y are used)

SCoordinate  sCoordinateStart X X Location of start of the line load (only X and Y are used)

ILineLoadSets

This interface represents a collection of line load sets associated with a floor type. This collection is used to add or delete line loadsets 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 inRAM Modeler.

Add ([in] long lPropSetID, [in]double dStartX, [in] double dStartY, [in]double dEndX, [in]double dEndY, [out,retval] ILineLoadSet**ppILineLoadSet )

 Adds a new line load set to the collection of line load sets for the floor type.

Parameters lPropSetID Unique ID of point load property set associated with this point load setdStartX X coordinate of the start of the line load setdStartY Y coordinate of the start of the line load setdEndX X coordinate of the end of the line load set

dEndY Y coordinate of the end of the line load setppILineLoadSet Pointer to an ILineLoadSet interface that represents the newly added line load set.

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

Deletes the line load set with the given unique ID.

Parameters lUID Unique ID of line load set to deleteplRetval 0 if line load set is deleted successfully

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

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

Page 104: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 104/450

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

Parameters lUID Unique ID of the requested line load setppILineLoadSet Pointer to an ILineLoadSet interface that represents the requested line load set, or NULL if no line load set is found in

the collection with the given unique ID.

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

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

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

GetCount([out, retval] long *plCount) 

Gets the number of line load sets in the collection.

Parameters plCount Number of line load sets in the collection

ILoadCase

This interface represents a single load case definition.

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

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

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

Properties

Type Property Get Set Description

BOOL bConcShearWallSelected X X Whether the load case selected for use in concrete shear wall loadcombinations. TRUE = selected.

BOOL bReadOnly X Whether the properties of this load case can be modified

Page 105: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 105/450

BOOL bReadOnly X Whether the properties of this load case can be modified

double dDirCoeffX X Directional coefficient of load case for x component of the force associatedwith the load case. This is used by the load combo generator.1.0 = force in the positive x direction.0.0 = no force in the x direction.-1.0 = force in the negative x direction. 

double dDirCoeffY X Directional coefficient of load case for y component of the force associated

with the load case. This is used by the load combo generator.1.0 = force in the positive y direction.0.0 = no force in the y direction.-1.0 = force in the negative y direction. 

double dLoadCaseAngle X Angle of the shear force at the base level of the structure. This angle is usedto calculate the components of the notional load case when used incombination in the direction of other lateral load cases.

double dRhomax X r max associated with controlling rho double dUBCRho X Redundancy factor calculated for the load case. This is only relevant for

seismic load cases.

EStateStatus  eAnalyzedState X Whether Load Case is analyzed/current

ECompoundLoadCaseState  eCompoundState X Whether this is merged/compound load case (made up of other load cases)

EMergeState  eLdCaseMergeState X Flag describing the merged state of the load case (single, merged orincluded in a merged case).

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

ELoadCaseType  eNotionalLoadType X Notional load case type

ESubLoadCaseType  eSubLoadType X Depending on load type defines more details of the actual type of load case.

long lAnalyzeNo X

long lDirCoeffX X

long lDirCoeffY X

long lLoadType X

long lSubLoadType X

long lUID X Unique ID of load caseBSTR strLoadCaseGroupLabel X X The label assigned to the load case at the top of the load case generatordialog, applies to one or more load cases. Limited to 15 characters.

BSTR strSymbol X The load case symbol (1-3chars) for reports/combos

BSTR strTypeLabel X The generated name for the specific load case depending on user optionsduring generation. When used together with strLoadCaseGroupLabel ituniquely identifies this load case.

ILoadCases

This interface represents a collection of load cases.

Page 106: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 106/450

Filter  ([in] ELoadCaseFilter  eLoadCaseFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of load combinations based on given criteria.

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

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

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

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 givenunique ID is found in the collection.

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

Gets an interface for a specific load case by index.

Parameters lIndex The index into the collection of the requested load caseppILoadCase Pointer to an ILoadCase interface that represents the requested load case, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of load cases in the collection.

Parameters plCount Number of load cases in the collection

ILoadCombinat ion

This interface represents a single load combination definition.

Page 107: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 107/450

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

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

Parameters 

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

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

Gets the collection of load combination terms for the load combination.

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

combination.

PropertiesType Property Get Set Description

BOOL bReadOnly X Whether this load combination can be modified or not

BOOL bSelected X X User has selected this load combination to be considered

EStateStatus  eStatus X Combination is valid (all load cases/factors exist in analyzed state)

ECombinationSourceType  eType X Custom or Generated

long lLabelNo X The label of the load combination as shown in the load combo dialog

BSTR strDisplayString X The combination string formatted for display

ILoadCombinat ionParam

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

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

Returns a pointer to an ILoadComboParamsCntrl1 interface.

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

set of load combinations.

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

Page 108: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 108/450

Returns a pointer to an ILoadComboParamsCntrl1 interface.

Parameters ppIParamsCntrl3 Pointer to an ILoadComboParamsCntrl3 interface that contains the control 3 parameters used to generate a specific

set of load combinations.

PropertiesType Property Get Set Description

BOOL bCntl4LCaseSpcSetting X The radio button selection for control 4. TRUE = “Use Calculated” 

BOOL bCntl4UseOnly X Indicates whether the selected code has calculated values associated with it. If thisbCntrl4UseOnly = FALSE, the “Use Calculated” radio button selection is grayed out.  

double dCntl4LCaseSpc1 X First value associated with control 4.

double dCntl4LCaseSpc2 X Second value associated with control 4.

COMBO_MATERIAL_TYPE eCombinationType X The type of combination parameters are requested for. Note that parameters are onlysaved for code generated combinations.

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

long nComboBox5Index X Index of the selection for control 5 (drop-down combo box)long nNumVarsFor2 X Number of possible variables associated with each drop-down selection in control 2.

long nNumVarsFor5 X Number of possible variables associated with each drop-down selection in control 5.

BSTR strComboTemplateName X Name of the template for which combinations were generated. This string must matchthe NAME: entry in the combo template.

ILoadCombinat ionParams

This interface represents a collection of  ILoadCombinationParam objects.

Add ([in] BSTR bstrTemplateName, [in] long nComboBox2Index, [in] long nNumVarsFor2, [in] long nComboBox5Index, [in] longnNumVarsFor5, [in] BOOL bCntl4UseOnly, [in] BOOL bCntl4LCaseSpcSetting, [in] double dCntl4LCaseSpc1, [in] doubledCntl4LCaseSpc2, [out,retval] ILoadCombinationParam** ppIComboParams)

 Adds a new load combination param to the receiver.

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

the combo template.

nComboBox2Index Index of the selection for control 2 (drop-down combo box)nNumVarsFor2 Number of possible variables associated with each drop-down selection in control 2.nComboBox5Index Index of the selection for control 5 (drop-down combo box)nNumVarsFor5 Number of possible variables associated with each drop-down selection in control 5

Page 109: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 109/450

nNumVarsFor5 Number of possible variables associated with each drop down selection in control 5.bCntl4UseOnly Indicates whether the selected code has calculated values associated with it. If this bCntrl4UseOnly =

FALSE, the “Use Calculated” radio button selection is grayed out.bCntl4LCaseSpcSetting The radio button selection for control 4. TRUE = “Use Calculated” dCntl4LCaseSpc1 First value associated with control 4.dCntl4LCaseSpc2 Second value associated with control 4.

ppIComboParams Pointer to an ILoadCombinationParam interface that represents the newly added load combinationparam.

Clear ()

Deletes all load combination params from the collection.

Delete ([in] long lUID)

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

Parameters lUID Unique ID of the laod combination param being deleted

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

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

Parameters eCombinationType The combination type of the requested load combination param.ppIComboParams Pointer to an ILoadCombinationParam interface that represents the requested load combination param, or NULL if

no load combination param is found in the collection with the given combination type.

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

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

Parameters lIndex The index in the collection the requested load combination param.ppIComboParams Pointer to an ILoadCombinationParam interface that represents the requested load combination param, or

NULL if lIndex is invalid.

 GetCount ([out, retval] long *plCount) 

G t th b f l d bi ti i th i

Page 110: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 110/450

Gets the number of load combination params in the receiver.

Parameters plCount The number of ILoadCombinationParam objects in the collection.

ILoadCombinat ions

This interface represents a collection of load combinations.

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

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

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

Clear  ()

Deletes all load combinations in the collection.

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

Deletes a load combination in the collection at the specified index.

Parameters lIndex 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.

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

plRetval 0 if successful-1 if collection could not be filtered

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

Page 111: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 111/450

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

Gets an interface for a specific load combination by index.

Parameters lIndex The index into the collection of the requested load combinationppILoadCombination Pointer to an ILoadCombination interface that represents the requested load combination, or NULL if lIndex is

invalid.

GetCount ([out, retval] long* plCount)

Gets the number of load combinations in the collection.

Parameters plCount Number of load combinations in the collection

MSIWorkaround_ ILoadComboInternal _DO_NOT_CALL ()

Internal use only.

ILoadCombinat ionTerm

This interface represents a single load combination term.

PropertiesType Property Get Set Descriptiondouble dFactor X Factor to apply to the load case

long lLoadCaseID X The Unique ID of the load case

long lLoadCaseIndex X Index of the load case into the load case array.

ILoadCombinat ionTerms

This interface represents a collection of load combination terms for a single load combination. The load combination string is limitedto 254 characters. Hence, the maximum number of terms in a load combination can vary.

 

Add ([in] double dFactor, [in] long lLoadCaseUID, [out, retval] ILoadCombinationTerm** ppILoadCombinationTerm)

Adds a new load combination term to the end of the collection

Page 112: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 112/450

 Adds a new load combination term to the end of the collection.

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

AddWithIndex ([in] double dFactor, [in] long lLoadCaseUID, [in] long lLoadCaseIndex, [out, retval] ILoadCombinationTerm**ppILoadCombinationTerm)

 Adds a new load combination term with the given load case index to the end of the collection.

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

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

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

Parameters lIndex Index at which to delete term

plRetVal 0 if deleted successfully 

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

Gets an interface for a specific load combination term by index.

Parameters lIndex The index into the collection of the requested load combination termppILoadCombinationTerm Pointer to an ILoadCombinationTerm interface that represents the requested load combination term, or NULL if

lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of load combination terms in the collection.

Parameters plCount Number of load combination terms in the collection

Page 113: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 113/450

p

InsertAt ([in] long lIndex, [in] double dFactor, [in] long lLoadCaseUID, [out, retval] ILoadCombinationTerm**ppILoadCombinationTerm)

 Adds a new load combination term to the collection at the specified index.

Parameters lIndex 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

ILoadComboInternal

Internal use only.

ILoadComboParamCntr l1

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

PropertiesType Property Get Set Description

double dVarValue X Value of the parameter.long lParamID X ID that associates the control 1 parameter back to the ILoadCombinationParam

BSTR strVarName X Variable name associated with this parameter value. This is the variable displayed by the load combo generator in thecontrol 1 grid.

ILoadComboParamCntr l3

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

 

PropertiesType Property Get Set Description

BOOL bVarValue X X State of the check box. TRUE = Checked.

Page 114: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 114/450

BOOL bVarValue X X State of the check box. TRUE Checked.

long lParamID X ID that associates the control 1 parameter back to the ILoadCombinationParam

BSTR strVarName X X String displayed beside the check box in the load combo generator control 3 grid.

ILoadComboParamsCntr l1

This interface represents a collection of  ILoadComboParamCntrl1 objects.

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

 Adds a new control 1 load combination param to the receiver.

Parameters bstrVarName Variable name associated with this parameter value. This is the variable displayed by the load combo

generator in the control 1 grid.

dVarValue Value of the parameter.ppIParamCntrl1 Pointer to an ILoadComboParamCntrl1 interface that represents the newly added control 1 load

combination param.

Clear ()

Deletes all control 1 load combination params from the collection.

Delete ([in] long lIndex)

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

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

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

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

Parameters 

lIndex The index in the collection the requested control 1 load combination param.ppIParamCntrl1 Pointer to an ILoadComboParamCntrl1 interface that represents the requested control 1 load combination

param, or NULL if lIndex is invalid.

Page 115: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 115/450

GetCount ([out, retval] long *plCount) 

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

Parameters 

plCount The number of ILoadComboParamCntrl1 objects in the collection.

ILoadComboParamsCntr l3

This interface represents a collection of  ILoadComboParamCntrl3 objects.

Add ([in]BSTR bstrVarName, [in] BOOL bVarValue, [out, retval] ILoadComboParamCntrl3** ppIParamCntrl3)

 Adds a new control 3 load combination param to the receiver.

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

combination param.

Clear ()

Deletes all control 3 load combination params from the collection.

Delete ([in] long lIndex)

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

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

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

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

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

Page 116: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 116/450

ppIParamCntrl3 Pointer to an ILoadComboParamCntrl3 interface that represents the requested control 3 load combinationparam, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

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

Parameters plCount The number of ILoadComboParamCntrl3 objects in the collection.

IMatFndPerim

Future interface.

IMatFndPropPoly

Future interface.

IMemberForce

This interface represents a single member force.

PropertiesType Property Get Set Description

double dAxial X Axial force (kip) – Positive is compression. FZ for reactions.

double dLocation X Normalized location along member (0.0-1.0) where force is applied (N/A for section cuts andreactions).

double dMomentMajor X Moment about the minor axis (in direction of major axis)*. MXX for global reactions.

double dMomentMinor X Moment about the major axis (in direction of minor axis)*. MYY for global reactions.

double dShearMajor X Shear in direction of Major axis of member*. FX for reactions.

double dShearMinor X Shear in direction of Minor axis of member*. FY for reactions.

double dTorsion X Torsion about the longitudinal axis of the member*. MZZ for reactions.

Type Property Get Set Description

long lLoadCaseID X Unique ID analysis load case responsible for this force

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

Page 117: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 117/450

IMemberForces

This interface represents the collection of forces in a member.

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

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

Parameters lLoadCaseID The load case ID 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.

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

Gets an interface for a specific member force by index.

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.

GetCount ([out, retval] long* plCount)

Gets the number of member forces in the collection.

Parameters plCount Number of member forces in the collection

IModel

The IModel interface is the highest level in the hierarchy of interfaces. It represents the RAM Structural System model. Entities suchas section definitions and floor types that are global to the model can be accessed through this interface. Other entities, such asdecks or beams which belong to a specific floor type can be accessed through this interface using the entity’s unique ID

Page 118: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 118/450

decks or beams, which belong to a specific floor type, can be accessed through this interface using the entity s unique ID.

ClearOldSWResults ([in] BOOL bClearForces, [in] BOOL bClearResults)

Deletes Shear Wall results. This is designed to be used after a model is converted, and is called automatically by RAM Structural System; it

should not be called by external programs.

Parameters bClearForces Flag that indicates whether Shear Wall forces should be cleared.bClearResults Flag that indicates whether other Shear Wall results should be clear.

ClearSWData ([in] BOOL bIncludeSettings)

Clear all RAM Concrete Shear Wall-releated data from the model. You must call this (with bIncludeSettings set to FALSE) any time youmodify the geometry of the model using RAM Data Access. (This requirement will go away in a future release.)

Parameters bIncludeSettings Flag that indicates whether settings (criteria) should also be cleared.

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

Gets an interface for a beam.

Parameters lUID Unique ID of beam to retrieveppIBeam Pointer to an IBeam interface that represents the requested beam

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

Gets an interface for a column.

Parameters lUID Unique ID of column to retrieveppIColumn Pointer to an IColumn interface that represents the requested column

GetColumnStack ([in] long lColumnID, [out, retval] IColumnStack** ppIColumnStack)

 Gets an interface for a column stack given the unique ID of any column in the stack.

Parameters lC l ID U i ID f l f hi h t t i l t k

Page 119: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 119/450

lColumnID Unique ID of column for which to retrieve column stackppIColumnStack Pointer to an IColumnStack interface that represents the requested column stack

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

Gets an interface for a specific composite deck property.

Parameters lUID Unique ID of composite deck property to retrieveppICompDeckProp Pointer to an ICompDeckProp interface that represents the requested composite deck property

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

Gets the collection of all composite deck properties defined for this model.

Parameters ppICompDeckProps Pointer to an ICompDeckProps collection interface that represents all composite deck properties defined in the

model

GetConcreteCriteria ([out, retval] IConcreteCriteria** ppIConcreteCriteria )

Gets an interface for the concrete criteria applied to the model.

Parameters ppIConcreteCriteria Pointer to an IConcreteCriteria interface that represents all concrete criteria for the model

GetConcreteMaterial ([in] long lUID, [out, retval] IConcreteMaterial** ppIConcreteMaterial)

Gets an interface for a specific concrete material property set.

Parameters lUID Unique ID of concrete material property set to retrieveppIConcreteMaterial Pointer to an IConcreteMaterial interface that represents the requested concrete material property set

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

Gets an interface for a specific concrete section property.

 Parameters lUID Unique ID of concrete section property to retrieveppIConcSectProp Pointer to an IConcSectProp interface that represents the requested concrete section property

Page 120: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 120/450

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

Gets the collection of all concrete section properties for this model.

Parameters ppIConcSectProps Pointer to an IConcSectProps collection interface that represents all concrete section properties defined in the model

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

Gets an interface for a specific concrete slab property.

Parameters lUID Unique ID of concrete deck property to retrieveppIConcSlabProp Pointer to an IConcSlabProp interface that represents the requested concrete slab property

GetConcreteSlabProps ([out, retval] IConcSlabProps** ppIConcreteSlabProps) Gets the collection of all concrete slab properties defined for this model.

Parameters ppIConcSlabProps Pointer to an IConcSlabProps collection interface that represents all concrete slab properties defined in the model

GetConcShearWallCriteria ([out,retval] IConcShearWallCriteria** ppIConcShearWallCriteria)

Gets an interface for Shear Wall criteria in the model.

Parameters ppIConcShearWallCriteria Pointer to an IConcShearWallCriteria interface that represents the RAM Concrete Shear Wall criteria for themodel.

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

Gets an interface for a continuous foundation.

Parameters lUID Unique ID of continuous foundation to retrieve

ppIContinuousFnd Pointer to an IContinuousFnd interface that represents the requested continuous foundation

GetCouplingBeamCriteria ([out, retval] ICouplingBeamCriteria** ppICouplingBeamCriteria)

Page 121: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 121/450

Gets an interface to the the global coupling beam criteria.

Parameters ppICouplingBeamCriteria Pointer to an ICouplingBeamCriteria interface that represents the global coupling beam criteria.

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

Gets an interface for a deck definition.

Parameters lUID Unique ID of deck definition to retrieveppIDeck Pointer to an IDeck interface that represents the requested deck definition

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

Gets an interface for a specific floor type.

Parameters lUID Unique ID of floor type to retrieveppIFloorType Pointer to an IFloortype interface that represents requested floor type

GetFloorTypes ([out, retval] IFloorTypes** ppIFloorTypes) 

Gets the collection of all floor types in the model, even those that may not be used by any stories.

Parameters ppIFloorTypes Pointer to an IFloorTypes collection interface that represents all floor types in the model

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

Gets an interface for the frame analysis criteria applied to the model.

Parameters ppIFrameAnalysisCriteria Pointer to an IFrameAnalysisCriteria interface that represents the frame analysis criteria for the model

GetFrameAnalysisNodes ([out, retval] INodes** ppINodes)

 Gets an interface for the frame analysis nodes in the model.

Parameters ppINodes Pointer to an INodes interface that represents the frame analysis nodes for the model

Page 122: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 122/450

ppINodes Pointer to an INodes interface that represents the frame analysis nodes for the model

GetGenericTable ([in] BSTR bstrTableName, [out, retval] ITable **ppITable)

Gets an interface to a generic data table. Generic tables can be used to hold any arbitrary data.

Parameters bstrTableName The name of the data table.ppITable Pointer to an ITable interface that represents the generic table.

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

Gets an interface for a grid system.

Parameters lUID Unique ID of grid system to retrieveppIGridSystem Pointer to an IGridSystem interface that represents the requested grid system

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

Gets the collection of all grid systems defined for this model.

Parameters ppIGridSystems Pointer to an IGridSystems collection interface that represents all grid systems defined in the model

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

Gets an interface for a horizontal brace.

Parameters lUID Unique ID of horizontal brace to retrieveppIHorizBrace Pointer to an IHorizBrace interface that represents the requested horizontal brace

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

Gets an interface for an isolated foundation.

 Parameters lUID Unique ID of isolated foundation to retrieveppIIsolatedFnd Pointer to an IIsolatedFnd interface that represents the requested isolated foundation

Page 123: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 123/450

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

Gets an interface for a layout beam.

Parameters lUID Unique ID of layout beam to retrieveppILayoutBeam Pointer to an ILayoutBeam interface that represents the requested layout beam

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

Gets an interface for a layout column.

Parameters lUID Unique ID of layout column to retrieve

ppILayoutColumn Pointer to an ILayoutColumn interface that represents the requested layout column

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

Gets an interface for a layout continuous foundation.

Parameters lUID Unique ID of layout continuous foundation to retrieveppILayoutContinuousFnd Pointer to an ILayoutContinuousFnd interface that represents the requested layout continuous foundation

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

Gets an interface for a layout horizontal brace.

Parameters lUID Unique ID of layout horizontal brace to retrieveppILayoutHorizBrace Pointer to an ILayoutHorizBrace interface that represents the requested layout horizontal brace

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

Page 124: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 124/450

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

Gets a collection interface of all load cases for a specific analysis type.

Parameters 

Page 125: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 125/450

eAnalysisType Type of anlaysis for which to get load cases. As of v10.0, only implemented for RAMFrameResultTypeppILoadCases Pointer to an ILoadCases collection interface that represents load cases for specified analysis type

GetLoadCombinations ([in] COMBO_MATERIAL_TYPE eCombinationsType, [out, retval] ILoadCombinations**

ppILoadCombinations) Gets a collection interface of all load combinations for a specific load combo type.

Parameters eCombinationsType Type of load combinations to getppILoadCombinations Pointer to an ILoadCombinations collection interface that represents load combinations for specified combo type

GetLoadComboParameters [in] COMBO_MATERIAL_TYPE eCombinationsType, [out,retval] ILoadCombinationParams**ppILoadComboParams)

Gets an interface load combination parameters in the model.

Parameters eCombinationsType Indicates the load combination type (generated soil, custom concrete…). See COMBO_MATERIAL_TYPE for list

of options.ppILoadComboParams Pointer to an ILoadCombinationParams interface that represents the load combinations parameters for the model.

GetMatFndPerimeter  ([in] long lUID, [out, retval] IMatFndPerim** ppIMatFndPerim)

Gets an interface for a mat foundation perimeter.

Parameters lUID Unique ID of the mat foundation perimeter to retrieveppIMatFndPerim Pointer to an IMatFndPerim interface that represents the requested mat foundation perimeter

GetMatFndPropPolygon  ([in] long lUID, [out, retval] IMatFndPropPolygon** ppIMatFndPropPolygon)

Gets an interface for a layout mat foundation property polygon.

Parameters lUID Unique ID of the mat foundation property polygon to retrieve

ppItMatFndPropPolygon Pointer to an IMatFndPropPolygon interface that represents the requested mat foundationproperty polygon

GetNonCompDeckProp ([in] long lUID, [out, retval] INonCompDeckProp** ppINonCompDeckProps) 

Page 126: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 126/450

Gets an interface for a specific non-composite deck property.

Parameters lUID Unique ID of non-composite deck property to retrieveppINonCompDeckProps Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property

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

Gets the collection of all non-composite deck properties defined for this model.

Parameters ppINonCompDeckProps Pointer to an INonCompDeckProps collection interface that represents all non-composite deck properties defined

in the model

GetOldSWResultsDeletedFlag ()

Internal use only.

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

Gets an interface for a specific ‘Other’ material property set.

Parameters lUID Unique ID of ‘Other’ material property set to retrieve ppIOtherMaterial Pointer to an IOtherMaterial interface that represents the requested ‘Other’ material property set  

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

Gets an interface for a specific ‘Other’ section property.

Parameters lUID Unique ID of ‘Other’ section property to retrieve  ppIOtherSectProp Pointer to an IOtherSectProp interface that represents the requested ‘Other’ section property  

GetOtherSectionProps ([out, retval] IOtherSecProps** ppIOtherSectProps) 

Gets the collection of all section properties of material type ‘Other’ for this model.

 Parameters ppIOtherSectProps Pointer to an IOtherSectionProps collection interface that represents all ‘Other’ section properties defined in the model

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

Page 127: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 127/450

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

Gets an interface for a pile definition.

Parameters 

lUID Unique ID of pile definition to retrieveppIPile Pointer to an IPile interface that represents the requested pile

GetPileConfiguration ([in] long lUID, [out, retval] IPileConfiguration** ppIPileConfiguration)

Gets an interface for a pile configuration definition.

Parameters lUID Unique ID of pile configuration definition to retrieveppIPileConfiguration Pointer to an IPileConfiguration interface that represents the requested pile configuration

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

Gets the collection of all pile configuration definitions for this model. Pile configurations can be associated with pile caps.

Parameters ppIPileConfigurations Pointer to an IPileConfigurations collection interface that represents all pile configurations defined in the model

GetPiles ([out, retval] IPiles** ppIPiles) 

Gets the collection of all pile definitions for this model. Piles can be associated with pile caps.

Parameters ppIPiles Pointer to an IPiles collection interface that represents all piles defined in the model

GetPointLoadPropertySets ([out,retval] IPointLoadPropertySets** ppPointLoadPropertySets) 

Gets the collection of all point load property sets for this model. Point load property sets are associated with point load sets.

Parameters ppPointLoadPropertySets Pointer to an IPointLoadPropertySets collection interface that represents all point load property sets defined in

the model

 

GetRAMFrameCriteria ([out,retval] IRAMFrameCriteria** ppIRAMFrameCriteria) 

Gets the RAM Frame criteria for the model. 5.03.

Page 128: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 128/450

Parameters ppIRAMFrameCritieria Pointer to an IRAMFrameCriteria interface that represents the RAM Frame criteria defined in the model

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

Gets an interface for a raw wall opening.

Parameters lUID Unique ID of wall opening to retrieveppIRawWallOpening Pointer to an IRawWallOpening interface that represents the requested wall opening

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

Gets an interface for a raw wall section cut.

Parameters lUID Unique ID of wall section cut to retrieveppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested wall section cut

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

Gets a collection interface of all raw wall section cuts for the model, not just for an individual wall.

Parameters ppIRawWallSectionCuts Pointer to an IRawWallSectionCuts collection interface that represents all raw wall section cuts in the model.

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

Gets an interface for a slab opening.

Parameters lUID Unique ID of slab opening to retrieveppISlabOpening Pointer to an ISlabOpening interface that represents the requested slab opening

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

 Gets an interface for a slab perimeter.

Parameters lUID Unique ID of slab perimeter to retrieve

Page 129: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 129/450

lUID Unique ID of slab perimeter to retrieveppISlabPerimeter Pointer to an ISlabPerimeter interface that represents the requested slab perimeter

GetSnowLoadPropertySet ([in] LONG lUID, [out, retval] ISnowLoadPropertySet **ppISnowLoadPropertySet)

Gets an interface to the collection of steel column trial groups.

Parameters lUID Unique ID for the snow load propertyppISnowLoadPropertySet Pointer to an ISnowLoadPropertySet interface that represents the snow load property

GetSnowLoadPropertySets [out, retval] ISnowLoadPropertySets **ppISnowLoadPropertySets)

Gets an interface to the collection of snow load property sets in the model.

Parameters ppISnowLoadPropertySets Pointer to an ISnowLoadPropertySets interface that represents the snow load property

sets in the model.

GetSteelColumnTrialGroups ([in] BOOL bHangingColumn, [out, retval] ITrialGroups** ppITrialGroups)

Gets an interface to the collection of steel column trial groups.

Parameters bHangingColumn 1 for hanging column trial groups and 0 for standard columnsppILoadComboParams Pointer to an ITrialGroups interface that represents the steel column trial groups in the model.

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

Gets an interface for the steel criteria applied to the model.

Parameters ppISteelCriteria Pointer to an ISteelCriteria interface that represents all steel criteria for the model

GetSteelMaterial ([in] long lUID, [out, retval] ISteelMaterial** ppISteelMaterial) 

Gets an interface for a specific steel material property set.

Parameters lUID Unique ID of steel material property set to retrieveppISteelMaterial Pointer to an ISteelMaterial interface that represents the requested steel material property set

Page 130: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 130/450

pp p q p p y

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

Gets the collection of all stories in the model.

Parameters ppIStories Pointer to an IStories collection interface that represents all stories in the model

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

Gets an interface for a specific story.

Parameters lUID Unique ID of story to retrieveppIStory Pointer to an IStory interface that represents requested story

GetSurfaceLoadPropertySets ([out,retval] ISurfaceLoadPropertySets **ppSurfaceLoadPropertySets)

Gets an interface to the surface load property sets in the model. These are the surface load properties defined in RAM Modeler.Parameters ppSurfaceLoadPropertySets Pointer to an ISurfaceLoadPropertySets interface that represents the surface load property sets for the

model.

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

Gets an interface for a vertical brace.

Parameters lUID Unique ID of vertical brace to retrieveppIVerticalBrace Pointer to an IVerticalBrace interface that represents the requested vertical brace

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

Gets the collection of all vertical braces in the model.

Parameters ppIVerticalBraces Pointer to an IVerticalBraces collection interface that represents all vertical braces in the model

 

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

Gets an interface for a wall.

Page 131: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 131/450

Parameters lUID Unique ID of wall to retrieveppIWall Pointer to an IWall interface that represents the requested wall

GetWallBarPatternTemplates ( [out, retval] WallBarPatternTemplates** ppWallBarPatternTempaltes )

Gets an interface for the collection of wall bar pattern templates.

Parameters ppWallBarPatternTemplates Pointer to a WallBarPatternTemplates interface that represents the

collection of wall bar patterns in the model

GetWallDesignGroups ([out,retval] IWallDesignGroups** ppIWallDesignGroups)

Gets a collection of all Wall Design Groups in the model.

Parameters ppIWallDesignGroups Pointer to an IWallDesignGroups interface that represents the wall design groups for the model.

MSIWorkaround_ IStringValue _DO_NO_CALL ()

Internal use only.

SetOrigin ([in] dX, [in] dY, [in] dZ)

 Alternate mechanism for setting the sOrigin property, for use in languages that cannot set that property directly. 1

Parameters dX X CoordinatedY Y CoordinatedZ Z Coordinate

PropertiesType Property Get Set Description

BOOL bCombineLoads X If TRUE, loads on beams were combined during gravity analysis.

Type Property Get Set Description

BOOL bIncludeBeamSelfWeight X X Beam self weight will automatically be considered if TRUE

BOOL bIncludeColSelfWeight X X Column self weight will automatically be considered if TRUE

BOOL bIncludeSlabSelfWeight X X Slab and deck self weight will automatically be considered if TRUE

BOOL bIncludeWallSelfWeight X X Wall self weight will automatically be considered if TRUE

BOOL bLLR dSt i I lR f X X If TRUE f l l ill b i l d d h d t i i b f t i

Page 132: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 132/450

BOOL bLLRedStoriesInclRoof X X If TRUE, roof levels will be included when determining number of stories

BOOL bLLRedStoriesInclStorLevels X X If TRUE, storage levels will be included when determining number of stories

BOOL bLLRedStoriesInclUnredLevels X X If TRUE, unreducible levels will be included when determining number of stories

BOOL bSkipMeshInGE X X Flag that determines whether or not to skip loading of the deck and slab mesheswhen loading the model into RAM Container. Setting this to TRUE will cause these

meshes not to be loaded during startup, and consequently will hide them.BOOL bSkipMeshInGEAsked X X Flag that indicates whether or not the user has been asked if mesh loading should

be skipped.

double dOriginAngle X X Property designed to be used purely by 3rd

-party import/export routines to recordthe model’s origin rotation angle. This value is not used by the RAM StructuralSystem, but is stored with the model.

double dVersion X Version of the Ram Structural System model

ECANImportanceCategory  eCANImpCategory X X Importance Category for Live Load Reduction when NBC of Canada is selected asthe Live Load Reduction code.

EBuildingCode  eCodeSelection X X Building code by which Live Load Reduction will be calculated

EUnits  eDisplayUnits X X Units (English, SI or Metric) to use when displaying model data in the RAMStructural System. All values passed through interfaces are assumed to be English

units. This is only to set units for display.ERoofLLType  eRoofLiveLoadType X X Indicates whether roof live loads are reducible or whether they are snow

EStateStatus  eStatusConcGravForces X Status of the Concrete analysis

EStateStatus  eStatusDataCheck X Status of data check

EStateStatus  eStatusGravForces X Status of RAM Gravity

EStateStatus  eStatusLatForces X Status of the Frame analysis

long lDataTimeStamp X Time stamp

long lGroundLevel X X Unique ID of story that is at ground level,

SCoordinate  sOrigin X X Property designed to be used purely by 3r 

-party import/export routines to recordthe model’s origin point. This value is not used by the RAM Structural System, butis stored with the model.

BSTR strJobName X X Text description of model that can be up to 71 characters

IModelGrid

This interface represents a single grid line.

PropertiesType Property Get Set Description

BOOL bApplyMaxLimit X X If TRUE, this grid maximum will be drawn limited to user coordinate.

Type Property Get Set Description

BOOL bApplyMinLimit X X If TRUE, this grid minimum will be drawn limited to user coordinate.

BOOL bDisplayLabelAtI X X If TRUE, the grid label bubble will be displayed at the I-end of the grid line.

BOOL bDisplayLabelAtJ X X If TRUE, the grid label bubble will be displayed at the J-end of the grid line.

double dCoordinate_Angle X X The grid coordinate or angle.

double dMaxLimitValue X X If bApplyMaxLimit is TRUE this is the maximum limit specified by user to which grid line will be drawn

Page 133: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 133/450

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.

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.

EGridAxis eAxis X The grid axis (X/Radial or Y/Circular).

long lUID X Unique ID of grid line.BSTR strLabel X X Grid label.

IModelGrids

This interface represents a collection of grid lines from a grid system.

Add ([in]BSTR bstGridLabel, [in] EGridAxis eGridAxis, [in] double dGridCoord_Angle, [out, retval] IModelGrid** ppIGrid)

 Adds a grid to the collection of grids for a grid system.

Parameters bstGridLabel Label for this grideGridAxis 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.

Parameters lUID Unique ID of grid to deleteplRetval 0 if grid is deleted successfully

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

Filter  ([in] EGridFilter  eGridFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of grids based on given criteria.

 Parameters eGridFilter 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

f f

Page 134: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 134/450

-1 if collection could not be filtered

Get ([in] long lUID, [out, retval] IModelGrid ** ppIGrid)

Gets an interface for a specific grid by unique ID.

Parameters lUID The unique ID of the requested grid lineppIGrid Pointer to an IModelGrid interface that represents the requested grid, or NULL if no grid is found in the collection

with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IModelGrid ** ppIGrid)

Gets an interface for a specific grid by index.

Parameters lIndex The index into the collection of the requested gridppIGrid Pointer to an IModelGrid interface that represents the requested grid, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of grids in the collection. When the collection is filtered, this function returns the number in the filtered collection, not thetotal number of grids in the grid system. When the collection is unfiltered, this function returns the total number of grids in the grid system.

Parameters 

plCount Number of grids in the collection

INode

This interface is used represent a finite element node.

PropertiesType Property Get Set Description

Type Property Get Set Description

LONG lIndex X The index of the node in the global node list.

LONG lUniqueID X The unique ID for the node.

SCoordinate sLocation X The location of the node in global model coordinates.

Page 135: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 135/450

INodes

This interface is used to hold a collection of  INode objects.

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

Gets number of INode objects in the collection.

Parameters plCount The number of INode objects in the collection.

GetAt ([in] long lIndex, [out, retval] INode** ppINode)

Gets the INode object at the specified index.

Parameters lIndex The index of the specified Wall FE.ppINode The INode object at the specified index.

INonCompDeckProp

This interface represents a single non-composite deck property.

PropertiesType Property Get Set Description

double dEffectiveThickness X X The effective thickness of the deck

double dElasticModulus X X The elastic modulus of the deck

double dPoissonsRatio X X The Poisson’s Ratio of the deck 

double dSelfWeight X X The self-weight of the deck

long lUid X The unique ID of the deck.

BSTR strLabel X X The label of the deck

 

INonCompDeckProps

This interface represents a collection of non-composite deck properties defined in the model.

Page 136: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 136/450

Add ([in] BSTR strLabel, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)

Creates a new non-composite deck property, adds it to the collection, and returns an interface to the newly created property.

Parameters strLable The label for the new non-composite deck propertyppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the newly added non-composite deck property.

Get ([in] long lUID, [out, retval] INonCompDeckProp ** ppINonCompdeckProp)

Gets an interface for a specific non-composite deck property by unique ID.

Parameters lUID The unique ID of the requested non-composite deck property

ppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property, or NULLif no non-composite deck property is found in the collection with the given unique ID.

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

Gets an interface for a specific non-composite deck property by index.

Parameters lIndex The index into the collection of the requested non-composite deck propertyppINonCompdeckProp Pointer to an INonCompDeckProp interface that represents the requested non-composite deck property, or NULL

if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of non-composite deck properties in the collection.

Parameters plCount Number of non-composite deck properties in the collection

IOtherMaterial

This interface represents a single ‘Other’ material property set. A member’s ‘Other’ material properties can be read and set throughthis interface.

Properties

Page 137: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 137/450

PropertiesType Property Get Set Description

double dE X X Young’s modulus, modulus of elasticity (E). 

double dPoissonsRatio X X Poisson’s Ratio. 

double dSelfWeight X X Self weight of member.

IOtherSectProp

This interface represents a single ‘Other’ section. Note that the type of member (beam, column, or brace) to which it can be assigned cannot be changed after a section is defined.

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

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

Parameters strCustomProps 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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

PropertiesType Property Get Set Description

double dArea X X Area of section.

double dDepth X X Depth of section measured in direction of major axis.

double dMomInertiaMajor X X Moment of inertia in major direction (Ix).

Type Property Get Set Description

double dMomInertiaMinor X X Moment of inertia in minor direction (Iy).

double dShearAreaMajor X X Shear area in major direction.

double dShearAreaMinor X X Shear area in minor direction.

double dTorsionConstant X X Torsion Constant (J).

double dWidth X X Width of section

Page 138: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 138/450

double dWidth X X Width of section.

EUniqueMemberTypeID eMemType X Type of member to which this section can be assigned.

long lUID X Unique ID of ‘Other’ section.

BSTR strLabel X X  A label for this ‘Other’ section. Limited to 15 characters.

IOtherSectProps

This interface represents a collection of ‘Other’ section properties defined in the model. ‘Other’ section properties are defined usingthis 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, andlikewise for column and brace ‘Other’ sections.

Add ([in] BSTR bstName, [in] EUniqueMemberTypeID eMemType, [in] double dWidth, [in] double dDepth, [in] double dArea, [in]double dMomInertiaMajor, [in] double dMomInertiaMinor, [in] double dTorsionConstant, [in] double dMajorShearArea, [in] doubledMinorShearArea, [out, retval] IOtherSectProp** ppIOtherSectProp)

 Adds a new ‘Other’ section.

Parameters bstName Label of ‘Other’ section. Limited to 15 characters.eMemType Must specify if this is a section for a beam, column or bracedWidth Total width of sectiondDepth Depth of sectiondArea 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.

 Parameters lUID Unique ID of ‘Other’ section to deleteplRetval 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 139: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 139/450

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

Filters the collection of concrete sections based on given criteria.

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

-1 if collection could not be filtered

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

Gets an interface for a specific ‘Other’ section property by unique ID.

Parameters lUID 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.

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

Gets an interface for a specific ‘Other’ section property by index.

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.  

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 filteredcollection, not the total number of ‘Other’ sections in the model. When the collection is unfiltered, this function returns the total number of‘Other’ sections in the model.

Parameters 

plCount Number of ‘Other’ sections in the collection 

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

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

Page 140: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 140/450

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 thismember type

IPile

This interface represents a single pile.

PropertiesType Property Get Set Description

double dCompressionCap X X Compression capacity of piledouble dDiameter X X Diameter of pile

double dShearCap X X Shear capacity of pile

double dTensionCap X X Tension capacity of pile

long lUID X Unique ID of pile.

BSTR strLabel X X Label for this pile

IPi leConfigurat ion

This interface represents a single pile configuration.

PropertiesType Property Get Set Description

EPileConfiguration eConfiguration X X Configuration of pile group

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

long lNumVertRows X X Number of rows of pile running perpendicular to the major axis of the footing. Applies to rectangular pileconfigurations

long lUID X Unique ID of pile configuration.

BSTR strLabel X X Label for this pile configuration

 

IPi leConfigurat ions

This interface represents a collection of all pile configurations defined in the model. Pile configurations are assigned to pile cap

Page 141: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 141/450

p p g g g p pfoundations (a type of isolated foundation).

AddRectangular  ([in] BSTR bstrName, [in] long lNumVertRows, [in] long lNumHorizRows, [out, retval] IPileConfiguration**

ppIPileConfiguration)

 Adds a new rectangular pile configuration to the collection of pile configurations for the model.

Parameters bstrName A label for the pile configurationlNumVertRows Number of rows of piles perpendicular to the major axislNumHorizRows Number of rows of piles parallel to the major axisppIPileConfiguration Pointer to an IPileConfiguration interface that represents the newly added pile configuration.

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

Deletes a pile configuration with the given unique ID from the collection.

Parameters lUID Unique ID of pile configuration to deleteplRetval 0 if pile configuration is deleted successfully

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

Get ([in] long lUID, [out, retval] IPileConfiguration** ppIPileConfiguration)

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

Parameters lUID The unique ID of the requested pile configurationppIPileConfiguration Pointer to an IPileConfiguration interface that represents the requested pile configuration, or NULL if no pile

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

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

Gets an interface for a specific pile configuration by index.

 Parameters lIndex The index into the collection of the requested pile configurationppIPileConfiguration Pointer to an IPileConfiguration interface that represents the requested pile configuration, or NULL if lIndex is

invalid.

Page 142: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 142/450

GetCount ([out, retval] long* plCount)

Gets the number of pile configurations in the collection.

Parameters plCount Number of pile configurations in the collection

IPiles

This interface represents a collection of all piles defined for the model.

Add ([in] BSTR bstrName, [in] double dDiameter, [in] double dCompressionCap, [in] double dTensionCap, [in] double dShearCap,

[out, retval] IPile** ppIPile)

 Adds a new pile definition to the collection of piles for the model.

Parameters bstrName A label for the piledDiameter The diameter of the piledCompressionCap The compression capacity of the piledTensionCap The tension capacity of the piledShearCap The shear capacity of the pileppIPile Pointer to an IPile interface that represents the newly added pile.

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

Deletes a pile with the given unique ID from the collection.

Parameters lUID Unique ID of pile to deleteplRetval 0 if pile is deleted successfully

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

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

Gets an interface for a specific pile by unique ID.

P

Page 143: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 143/450

Parameters lUID The unique ID of the requested pileppIPile Pointer to an IPile interface that represents the requested pile, or NULL if no pile is found in the collection with the

given unique ID.

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

Gets an interface for a specific pile by index.

Parameters lIndex The index into the collection of the requested pileppIPile Pointer to an IPile interface that represents the requested pile, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of piles in the collection.

Parameters plCount Number of piles in the collection

IPoint

This interface represents a single point.

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

Gets the coordinate of the point.

Parameters pPoint The coordinate of the pointplRetval 0 if coordinate is retrieved successfully

SetCoordinate ([in] SCoordinate Point, [out, retval] long *plRetval)

 Sets the coordinate of the point.

Parameters Point The coordinate of the pointplRetval 0 if coordinate is set successfully

Page 144: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 144/450

plRetval 0 if coordinate is set successfully

SetCoordinate2 ([in] double dX, [in] double dY, [in] double dZ, [out, retval] long *plRetval)

Sets the coordinate of the point. (Note: this was added because SetCoordinate isn’t compatible with Visual Basic.) 

Parameters dX The X coordinate of the pointdY The Y coordinate of the pointdZ The Z coordinate of the pointplRetval 0 if coordinate is set successfully

IPointLoad

This interface represents a single point load.

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

Gets the number of point loads in the collection.

Parameters pLocation Location of the point load in global X,Y,Z coordinatesplRetval Error code

PropertiesSign of force is positive in direction of global axes and right hand rule for moments (thumb in global axis direction). Coordinatesystem is based on context in which the force is obtained (default is global coordinate system).

Type Property Get Set Description

double dFx X Horizontal force magnitude (kip) in X axis

double dFy X Horizontal force magnitude (kip) in Y axis

double dFz X Vertical force magnitude (kip) in Z axis

double dMxx X Moment about the XX axis

double dMyy X Moment about the YY axis

Type Property Get Set Description

double dMzz X Moment about the ZZ Axis

IPointLoadPropertySet

Page 145: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 145/450

IPointLoadPropertySet

This interface represents a single point load property set as defined in the modeler.

PropertiesType Property Get Set Description

double dConstDeadLoad X X Construction Dead load (positive is down)

double dConstLiveLoad X X Construction Live load (positive is down)

double dDeadLoad X X Dead load magnitude (positive is down)

double dLiveLoad X X Live load magnitude (positive is down)

double dMassDeadLoad X X Mass dead load magnitude (positive is down)

double dPartitionLoad X X Partion load magnitude (positive is down)

ELoadCaseType  eLiveLoadType X X The live load case type (MUST BE A LIVE LOAD TYPE)

long lUID X Unique ID of the property set

BSTR strLabel X X Label of the property set. Limited to 19 characters.

IPointLoadPropertySets

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

Add ([in] BSTR bstrLabel, [out,retval] IPointLoadPropertySet**ppIPointLoadPropSet);

 Adds a new point load property set to the collection.

Parameters 

bstrLabel 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

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

Deletes a point load property set.

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. 

Get ([in] long lUID, [out, retval] IPointLoadPropertySet** ppIPointLoadPropSet);

Gets an interface for a specific point load property set by unique ID.

Page 146: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 146/450

Parameters lUID Unique ID of the requested point load property setppIPointLoadPropSet Pointer to an IPointLoadPropertySet interface that represents the requested point load property set, or NULL if no

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

GetAt ([in] long lIndex, [out, retval] IPointLoadPropertySet**ppIPointLoadPropSet);

Gets an interface for a specific point load property set by index.

Parameters lIndex Index of the requested point load property setppIPointLoadPropSet Pointer to an IPointLoadPropertySet interface that represents the requested point load property set, or NULL if

lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of point load property sets in the collection.

Parameters plCount Number of point load property sets in the collection

IPointLoads

This interface represents a collection of individual point load objects.

GetAt ([in] long lIndex, [out, retval] IPointLoad** ppIPointLoad)

Gets an interface for a specific point load by index (zero based).

Parameters lIndex 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.

 GetCount ([out, retval] long* plCount)

Gets the number of point loads in the collection.

Parameters

Page 147: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 147/450

Parameters plCount Number of point loads in the collection

IPointLoadSet

This interface represents a single point load set associated with a floor type. Since a floor type can be associated with one or morestories, a point load set may actually represent load sets on multiple stories. This interface can be used to modify the location andproperties of a point load set.

PropertiesType Property Get Set Description

long lPropertySetUID X X The UID of the PointLoadPropertySet associated with the point load

long lUID X Unique ID of the Point Load Set

SCoordinate  sCoordinate X X Location of the point load (only X and Y are used)

IPointLoadSets

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

Add ([in] long lPropSetID, [in] double dX, [in] double dY, [out,retval] IPointLoadSet** ppIPointLoadSet )

 Adds a new point load set to the collection of point load sets for the floor type.

Parameters lPropSetID Unique ID of point load property set associated with this point load setdX X coordinate of the point load setdY Y coordinate of the point load setppIPointLoadSet Pointer to an IPointLoadSet interface that represents the newly added point load set.

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

 Deletes the point load set with the given unique ID.

Parameters lUID Unique ID of point load set to deleteplRetval 0 if point load set is deleted successfully

Page 148: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 148/450

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

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

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

Parameters lUID Unique ID of the requested point load setppIPointLoadSet Pointer to an IPointLoadSet interface that represents the requested point load set, or NULL if no point load set is found

in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IPointLoadSet** ppIPointLoadSet)

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

Parameters lIndex The index into the collection of the requested point load setppIPointLoadSet Pointer to an IPointLoadSet interface that represents the requested point load set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of point load sets in the collection.

Parameters plCount Number of point load sets in the collection

IPoints

This interface represents a collection of points.

Add ([in] SCoordinate Point, [out, retval] IPoint** ppIPoint)

 Adds a point to the collection.

Parameters Point Coordinate of this pointppIPoint Pointer to an IPoint interface that represents the newly added point.

Page 149: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 149/450

Add2 ([in] double dX, [in] double dY, [in] double dZ, [out, retval] IPoint** ppIPoint)

 Adds a point to the collection. (Note: this was added because Add isn’t compatible with Visual Basic.) 

Parameters dX The X coordinate of the pointdY The Y coordinate of the pointdZ The Z coordinate of the pointppIPoint Pointer to an IPoint interface that represents the newly added point.

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

Deletes the point at the given index.

Parameters lIndex Index of point to delete.plRetval 0 if point is deleted successfully

-1 if index is invalid

GetAt ([in] long lIndex, [out, retval] IPoint** ppIPoint)

Gets an interface for a specific point by index.

Parameters 

lIndex The index into the collection of the requested pointppIPoint Pointer to an IPoint interface that represents the requested point, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of points in the collection.

Parameters plCount Number of points in the collection

InsertAt ([in] long lIndex, [in] SCoordinate Point, [out, retval] IPoint** ppIPoint)

 Adds a point to the collection at the given index, growing the list of points if needed. This function is provided for when the order of thepoints in the collection matters, such as for the definition of a polygon.

Parameters 

Page 150: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 150/450

lIndex The index at which to add the pointPoint Coordinate of this pointppIPoint Pointer to an IPoint interface that represents the newly added point.

InsertAt2 ([in] long lIndex, [in] double dX, [in] double dY, [in] double dZ, [out, retval] IPoint** ppIPoint)

 Adds a point to the collection at the given index, growing the list of points if needed. This function is provided for when the order of thepoints in the collection matters, such as for the definition of a polygon. (Note: this was added because InsertAt isn’t compatible with VisualBasic.)

Parameters lIndex The index at which to add the pointdX The X coordinate of the point

dY The Y coordinate of the pointdZ The Z coordinate of the pointppIPoint Pointer to an IPoint interface that represents the newly added point.

IProperties

This interface represents a collection of properties associated with a member. This collection is used to add or delete properties to amember.

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

Gets an interface for a specific property by property name.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

GetAt ([in] long lIndex, [out, retval] IProperty** ppIProperty)

Gets an interface for a specific property by index.

GetCount ([out, retval] long* plCount)

Page 151: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 151/450

Gets the number of properties in the collection.

Parameters 

plCount Number of properties in the collection

Parameters lIndex The index into the collection of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if lIndex is invalid.

IProperty

This interface represents a single property for a member.

GetValueAsBool ([out] BOOL *pbValue, [out, retval] long* plRetval)

Gets the value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.

Parameters pbValue Value of the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

GetValueAsDouble ([out] double *pdValue, [out, retval] long* plRetval)

Gets the value of the property as a double. An error is returned if this is not the appropriate type for this property.

Parameters pdValue Value of the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

GetValueAsLong ([out] long *plValue, [out, retval] long* plRetval)

Gets the value of the property as a long. An error is returned if this is not the appropriate type for this property.

Parameters plValue Value of the property

Page 152: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 152/450

yplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

GetValueAsString ([out] BSTR *pstrValue, [out, retval] long* plRetval)

Gets the value of the property as a string. This function works for any data type.

Parameters pstrValue Value of the propertyplRetval Should always be zero since any data type can be

returned as a string.

SetValueAsBool ([in] BOOL bValue, [out, retval] long* plRetval)

Sets the value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.

Parameters bValue Value of the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

SetValueAsDouble ([in] double dValue, [out, retval] long* plRetval)

Sets the value of the property as a double. An error is returned if this is not the appropriate type for this property.

Parameters dValue Value of the propertyplRetval 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.

Page 153: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 153/450

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.

Page 154: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 154/450

p p y g pp p yp p p y

Parameters plDefault 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.

Parameters pstrDefault Default value for the propertyplRetval Should always be zero since any data type can be

returned as a string.

SetDefaultAsBool ([in] BOOL bDefault, [out, retval] long* plRetval)

Sets the default value of the property as a BOOL. An error is returned if this is not the appropriate type for this property.

Parameters bDefault Default value for the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

SetDefaultAsDouble ([in] double dDefault, [out, retval] long* plRetval)

Sets the default value for this property as a double. An error is returned if this is not the appropriate type for this property.

Parameters dDefault Default value for the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

 SetDefaultAsLong ([in] long lDefault, [out, retval] long* plRetval)

Sets the default value of the property as a long. An error is returned if this is not the appropriate type for this property.

Parameters 

Page 155: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 155/450

lDefault Default value for the propertyplRetval 0 if value retrieved successfully

-1 if no appropriate type for this property.

SetDefaultAsString ([in] BSTR strDefault, [out, retval] long* plRetval)

Sets the default value of the property as a string. An error is returned if this is not the appropriate type for this property.

Parameters strDefault Default value for the propertyplRetval Should always be zero since any data type can be

returned as a string.

PropertiesType Property Get Set Description

EDBFieldType  eType X The type of value for this property

BSTR strPropDescription X X Description of the property

BSTR strPropName X X Case insensitive name of property

IPropertyDefini t ions

This interface represents a collection of property definitions associated with a type of member. This collection is used to add ordelete properties associated with a member type.

AddPropBool ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] BOOL bDefaultValue, [out, retval]IPropertyDefinition** ppIPropertyDef)

 Adds a new property to the collection of properties for the member.

Parameters bstrPropName Name of the propertybstrPropDescription Description of the property (can be left blank)

bDefaultValue Default value for this property when not set for a memberppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropDouble ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] double dDefaultValue, [out, retval]IPropertyDefinition** ppIPropertyDef)

Page 156: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 156/450

 Adds a new property definition to the collection of property definitions for the member type.

Parameters 

bstrPropName Name of the propertybstrPropDescription Description of the property (can be left blank)dDefaultValue Default value for this property when not set for a memberppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropLong ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] long lDefaultValue, [out, retval] IPropertyDefinition**ppIPropertyDef)

 Adds a new property to the collection of properties for the member.

Parameters bstrPropName Name of the propertybstrPropDescription Description of the property (can be left blank)lDefaultValue Default value for this property when not set for a memberppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

AddPropString ([in] BSTR bstrPropName, [in] BSTR bstrPropDescription, [in] BSTR strDefaultValue, [out, retval]IPropertyDefinition** ppIPropertyDef)

 Adds a new property to the collection of properties for the member.

Parameters bstrPropName Name of the propertybstrPropDescription Description of the property (can be left blank)strDefaultValue Default value for this property when not set for a memberppIPropertyDef Pointer to an IPropertyDefinition interface that represents the newly added property definition.

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

Deletes the property definition with the given name. Use with caution as this will delete the value for each instance of the member type.

 Parameters bstrPropName Name of property to deleteplRetval 0 if property is deleted successfully

-1 if no property is found with given name

G t ([i ] BSTR b t P N [ t t l] IP t D fi iti ** IP t D f)

Page 157: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 157/450

Get ([in] BSTR bstrPropName, [out, retval], IPropertyDefinition** ppIPropertyDef)

Gets an interface for a specific property definition by property name.

Parameters bstrPropName The name of the requested propertyppIPropertyDef Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if no property

is found with given name.

GetAt ([in] long lIndex, [out, retval] IPropertyDefinition** ppIPropertyDef)

Gets an interface for a specific property definition by index.

Parameters 

lIndex The index into the collection of the requested property definitionppIPropertyDef Pointer to an IPropertyDefinition interface that represents the requested property definition, or NULL if lIndex is

invalid.

GetCount ([out, retval] long* plCount)

Gets the number of property definitions in the collection.

Parameters plCount Number of property definitions in the collection

IRAMFrameCriteria

This interface represents the criteria in RAM Frame. 5.03.

GetFrame_SolverSettings ( [out] BOOL* pbDirectSolver, [out] BOOL* pbInCore, [out] BOOL* pbUseSingleCPU )

Gets solver settings in RAM Frame – Criteria - General. 5.03.

 Parameters pbDirectSolver 1 if the Direct Solver is selectedpbInCore 1 if In Core is selectedpbUseSingleCPU 1 if Use Single CPU is selected

S tF S l S tti ( [i ] BOOL bDi tS l [i ] BOOL bI C [i ] BOOL bU Si l CPU )

Page 158: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 158/450

SetFrame_SolverSettings ( [in] BOOL bDirectSolver, [in] BOOL bInCore, [in] BOOL bUseSingleCPU )

Sets solver settings in RAM Frame – Criteria - General. 5.03.

Parameters bDirectSolver 1 if the Direct Solver is selectedbInCore 1 if In Core is selectedbUseSingleCPU 1 if Use Single CPU is selected

PropertiesType Property Get Set Description

BOOL bAISC360_UseReducedStiff X 1 if Use Reduced Stiffness is selectedBOOL bAISC360_UseTau1 X 1 if Tau = 1.0 is selected

BOOL bMemberForceOutputAtFaceOfJoint X 1 if member force output at joint face is selected

BOOL bPDelta X 1 if P Delta is set to YesBOOL bPDelta_UseMassLoad X 1 if P Delta Use Mass is selected

BOOL bResponseSpectra_ConsiderSign X 1 if Consider Sign is selected

BOOL bResponseSpectra_IncludeMassinZDir X 1 if Include Z Mass is selected

BOOL bRigidEndZones_IgnoreEffects X 1 if Ignore Effects is selected

BOOL bSidePlate_HighSeismicDesign X 1 if High Seismic Design is selected

BOOL bWallElement_IncludeOOPStif X 1 if include out of plane stiffness is selected

BOOL bWallElement_ReleaseRotFixity X 1 if release rotational fixity is selected

BOOL bWallElement_StoreStress X 1 if store wall stresses is selected

double dAISC360_UserEnteredTau X Value of the user defined Tau

double dAnalyticalModel_GeometryTol X Geometric tolerance

double dAnalyticalModel_MaxDistance X Maximum distance between nodes

double dAnalyticalModel_MergeTol X Merge node tolerancedouble dPDelta_DeadLoadScaleFactor X P Delta scale factor

double dPDelta_LiveLoadScaleFactor X P Delta scale factor

double dPDelta_MassLoadScaleFactor X P Delta scale factor

double dPDelta_RoofLoadScaleFactor X P Delta scale factor

double dPDelta_SnowLoadScaleFactor X P Delta scale factor

double dRigidEndZones_Reduction X Rigid end zone reduction percentage

long lGroundLevel X Index to the ground level story. -1 if base.

IRawWallOpening

This interface represents a single raw wall opening.

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

Gets the vertices of the opening.

Page 159: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 159/450

Gets the vertices of the opening.

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

vertices of the opening in 3D coordinates.

PropertiesType Property Get Set Description

double dHorizontalLoc X X Horizontal location along wall, measured from eWallRefCorner

double dOpeningHeight X X Height of opening

double dOpeningWidth X X Width of opening

double dVerticalLoc X X Vertical location along wall, measured from eWallRefCorner

EDA_MEMBER_LOC eWallRefCorner X X Reference corner from which opening location is measured

long lLabel X Generated label for display of wall opening

long lUID X Unique ID of wall opening

long lWallUID X Unique id of wall that opening was modeled in

IRawWallOpenings

This interface represents a collection of raw wall openings associated with a wall.

Add ([in] EDA_MEMBER_LOC eRefCorner, [in] double dHorizontalLoc, [in] double dVerticalLoc, [in] double dOpeningWidth, [in]double dOpeningHeight, [out, retval] IRawWallOpening** ppIRawWallOpening)

 Adds a raw wall opening to the collection of openings for the wall.

Parameters eRefCorner Indicates the reference corner of the wall from which the opening location is measureddHorizontalLoc Horizontal location along the wall, measured from eRefCornerdVerticalLoc Vertical location along the wall, measured from eRefCornerdOpeningWidth Width of openingdOpeningHeight Height of openingppIRawWallOpening Pointer to an IRawWallOpening interface that represents the newly added raw wall opening

 

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

Deletes the raw wall opening with the given unique ID.

Parameters lUID Unique ID of raw wall opening to delete

Page 160: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 160/450

lUID Unique ID of raw wall opening to deleteplRetval 0 if opening is deleted successfully

-1 if lIndex is invalid

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

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

Parameters lUID The unique ID of the requested wall openingppIRawWallOpening Pointer to an IRawWallOpening interface that represents the requested raw wall opening, or NULL if no wall

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

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

Gets an interface for a raw wall opening by index.

Parameters lIndex The index into the collection of the requested raw wall openingppIRawWallOpening Pointer to an IRawWallOpening interface that represents the requested raw wall opening, or NULL if lIndex is

invalid.

GetCount ([out, retval] long* plCount)

Gets the number of wall openings in the collection.

Parameters plCount Number of raw wall openings in the collection

IRawWallSectionCut

This interface represents a single raw wall section cut. Raw indicates it may span over multiple walls.

ClearComboForceSets ()

Deletes all load combination-based force sets in the collection.

Page 161: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 161/450

ClearForceSets ()

Deletes all force sets in the collection.

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

Gets the section cut ends, global coordinates.

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

GetCutBars ([in] BOOL bCompound, [out,retval] IWallBarPlacements** ppIWallBarPlacements)

Gets an array of bar placements cut by this section cut.

Parameters bCompound If TRUE, and the section cut is part of a compound section cut, this will return the bar placements for all cuts in the

compound section cut.If FALSE, only returns the bar placements for the current raw section cut.

ppIWallBarPlacements The bars cut by this section cut.

GetCutMembers ([out, retval] IDAArray** ppICutMembersArray)

Gets an array of members cut by this section cut.

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

GetForce ([in] EAnalysisResultType eAnalysisType, [in] long lAnalysisLoadCaseID, [out,retval] IMemberForce** ppIMemberForce)

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

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

Page 162: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 162/450

GetForces ([in] EAnalysisResultType eAnalysisType, [out, retval] IMemberForces** ppIMemberForces)

Gets the force at this section cut for the given analysis type.

Parameters eAnalysisType Type of analysis for which to get force (As of v10, only RAMFrameResultType supported)ppIMemberForces Pointer to an IMemberForces collection interface that represents the forces at this section cut.

GetForceSets ([out, retval] IWallSectionDsnCutForceSets ** ppIWallSectionDsnCutForceSets)

Gets the collection force sets for the section cut.

Parameters

ppIWallSectionDsnCutForceSets Pointer to an IWallSectionDsnCutForceSets collection interface that represents all force sets in the wallsection design cut.

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

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

Parameters eAnalysisType Type of analysis for which to get force (As of v10, only RAMFrameResultType supported)

aAnalysisLoadCaseIDs Array of analysis load case IDs for which to get forceppIMemberForces Pointer to an IMemberForces collection interface that represents the forces at this section cut for the given load

case IDs.

GetForcesOnHorizontalPlane ([in] long lLoadCaseUID, [in] long lNumWallUIDs, [in] long* palWallUIDs, [in] longlNumBeamUIDs, [in] long* palBeamUIDs, [in] long lNumColumnUIDs, [in] long* palColumnUIDs, [in] double dCutStartX, [in] doubledCutStartY, [in] double dCutEndX, [in] double dCutEndY, [in] double dCutZ, [out] double* pdFX_g, [out] double* pdFY_g, [out]double* pdFZ_g, [out] double* pdMX_g, [out] double* pdMY_g, [out] double* pdMZ_g, [out] double* pdCenterX, [out] double*pdCenterY, [out] double* pdCenterZ, [out, retval] long *plRetVal)

 Returns the resultant force on a horizontal plane through the specified members.

Parameters lLoadCaseUID Unique id of the load case for which forces are requested.lNumWallUIDs Number of wall unique ids in the palWallUIDs array.palWallUIDs Array of wall unique ids for which forces are requested.

Page 163: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 163/450

p y q qlNumBeamUIDs Number of beam unique ids in the palBeamUIDs array.palBeamUIDs Array of beam unique ids for which forces are requested.lNumColumnUIDs Number of column unique ids in the palColumnUIDs array.

palColumnUIDs Array of column unique ids for which forces are requested.dCutStartX Global X coordinate of start point of section cut.dCutStartY Global Y coordinate of start point of section cut.dCutEndX Global X coordinate of end point of section cut.dCutEndY Global Y coordinate of end point of section cut.dCutZ Global Z coordinate of section cut.pdFX_g Resultant force in X directionpdFY_g Resultant force in Y directionpdFZ_g Resultant force in Z directionpdMX_g Resultant moment about X axispdMY_g Resultant moment about Y axis

pdMZ_g Resultant moment about Z axispdCenterX X coordinate of point where resultant force is acting on combined memberspdCenterY Y coordinate of point where resultant force is acting on combined memberspdCenterZ Z coordinate of point where resultant force is acting on combined membersplRetVal 0 if successful

-1 failed

GetForcesOnVerticalPlane ([in] long lLoadCaseUID, [in] long lWallUID, [in] double dX1, [in] double dY1, [in] double dZ1, [in]double dX2, [in] double dY2, [in] double dZ2, [out] double* pdFX, [out] double* pdFY, [out] double* pdFZ, [out] double* pdMX, [out]double* pdMY, [out] double* pdMZ, [out, retval] long *plRetVal)

Gets resultant force on a vertical cut (plane) across the thickness of the give wall member. The cut is defined by a line throught the mid-plane of the wall.

Parameters lLoadCaseUID Unique id of the load case for which forces are requested.lWallUID Unique id of the wall for which forces are requested.dX1 X coordinate of start point of section cut.dY1 Y coordinate of start point of section cut.dZ1 Z coordinate of start point of section cut.

dX2 X coordinate of end point of section cut.dY2 Y coordinate of end point of section cut.dZ2 Z coordinate of end point of section cut.pdFX Resultant force in X direction.pdFY Resultant force in Y direction.pdFZ Resultant force in Z direction.pdMX Resultant moment about X axis.

Page 164: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 164/450

pdMY Resultant moment about Y axis.pdMZ Resultant moment about Z axis.plRetVal 0 if successful

-1 failed

GetPolygonPoints ([in] BOOL bCompound, [out, retval] IPoints** ppIPoints)

Gets a collection of points that form the polygon of the section cut in 3D space.

Parameters

bCompound If TRUE, and the section cut is part of a compound section cut, this will return the points for the polygon formed byall cuts in the compound section cut.If FALSE, only returns the polygon for the current raw section cut.

ppIWallBarPlacements Collection of points that make up the 3D polygon for this section cut.

PropertiesType Property Get Set Description

BOOL bAutoGenerated X X Indicates whether the section cut was autocreated by the module

BOOL bFullModule X X Indicates whether the section cut was created in the full shear wall module

BOOL bIncBoundaryElements X X Indicates whether or not to include the forces from the boundary elements (such as a columnattached to a wall) when getting the forces for the section cut

double dEndOffset X X Offset from bottom of wall or opening at which section cut terminates

double dStartOffset X X Offset from bottom of wall or opening from which section cut originates

EMemberOrientation eOrientation X X Orientation of section cut

EStatusState eStatus X Section cut design status

long lEndEdgeIndex X X Index of edge of wall or opening at which section cut terminates, 0 being the bottom edge andcontinuing counter-clockwise (0-3 only valid indices at this time)

long lEndMemberUID X X Unique ID of wall or wall opening at which section cut terminates

long lSectionCutWDGID X X Section Cut Group ID within the Wall Design Group

long lStartEdgeIndex X X Index of edge of wall or opening from which section cut originates, 0 being the bottom edge andcontinuing counter-clockwise (0-3 only valid indices at this time)

long lStartMemberOwnerUID X X If the start member is an opening, this contains the member ID of the wall that the opening is in.If the start member is a wall, this is the same as lStartMemberUID.

long lStartMemberUID X X Unique ID of wall or wall opening from which section cut originates

long lUID X Unique ID of section cut

Type Property Get Set Description

long lWallDesignGroup X X Wall Design Group number this section cut is part of or -1

BSTR strLabel X X User-defined label for section cut

IRawWallSectionCuts

Page 165: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 165/450

This interface represents a collection of raw wall section cuts associated with a wall.

Add ([in] BSTR bstrLabel, [in] ESectionCutOrientation eOrientation, [in] long lStartMemberUID, [in] long lStartEdgeIndex, [in] doubledStartOffset, [in] long lEndMemberUID, [in] long lEndEdgeIndex, [in] double dEndOffset, [out, retval] ] IRawWallSectionCut**ppIRawWallSectionCut)

 Adds a raw section cut to the collection of section cuts for the wall.

Parameters bstrLabel Display label for the section cuteOrientation Orienation of section cutlStartMemberUID 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 edgelEndMemberUID 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 terminatesdEndOffset Offset from end member edge

AddRaw ([in] SCoordinate sStartPoint, [in] SCoordinate sEndPoint, [out, retval] ] IRawWallSectionCut** ppIRawWallSectionCut)

 Adds a raw section cut to the collection of section cuts.

Parameters 

sStartPoint Start coordinates of the raw section cutsEndPoint End coordinates of the raw section cuts

Clear  ([in] BOOL bClearAutoGenOnly)

Deletes raw wall section cuts in the receiver’s collection.

Parameters bClearAutoGenOnly 1: Only delete auto-generated section cuts from collection.

0: Delete all section cuts from collection.

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

Deletes the raw wall section cut with the given unique ID.

Parameters lUID Unique ID of raw wall section cut to delete

Page 166: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 166/450

lUID Unique ID of raw wall section cut to deleteplRetval 0 if opening is deleted successfully

-1 if lIndex is invalid

Filter  ([in] ERawWallSectionCutFilter  eSectionCutFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of raw wall section cuts based on given criteria.

Parameters eSectionCutFilter Indicates the type of filter to use on the collectionvarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

Gets an interface for a specific raw wall section cut by unique ID.

Parameters lUID The unique ID of the requested wall section cutppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested raw wall section cut, or NULL if no wall

section cut is found in the collection with the given unique ID.

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

Gets an interface for a raw wall section cut by index.

Parameters lIndex The index into the collection of the requested raw wall section cutppIRawWallSectionCut Pointer to an IRawWallSectionCut interface that represents the requested raw wall section cut, or NULL if

lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of wall section cuts in the collection.

Parameters plCount Number of raw wall section cuts in the collection

Page 167: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 167/450

IRBSPropertySetInterface with reduced beam property set values. Obtained from a specific IBeam. 

PropertiesType Property Get Set Description

double d_a X The distance from the column face to the start of the RBS.

double d_b X The length of the reduced beam section.

double d_c X The amount of flange removed on each side of the beam.

IReactionNode

This interface represents a single reaction node.

GetMembersAtReactionNode ([out,retval] DAArray** ppDAArray)

Gets an array of members at the reaction node.

Parameters ppDAArray Pointer to an DAArray interface that represents the members at this reaction node.

GetReaction ([in] EFrameMemberForceSource eFrameMemForceSource, [in] long lAnalysisCaseID, [out, retval] IPointLoad**ppIPointLoad)

Gets an IPointLoad interface for a reaction at a node.

Parameters eFrameMemForceSource EFrameMemberForceSourcelAnalysisCaseID Unique ID of the analysis caseppIPointLoad Pointer to an IPointLoad interface

 

GetReactions ([in] EFrameMemberForceSource eFrameMemForceSource, [out, retval] IPointLoads** ppIPointLoads)

Gets an IPointLoads interface for a collection of reactions at a node.

Parameters eFrameMemForceSource EFrameMemberForceSource

Page 168: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 168/450

ppIPointLoads Pointer to an IPointLoads interface

PropertiesType Property Get Set Description

SCoordinate SCoordinate X The coordinates of the reaction node.

IReactionNodes

This interface represents a collection of reaction nodes.

Filter  ([in] EReactionNodeFilter  EReactionNodeFilter , [in] VARIANT varFilterCriteria, [out, retval] long* plCount)

Gets the number of wall section cuts in the collection.

Parameters EReactionNodeFilter EReationNodeFiltervarFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases,

this parameter is not applicableplCount Number reaction nodes in the filtered collection

GetAt ([in] long lIndex, [out, retval] IReactionNode** ppIReactionNode)

Gets an interface for a reaction node by index.

Parameters lIndex The index into the collection of the requested raw wall section cutppIReactionNode Pointer to an IReactionNode interface that represents the requested reaction node, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of reaction nodes in the collection.

 Parameters plCount Number of reaction nodes in the collection

IRecord

Page 169: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 169/450

This interface is used in conjunction with ITable to represent the data in a single record in a generic table. Please note: unlike mostproperties in RAM Data Access, all properties in this table are indexed by the field name. In languages that support it, this field name

is specified in the same way as an array offset.

IRecord PropertiesType Property Get Set Description

BOOL bValue X X The value of the field specified by bstrName. The specified field must have an eType setting of eFTBool.

double dValue X X The value of the field specified by bstrName. The specified field must have an eType setting of eFTDouble.

long lValue X X The value of the field specified by bstrName. The specified field must have an eType setting of eFTLong.

BSTR strValue X X The value of the field specified by bstrName. The specified field must have an eType setting of eFTString.

VARIANT varValue X X The value of the field specified by bstrName. The type of data returned depends on the eType setting of the specifiedfield.

IRecords

This interface is use to represent the records in a generic table.

Add ([out,retval] IRecord **ppINewRecord)

 Adds a new long field to the receiver.

Parameters 

ppINewRecord Pointer to an IRecord interface that represents the newly added record.

DeleteAt (long lIndex)

Deletes the record at the given index.

Parameters lIndex The index of the record to be deleted.

GetAt ([in] long lIndex, [out,retval] IRecord **ppIRecord)

Gets an interface for a specific record by index. Note: while the order of the records in an IRecords instance will not change, the order isnot recorded, so subsequent loading of the records could result in the records being returned in a different order.

Parameters lIndex The index in the collection the requested record.

Page 170: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 170/450

ppIRecord Pointer to an IRecord interface that represents the requested record, or NULL if lIndex is invalid.

PropertiesType Property Get Set Description

long lCount X The number of records in the collection.

IShell

This interface is used represent a finite element shell element (quad).

GetNodeResolvedAppliedLoads ([in] ELoadCaseType eLoadcaseType, [out, retval] IPointLoads** ppIPointLoads)

This method gets the resolved point load at the shell nodes due to surface, line and point load on the shell for a given load case type.

Parameters eLoadcaseType Load case typeppIPointLoads Resolved point loads at the

nodes of the shell

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

Gets the collection of points for this shell.

Parameters ppIPoints Pointer to an IPoints interface that represents the points in the shell.

PropertiesType Property Get Set Description

EUniqueMemberTypeID eMemberType X The member type of the member this shell was calculated from.

LONG lMemberID X The member ID of the member this shell was calculated from. This could be a wall ID or a deck ID.

LONG lUID X The unique ID for this shell.

 

IShells

This interface is used to hold a collection of  IShell objects.

GetAt ([in] long lIndex [out retval] IShell** ppIShell)

Page 171: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 171/450

GetAt ([in] long lIndex, [out, retval] IShell ppIShell)

Gets the IShell object at the specified index.

Parameters lIndex The index of the specified shell.ppIShell The IShell object at the specified index.

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

Gets number of IShell objects in the collection.

Parameters 

plCount The number of IShell objects in the collection.

ISlabEdge

This interface represents a specific slab edge corresponding to a slab perimeter or slab opening.

GetCoordinates ([out] double *pdStartX, [out] double *pdStartY, [out] double *pdEndX, [out] double *pdEndY, [out, retval] long*plRetval)

Gets the coordinates for the slab edge in 2-dimensions.

Parameters pdStartX The x coordinate at the start of the slab edgepdStartY The y coordinate at the start of the slab edgepdEndX The x coordinate at the end of the slab edgepdEndY The y coordinate at the end of the slab edgeplRetval 0 if successful, -1 if coordinates cannot be retrieved

SetCoordinates ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [out, retval] long* plRetval)

 Gets the coordinates for the slab edge in 2-dimensions.

Parameters dStartX The x coordinate at the start of the slab edgedStartY The y coordinate at the start of the slab edgedEndX The x coordinate at the end of the slab edgedEndY The y coordinate at the end of the slab edge

Page 172: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 172/450

dEndY The y coordinate at the end of the slab edgeplRetval 0 if successful, -1 if coordinates cannot be set

PropertiesType Property Get Set Description

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.

ISlabEdges

This interface represents a collection of slab edges. Slab edges are associated with either a slab perimeter or a slab opening.

Add ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [in] double dOffset, [out, retval] ISlabEdge**ppISlabEdge)

 Adds a new slab edge or opening edge to the collection. Only works if the receiver was created using IFloorType::GetAllSlabEdges orIFloorType::GetAllSlabOpenings.

Parameters double dStartX The X coordinate of the beginning of the slab/opening edge.double dStartY The Y coordinate of the beginning of the slab/opening edge.double dEndX The X coordinate of the end of the slab/opening edge.double dEndX The X coordinate of the end of the slab/opening edge.double dOffset The offset of the actual edge from the given points.ppISlabEdge Pointer to an ISlabEdge interface that represents the requested slab edge, or NULL if lIndex is invalid.

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

Deletes the given slab edge or opening edge from the collection. Only works if the receiver was created usingIFloorType::GetAllSlabEdges or IFloorType::GetAllSlabOpenings.

Parameters 

lIndex The index into the collection of the requested slab/opening edgeplRetval If less than zero, the deletion failed. Otherwise, the deletion was successful.

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

Gets an interface for a specific slab edge by index.

Page 173: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 173/450

Parameters lIndex The index into the collection of the requested slab edgeppISlabEdge Pointer to an ISlabEdge interface that represents the requested slab edge, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of slab edges in the collection.

Parameters plCount Number of slab edges in the collection

ISlabOpening

This interface represents a specific slab opening on a floor type.

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

Gets the collection of edges for this slab opening.

Parameters ppISlabEdges Pointer to an ISlabEdges collection interface that represents the edges that define this slab opening.

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

Gets the collection of vertices for this slab opening.

Parameters ppIVertexCoordinats Pointer to an IPoints collection interface that represents the vertices that define this slab opening.

PropertiesType Property Get Set Description

Type Property Get Set Description

long lUID X Unique ID of slab opening

ISlabOpenings

This interface represents a collection of all slab openings on a floor type.

Page 174: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 174/450

p p g yp

Add (not implemented)

Delete (not implemented) 

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

Gets an interface for a specific slab opening by unique ID.

Parameters lUID The unique ID of the requested slab perimeterppISlabOpening Pointer to an ppISlabOpening interface that represents the requested slab opening, or NULL if no slab opening is

found in the collection with the given unique ID.

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

Gets an interface for a specific slab opening by index.

Parameters lIndex The index into the collection of the requested slab openingppISlabOpening Pointer to an ISlabOpening interface that represents the requested slab opening, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of slab openings in the collection.

Parameters plCount Number of slab openings in the collection

ISlabPerimeter

This interface represents a specific slab perimeter on a floor type.

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

Gets the collection of edges for this slab perimeter.

Page 175: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 175/450

Parameters ppISlabEdges Pointer to an ISlabEdges collection interface that represents the edges that define this slab perimeter.

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

Gets the collection of vertices for this slab perimeter.

Parameters ppIVertexCoordinates Pointer to an IPoints collection interface that represents the vertices for this slab perimeter.

PropertiesType Property Get Set Description

long lUID X Unique ID of slab perimeter

ISlabPerimeters

This interface represents the collection of slab perimeters on a floor type.

Add (not implemented)

Delete (not implemented) 

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

Gets an interface for a specific slab perimeter by unique ID.

Parameters lUID The unique ID of the requested slab perimeterppISlabPerimeter 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

Page 176: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 176/450

  Adds a new snow load property set to the receiver.

Parameters bstrLabel The label for the new surface load set.ppISurfaceLoadPropSet Pointer to an ISnowLoadPropertySet interface that represents the newly added surface load set.

Delete ([in] long lUID)

Page 177: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 177/450

Delete ([in] long lUID)

Deletes a snow load property set from the collection. Returns 0 if the snow load set was deleted successfully or -1 if the unique ID was notfound in the receiver.

Parameters lUID Unique ID of snow load property to be deleted

Get ([in] long lUID, [out, retval] ISnowLoadPropertySet **ppISnowLoadProperySet)

Gets an interface for a specific snow load property load set by unique ID.

Parameters 

lUID The unique ID of the requested snow load property setppISnowLoadPropertySet Pointer to an ISnowLoadPropertySet interface that represents the requested snow load set or NULL if no snow

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

GetAt ([in] long lIndex, [out, retval] ISnowLoadPropertySet **ppISnowLoadPropertySet)

Gets an interface for a specific surface load set by index.

Parameters lIndex The index into the collection of the requested snow load property setppISnowLoadPropertySetSet Pointer to an ISnowLoadPropertySet that represents the requested snow load property set or NULL if lIndex

is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of surface load sets in the receiver.

Parameters plCount The number of ISnowLoadPropertySet objects in the collection.

 

ISnowLoadSet

This interface defines the points of the polygon that define the limits in which a single ISnowLoadPropertySet is applied.

GetControlPointIndex  ([in] long IWhichPoint , [out, retval] long* plIndex)

Page 178: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 178/450

Gets the index for the polygon point associated with the drift control point.

Parameters IWhichPoint Point 1, 2, or 3 which is associated with drift magnitude 1, 2, or 3.plIndex Index of the drift control point in the polygon.

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

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

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

SetControlPointIndex  ([in] long IWhichPoint , [in] long lIndex)

Sets the index for the polygon point associated with the drift control point.

Parameters IWhichPoint Point 1, 2, or 3 which is associated with drift magnitude 1, 2, or 3.lIndex Index of the drift control point in the polygon.

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

Sets an interface for the collection of points in the receiver.

Parameters pIPoints An IPoints interface to assign to the receiver.plRetVal 0 if points were assigned successfully.

-1 if assignment failed.

PropertiesType Property Get Set Description

Type Property Get Set Description

long lPropertySetUID X X Unique ID of the snow load property set assigned to this surface load set.

long lUID X Unique ID of this snow load set.

ISnowLoadSets

This interface provides a collection of ISnowLoadSets obtained from a single Floor Layout type typically

Page 179: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 179/450

This interface provides a collection of  ISnowLoadSets, obtained from a single Floor Layout type typically.

Add ([in] BSTR bstrLabel, [out,retval] ISnowLoadSet **ppISnowLoadSet)

 Adds a new snow load set to the receiver.

Parameters bstrLabel The label for the new snow load set.ppISnowLoadSet Pointer to an ISnowLoadSet interface that represents the newly added snow load set.

Delete ([in] long lUID)

Deletes a snow load set from the collection. Returns 0 if the snow load set was deleted successfully or -1 if the unique ID was not found in

the receiver.

Parameters lUID Unique ID of snow load set to be deleted

Get ([in] long lUID, [out, retval] ISnowLoadSet **ppISnowLoadSet)

Gets an interface for a specific snow load set by unique ID.

Parameters 

lUID The unique ID of the requested snow load set.ppISurfaceLoadPropSet Pointer to an ISnowLoadSet interface that represents the requested snow load set, or NULL if no surface loadset is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISnowLoadSet **ppISnowLoadSet)

Gets an interface for a specific snow load set by index.

Parameters 

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

GetCount ([out, retval] long *plCount) 

Gets the number of snow load sets in the receiver.

Parameters

Page 180: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 180/450

Parameters plCount The number of ISnowLoadSet objects in the collection.

ISteelBeamDesignResult

This interface represents the steel beam design results for an individual steel beam.

GetNumStudsInSegments ([out, retval] DAArray** ppaINumStudsinSegments)

Gets the collection of stud segments for the steel beam as an array of longs. Use the size of the array to determine the number of studsegments. Each value in the array represents the number of studs in that segment.

Parameters ppaINumStudsDAArray Array of longs that represent the number of studs in each segmentplRetval 0 if successful, -1 if failed to set studs

SetNumStudsInSegments ([in] DAArray* paINumStudsInSegments, [out, retval] long* plRetval)

Sets the collection of stud segments for the steel beam as an array of longs. Each value in the array represents the number of studs in thatsegment. Note that the number of stud segments for the beam is determined at design time. The number of segments should not bechanged unless to change it to uniformly distributed studs (1 stud segment).

Parameters paINumStudsDAArray Array of longs that represent the number of studs in each segmentplRetval 0 if successful, -1 if failed to set studs

ISteelCriteria

This interface provides access to all steel design criteria, including the names of the steel design tables used during the design.Note that all tables must be located in the Tables directory on the target computer.

 GetDeckTableEntries ([out, retval] IDeckTableEntries** ppIDeckTableEntries)

Gets the deck table entries.

Parameters ppIDeckTableEntries Pointer to an IDeckTableEntries interface that represents the entries in the model’s deck table. 

Page 181: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 181/450

Properties

Type Property Get Set DescriptionBOOL bUseModelAltBeamSteelTable X Whether the alternate beam design table used by the model is stored with themodel (TRUE), rather than from the Tables directory (FALSE). No longerapplicable in v14.06.00 and later.

BOOL bUseModelMasterTable X Whether the master table used by the model is stored with the model (TRUE),rather than from the Tables directory (FALSE). No longer applicable in v14.06.00and later.

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

BOOL bWOAllowStiffenerTwoSide X X Allow stiffeners on both sides of web (used during design of steel beams whenstiffeners are required for web openings)

double dJstAllowableStressRatio X X Allowable stress ratio for joists

double dJstDefMaxConcentratedLoads X X Maximum concentrated loads in kips (default criteria, applies wheneStlJstNonUniUseEquivalentMethod is specified foreJstDefNonUniformLoadOption)

double dJstDefUniformTolerance X X Tolerance for variation for uniform load (0-100%) (Default criteria for joists withuniform load, when eStlJstUniSelectFromStdTable is specified foreJstDefUniformLoadOption)

double dJstDefVariationTolerance X X Tolerance for variation of loads (default criteria, applies wheneStlJstNonUniUseEquivalentMethod is specified foreJstDefNonUniformLoadOption)

double dWOStiffenerFy X X Fy of stiffeners for web openings

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

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

double dWOStiffenerMinWidth X X Minimum width of stiffeners (used during design of steel beams when stiffenersare required for web openings)

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

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

ESteelDesignCode  eBasePlateDesignCode X X Design code to use for design of base plates

EJstNonUniformLoadOption  eJstDefNonUniformLoadOption X X Default criteria for joists with non-uniform load

Type Property Get Set Description

EJstUniformLoadOption  eJstDefUniformLoadOption X X Default criteria for joists with uniform load

ESteelDesignCode  eSteelBeamDesignCode X X Design code to use for design of steel beams

ESteelDesignCode  eSteelColumnDesignCode X X Design code to use for design of steel columns

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.

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

BSTR strAltSteelBeamTable X X Alternate section table to use when designing steel beams File must have a bms

Page 182: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 182/450

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

 

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

Maximum 32 characters allowed. 

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

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

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

 

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

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 32characters allowed.

 

BSTR strJstDefUniformCSJstTable X X Default constant shear table to use when designing joists with uniform loads(applies if eStlJstUniSelectFromCSTable is specified foreJstDefUniformLoadOption). File must have a .csj extension. Maximum 32characters allowed.

 

BSTR strJstDefUniformStdJstTable X X Default standard joist table to use when designing joists with uniform loads(applies if eStlJstUniSelectFromStdTable is specified foreJstDefUniformLoadOption). File must have a .jst extension. Maximum 32characters allowed.

BSTR strMasterSteelTable X X Master section table that lists all sections to be used during design. File musthave a .tab extension. Maximum 32 characters allowed.

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

 

ISteelMaterial

This interface represents a single steel material property set. A member’s steel material properties can be read and set thr ough thisinterface.

 

PropertiesType Property Get Set Description

double dFy X X Yield strength (Fy) of the steel.

IStories

Page 183: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 183/450

IStories

This interface represents a collection of all stories in the model. It can be used to add and delete stories.

Add ([in] long lFlrTypeID, [in] BSTR bstrStoryName, [in] double dFloorHeight, [out, retval] IStory** ppIStory)

 Adds a new story to the collection of stories for the model.

Parameters lFlrTypeID The unique ID of the floor type to associate with this storybstrStoryName 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.

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

Deletes a story with the given unique ID from the collection.

Parameters lUID Unique ID of story to deleteplRetval 0 if story is deleted successfully

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

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

Gets an interface for a specific story by unique ID.

Parameters lUID The unique ID of the requested storyppIStory Pointer to an IStory interface that represents the requested story, or NULL if no story is found in the collection with

the given unique ID.

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

 Gets an interface for a specific story by index.

Parameters lIndex The index into the collection of the requested storyppIStory Pointer to an IStory interface that represents the requested story, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Page 184: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 184/450

([ , ] g p )

Gets the number of stories in the collection.

Parameters plCount Number of stories in the collection

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

Gets a collection of user-defined property definitions for stories.

Parameters strCustomProps 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

InsertAt ([in] long lIndex, [in] long lFlrTypeID, BSTR bstrStoryName, [in] double dFloorHeight, [out, retval] IStory** ppIStory)

Inserts a story at the specified index. For example, if 0 is the new story index, a new story is added at the lowest level and all other storiesare pushed up one level.

Parameters lIndex Index where the story is added

lFlrTypeID Unique ID of the floor typedFloorHeight Story height between the inserted story and the story (or base) belowppIStory Pointer to an IStory interface that represents the inserted story.

IStory

This interface represents a single story in the model.

 

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

Deletes the vertical brace with the given unique ID.

Parameters lBraceID Unique ID of vertical brace to deleteplRetval 0 if vertical brace is deleted successfully

Page 185: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 185/450

p y-1 if unique ID is not found in list of vertical braces on this story

GetBeams ([out, retval] IBeams** ppIBeams)

Gets the collection of all beams for this story.

Parameters ppIBeams Pointer to an IBeams collection interface that represents all beams associated with this story

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

Gets the collection of all columns for this story.

Parameters ppIColumns Pointer to an IColumns collection interface that represents all columns associated with this story

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

Gets the collection of all continuous foundations for this story.

Parameters ppIContinuousFnds Pointer to an IContinuousFnds collection interface that represents all continuous foundations associated with this

story

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

Gets the collection of all diaphragms for this story. Note that this is equivalent to calling GetDiaphragms2 with eSource set toeDSFrameAnalysis.

Parameters ppIDiaphragms Pointer to an IDiaphragms collection interface that represents all diaphragms associated with this story

GetDiaphragms2 ([in] EDiaphragmSource eSource, [out, retval] IDiaphragms** ppIDiaphragms)

Gets the collection of all diaphragms for this story from the given source.

Parameters eSource The source from which to fetch the diaphragm data. Note that the behavior of the IDiaphragms object is affected

by the source from which it was loaded.ppIDiaphragms Pointer to an IDiaphragms collection interface that represents all diaphragms associated with this story, populated

Page 186: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 186/450

from the given source.

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

Gets the floor type associated with this story.

Parameters ppIFloorType Pointer to an IFloorType interface that represents the floor type associated with this story

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

Gets the collection of all horizontal braces for this story.

Parameters ppIHorizBraces Pointer to an IHorizBraces collection interface that represents all horizontal braces associated with this story

GetIsolatedFnds ([out, retval] IIsolatedFnds** ppIIsolatedFnds)

Gets the collection of all isolated foundations for this story.

Parameters ppIIsolatedFnds Pointer to an IIsolatedFnds collection interface that represents all isolated foundations associated with this story

GetMemberReactionNodesFromFloorBelow ([out, retval] IReactionNodes** ppIReactionNodes)

Gets the collection of nodes at the bottom of the story in the concrete analysis finite element model.

Parameters ppIReactionNodes Pointer to an IReactionNodes interface that represents a collection of reaction nodes for this member

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

 Gets a collection of user-defined properties for the story.

Parameters strCustomProps 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

G tP t ( S ** )

Page 187: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 187/450

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

Gets an interface for a specific property by property name.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

GetTimeStamp ([in] ETimeStampAction eAction, [in] long lObjectID, [in] ETimeStampProperty eProperty, [out] long *plTimestamp,[out, retval] long *plRetval)

Gets the time stamp of the last update to this story, for the given action and property.

Parameters eAction 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 amember of that type).

eProperty For some objects the property that changed may be of importance as well. For example, to find the most recenttime that a beam size was changed you would pass in the eTSSize property along with a beam unique ID and anaction.

plTimestamp The time in seconds since Jan 1, 1969

plRetval 0 if time stamp retrieved successfully

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

Gets the collection of all vertical braces whose top node attaches to this story.

Parameters ppIVerticalBraces Pointer to an IVerticalBraces collection interface that represents all vertical braces at this story

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

Gets the collection of all walls for this story.

Parameters ppIWalls Pointer to an IWalls collection interface that represents all walls associated with this story

GetZForPoint ([in] double dX, [in] double dY, [out, retval] double *pdZ)

Page 188: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 188/450

([ ] , [ ] , [ , ] p )

Gets the elevation of a point inside the slab edge on a story. The method will fail if the point is outside of the slab edge.

Parameters dX X coordinate of the pointdY Y coordinate of the pointpdZ Z coordinate on the story cooresponding to the X and Y coordinates

IsolateFloorType ()

If there are any other stories using the floor type referenced by the story, a copy of the floor type is made and assigned to the other stories.

PropertiesType Property Get Set Description

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

double dElevation X The elevation of the story from ground level to the bottom of the story

double dFlrHeight X X The height of this story (not the elevation, but the distance from floor to ceiling)

long lLevel X The level of the story, with 1 being the lowest story

long lUID X Unique ID of story.

BSTR strLabel X X Label of story. Limited to 19 characters.

IStress

This interface is used represent a single stress. Refer to the RAM Concrete Shear Wall manual for sign convention.

PropertiesType Property Get Set Description

DOUBLE dS11 X In plane normal stress.

DOUBLE dS12 X In plane shear stress along an edge.

Type Property Get Set Description

DOUBLE dS13 X Transverse shear stress.

DOUBLE dS22 X In plane normal stress.

DOUBLE dS23 X Transverse shear stress.

DOUBLE dS33 X Transverse direct stress.

DOUBLE dSAvgMax X Average stress.

DOUBLE dSMax X Maximum in plane principal stress

DOUBLE dSMin X Minimum in plane principal stress

DOUBLE dSVMax X Maximum shear stress.

Page 189: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 189/450

IStresses

This interface is used to hold a collection of  IStress objects.

GetAt ([in] long lIndex, [out, retval] IStress** ppIStress)

Gets the IStress object at the specified index.

Parameters lIndex The index of the specified stress.ppIStress The IStress object at the specified index.

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

Gets number of IStress objects in the collection.

Parameters plCount The number of INode objects in the collection.

IStringValue

Internal use only.

ISurfaceLoadPropertySet

This interface provides the properties of a surface load as defined in the RAM Modeler. These properties are typically associatedwith ISurfaceLoadSets which define the extents (polygon) in which these properties are to be applied.

PropertiesType Property Get Set Description

double dConstDeadLoad X X Magnitude of construction dead load entered for this surface load.

double dConstLiveLoad X X Magnitude of construction live load entered for this surface load.

Page 190: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 190/450

double dConstLiveLoad X X Magnitude of construction live load entered for this surface load.

double dDeadLoad X X Magnitude of dead load entered for this surface load.

double dLiveLoad X X Magnitude of live load entered for this surface load.

double dMassDeadLoad X X Mass dead load magnitude (positive is down)

double dPartitionLoad X X Madgnitude of partition load entered for theis surface load

ELoadCaseType eLiveLoadType X X Flag describing the type of live load defined by this surface loadproperty set. While ELoadCaseType enumerates all possible loadcase types, only the live load type is returned in this parameter. Thepossible return values are: LiveReducibleLCa, LiveStorageLCa,LiveUnReducibleLCa, and LiveRoofLCa.

long lUID X Unique ID of surface load property set.

BSTR strLabel X X Label of surface load property set.

ISurfaceLoadPropertySets

This interface represents a collection of  ISurfaceLoadPropertySet objects.

Add ([in] BSTR bstrLabel, [out,retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)

 Adds a new surface load property set to the receiver.

Parameters bstrLabel The label for the new surface load property set.

ppISurfaceLoadPropSet Pointer to an ISurfaceLoadPropertySet interface that represents the newly added surface load property set.

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

Deletes a surface load property set from the collection.

Parameters lUID Unique ID of floor type to be deletedplRetval 0 if surface load property set is deleted successfully

-1 if the unique ID was not found in the receiver.

Get ([in] long lUID, [out, retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)

Gets an interface for a specific surface load property set by unique ID.

Parameters lUID The unique ID of the requested surface load property set.

Fl T P i t t IS f L dP t S t i t f th t t th t d f l d t t NULL if

Page 191: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 191/450

ppFloorType Pointer to an ISurfaceLoadPropertySet interface that represents the requested surface load property set, or NULL if nosurface load property set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISurfaceLoadPropertySet **ppISurfaceLoadPropSet)

Gets an interface for a specific surface load property set by index.

Parameters lIndex The index into the collection of the requested surface load property setppISurfaceLoadPropSet Pointer to an ISurfaceLoadPropertySet interface that represents the requested surface load property set, or

NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of surface load property sets in the receiver.

Parameters plCount The number of ISurfaceLoadPropertySet objects in the collection.

ISurfaceLoadSet

This interface defines the points of the polygon that define the limits in which a single SurfacePropertyLoadSet is applied.

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

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

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

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

Sets an interface for the collection of points in the receiver.

Parameters pIPoints An IPoints interface to assign to the receiver.plRetVal 0 if points were assigned successfully.

-1 if assignment failed.

Page 192: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 192/450

ISurfaceLoadSet PropertiesType Property Get Set Descriptionlong lPropertySetUID X X Unique ID of the surface load property set to which this surface load set belongs.

long lUID X Unique ID of this surface load set.

ISurfaceLoadSets

This interface provides a collection of  ISurfaceLoadSets, obtained from a single Floor Layout type typically.

Add ([in] BSTR bstrLabel, [out,retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)

 Adds a new surface load set to the receiver.

Parameters bstrLabel The label for the new surface load set.ppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the newly added surface load set.

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

Deletes a surface load set from the collection.

Parameters lUID Unique ID of surface load set to be deletedplRetval 0 if surface load set is deleted successfully

-1 if the unique ID was not found in the receiver.

Get ([in] long lUID, [out, retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)

Gets an interface for a specific surface load set by unique ID.

 Parameters lUID The unique ID of the requested surface load set.ppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the requested surface load set, or NULL if no surface

load set is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] ISurfaceLoadSet **ppISurfaceLoadPropSet)

G t i t f f ifi f l d t b i d

Page 193: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 193/450

Gets an interface for a specific surface load set by index.

Parameters lIndex The index into the collection of the requested surface load setppISurfaceLoadPropSet Pointer to an ISurfaceLoadSet interface that represents the requested surface load set, or NULL if lIndex is

invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of surface load sets in the receiver.

Parameters 

plCount The number of ISurfaceLoadSet objects in the collection.

ITable

This interface is used represent a generic database table.

DeleteRecord ([in] BSTR bstrFieldName, [in] long lFieldValue)

Deletes a record by field value. The specified field must be a field that was created with bIndexed set to 1.

Parameters bstrFieldName The name of the field to match lFieldValue with.lFieldValue The value in the field named bstrFieldName. The record that has the given value for the given field will be

deleted.

GetRecord ([in] BSTR bstrFieldName, [in] long lFieldValue, [out,retval] IRecord** ppIRecord)

Gets an interface for a specific record by field value. The specified field must be a field that was created with bIndexed set to 1.

 Parameters bstrFieldName The name of the field to match lFieldValue with.lFieldValue The value in the field named bstrFieldName.ppIRecord Pointer to an IRecord interface that represents the requested record, or NULL if no records have the given

value in the given field.

PropertiesType Property Get Set Description

Page 194: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 194/450

Type Property Get Set Description

IFields pIFields X The fields in the table.

IRecords pIRecords X The records in the table.BSTR strName X The name of the table.

ITrialGroup

This interface represents a steel column trial group.

GetGroupName ([in] ESteelShapes peShape, [out, retval] BSTR bstrGroupName)

Gets the name of the trial group for the section type (W12, HSS8X8, etc.).

Parameters peShape Steel section shape typebstrGroupName Trial group name for the section type (W12, HSS8X8, etc)

GetShapeName ([in] ESteelShapes peShape, [out, retval] BSTR bstrShapeName)

Gets the description of the section type (I section, Rectangular HS, etc).

Parameters 

peShape Steel section shape typebstrShapeName Description of the section type (I section, Rectangular HS, etc)

SetGroupName ([in] ESteelShapes peShape, [in] BSTR bstrGroupName)

Sets the name of the trial group for the section type (W12, HSS8X8, etc).

Parameters peShape Steel section shape type

bstrGroupName Trial group name for the section type (W12, HSS8X8, etc)

PropertiesType Property Get Set Description

BOOL bEnabled X X Indicates whether or not this trial group is selected. 

ITr ialGroups

Page 195: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 195/450

ITr ialGroups

This interface represents a collection of  ITrialGroup objects.

GetAt ([in] long lIndex, [out, retval] ITrialGroup ** ppITrialGroup)

Gets an interface for a specific trial group by index.

Parameters lIndex The index into the collection of the requested trial group.ppITrialGroup Pointer to an ITrialGroup interface that represents the requested trial group, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of trial groups in the receiver.

Parameters plCount The number of ITrialGroup objects in the collection.

IVerticalBrace

This interface represents a single vertical brace. This interface can be used to modify the location of the brace or to change its

properties.

GetConnectionForces ([in] ECOMBOTYPES eComboType, [in, out] SForce* psForceTop, [in, out] SForce* psForceBot, [out,retval] long* plRetval)

Gets the brace connection forces by material combo.

Parameters eComboType Combination type.

psForceTop SForce at the top end of the bracepsForceBot SForce at the bottom end of the braceplRetval 0 if successful, -1 if forces cannot be retrieved

GetEndCoordinates ([out] SCoordinate* pTopPoint, [out] SCoordinate* pBottomPoint, [out, retval] long* plRetval)

Gets the end coordinates for the vertical brace.

Parameters

Page 196: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 196/450

Parameters pTopPoint SCoordinate corresponding to the top of the brace

pBottomPoint SCoordinate corresponding to the bottom of the braceplRetval 0 if successful

-1 if coordinates cannot be retrieved

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

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

Parameters strCustomProps 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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

SetEndCoordinates  ([in] long lTopStoryID, [in] double dTopX, [in] double dTopY, [in] double dTopZOffset, [in] long lBotStoryID,[in] double dBotX, [in] double dBotY, [in] double dBotZOffset, [out, retval] long* plRetval)

Gets the end coordinates for the vertical brace.

Parameters lTopStoryID Unique ID of story that top node of brace frames intodTopX X coordinate of top of the brace.

dTopY Y coordinate of top of the bracedTopZOffset Z offset value from the story elevation for top of bracelBotStoryID Unique ID of story that bottom node of brace frames intodBotX 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

Page 197: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 197/450

PropertiesType Property Get Set Description

BOOL bBucklingRestrained X X True if the braced is a buckling restrainted brace.

BOOL bCoreBraceOverStrengthUseCalculated X X True if CoreBrace overstrength parameters set to Use Calculated

BOOL bCoreBraceUseAssigned X X True if CoreBrace dialog set to Use, False if Use Global

BOOL bDblAngleLLBacktoBack X X Applies to a steel vertical brace that has been assigned a doubleangle section. If TRUE, long legs of double angle are back to back.If FALSE, short legs are back to back.

BOOL bDblAngleSnugTightBolt X X Applies to a steel vertical brace that has been assigned a doubleangle section. TRUE indicates that only a snug tight connector willbe used.

BOOL bMajAxisBendFixedBot X X Major axis bending release at bottom of vertical brace.

BOOL bMajAxisBendFixedTop X X Major axis bending release at top of vertical brace.BOOL bMinAxisBendFixedBot X X Minor axis bending release at bottom of vertical brace.

BOOL bMinAxisBendFixedTop X X Minor axis bending release at top of vertical brace.

BOOL bSglAngleLLHorizontal X X Applies to a steel vertical brace that has been assigned a singleangle section. TRUE indicates that the long leg of the angle ishorizontal. FALSE indicates that the long leg is vertical.

BOOL bStarSeismicOverStrengthUseCalculated X X True if the Star Seismic overstrength set to use calculated

BOOL bStarSeismicUseAssigned X X TRUE if use assigned is toggled

BOOL bTorFixedBot X X Torsion release at bottom of vertical brace.

BOOL bTorFixedTop X X Torsion release at top of vertical brace.

BOOL bWildcatBRB X X Wildcat buckling restrained bracedouble dBRBFAxialStiffMultiplier X X Buckling restrained brace axial stiffness multiplier used in analysis

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

double dCoreBraceBoltedClearanceBot X X CoreBrace clearance for lower bolted

double dCoreBraceBoltedClearanceTop X X CoreBrace clearance for upper bolted

double dCoreBraceCustomClearanceBot X X CoreBrace clearance for lower custom

double dCoreBraceCustomClearanceTop X X CoreBrace clearance for upper custom

double dCoreBraceFyMax X X CoreBrace maximum yield strength

Type Property Get Set Description

double dCoreBraceFyMin X X CoreBrace minimum yield strength

double dCoreBraceOverStrengthBeta X X Beta value for CoreBrace overstrength

double dCoreBraceOverStrengthOmega X X Omega value for CoreBrace overstrength

double dCoreBracePinnedClearanceBot X X CoreBrace clearance for lower pinned

double dCoreBracePinnedClearanceTop X X CoreBrace clearance for upper pinned

double dCoreBraceSplicePlateClearanceBot X X CoreBrace clearance for lower sideplate

double dCoreBraceSplicePlateClearanceTop X X CoreBrace clearance for upper bolted

double dCoreBraceStiffModUseOrFactorValue X X CoreBrace stiffness modifier factor or explicit value

double dCoreBraceWeldedClearanceBot X X CoreBrace clearance for lower welded

Page 198: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 198/450

double dCoreBraceWeldedClearanceBot X X CoreBrace clearance for lower welded

double dCoreBraceWeldedClearanceTop X X CoreBrace clearance for upper welded

double dStarSeismicFyMax X X Maximum yield strength of Star Seismic BRBdouble dStarSeismicFyMin X X Minimum yield strength of Star Seismic BRB

double dStarSeismicLowerFromBeam X X Minimum clearance from lower beam

double dStarSeismicLowerFromColumn X X Minimum clearance from lower column

double dStarSeismicOverStrengthBeta X X Beta value for Star Seismic overstrength

double dStarSeismicOverStrengthOmega X X Omega value for Star Seismic overstrength

double dStarSeismicStiffModUseVal X X User assigned stiffness modifier if bStarSeismicUseAssigned isTRUE

double dStarSeismicUpperFromBeam X X Minimum clearance from upper beam

double dStarSeismicUpperFromColumn X X Minimum clearance from upper column

double dUnbracedLengthAxialLX X X Axial unbraced length for buckling about the X axis

double dUnbracedLengthAxialLY X X Axial unbraced length for buckling about the Y axis

double dUnbracedLengthFlexLY X X Flexural unbraced length for lateral torisional buckling

ETensionCompressionMemType  eAnalysisType X X Indicates whether vertical brace takes tension, compression, orboth

ECoreBraceType  eCoreBraceConnectionType X X CoreBrace connection type

EMATERIALTYPES  eMaterial X X Material type of vertical brace. Valid options for vertical braces areESteelMat, EConcreteMat, or EOtherMat.

ESeismicProvFrameType  eSeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame,etc).

long lCoreBraceCheckBoxes X X CoreBrace flags. Sum the individual flags to determine theappropriate value for the setting.1 – Yield Strength

2 – Stiffness Modifier4 – Overstrength Parameters8 – Minimum Clearance

long lCoreBraceUseCalcStiffMod X X CoreBrace Stiffness Modifier option toggle0 – Use Calculated1 – Use Calculated Factored By2 – Use

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

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

Type Property Get Set Description

long lMaterialID X Unique ID of material properties for this vertical brace. Mustcorrespond to type of material. See section Getting materialproperties for a member for more information.

long lSectionID X X Unique ID of concrete or ‘Other’ section assigned to this verticalbrace. See Assigning section properties to concrete members and

 Assigning section properties to ‘Other’ members for moreinformation.

long lStarSeismicCheckBoxes X X Unbraced length flags. Sum the appropriate flags to determine theappropriate value for the settings.

Page 199: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 199/450

pp p g0 – Use Global

1 – Yield Strength checked2 – Minimum Clearance checked4 – Stiffness Modifier checked

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

Long lStarSeismicUseCalcStiffMod X X StarSeismic Brace Stiffness Modifier option toggle0 – Use Calculated1 – Use Calculated Factored By2 – Use

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

long lUID X Unique ID of vertical brace.

long lUnbracedLength X X Unbraced length flags. Sum the appropriate flags to determine theappropriate value for the settings.

0 – All global1 – Override global UnbracedLengthAxialLX2 – Override global UnbracedLengthAxialLY4 – User defined UnbracedLengthAxialLX8 – User defined UnbracedLengthAxialLY32 – Override global UnbracedLengthFlexLY128 – User defined UnbracedLengthFlexLY

ESeismicProvFrameType SeismicFrameType X The Seismic Frame Type of the member (Special Moment Frame,etc)

BSTR strSectionLabel X X Label of the size or section property for this vertical brace. Limitedto 15 characters. See Assigning sizes to steel members, Assigningsection properties to concrete members, and Assigning section

properties to ‘Other’ members for more information.

IVerticalBraces

This interface represents a collection of vertical braces. When it is obtained from the IModel interface, it will represent all verticalbraces in the model. When it is obtained from the IStory interface, it will represent the collection of all vertical braces whose topnodes 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 bracesfrom the model.

Add ([in] EMATERIALTYPES eMat, [in] long lTopStoryID, [in] double dTopX, [in] double dTopY, [in] double dTopZOffset, [in] longlBotStoryID, [in] double dBotX, [in] double dBotY, [in] double dBotZOffset [out, retval] IVerticalBrace** ppIVerticalBrace)

 Adds a new vertical brace to the collection of vertical braces.

Parameters

Page 200: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 200/450

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 intodTopX X coordinate of top of the brace.dTopY Y coordinate of top of the bracedTopZOffset Z offset value from the story elevation for top of bracelBotStoryID Unique ID of story that bottom node of brace frames into, or -1 if at ground leveldBotX 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.

Parameters lUID Unique ID of vertical brace to deleteplRetval 0 if vertical brace is deleted successfully

-1 if unique ID is not found in filtered list of vertical braces

Filter  ([in] EVerticalBraceFilter  eVertBraceFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of vertical braces based on given criteria.

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

-1 if collection could not be filtered

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

Gets an interface for a specific vertical brace by unique ID.

Parameters lUID The unique ID of the requested vertical braceppIVerticalBrace 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 201: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 201/450

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

Gets an interface for a specific vertical brace by index.

Parameters lIndex The index into the collection of the requested vertical braceppIVerticalBrace Pointer to an IVerticalBrace interface that represents the requested vertical brace, or NULL if lIndex is invalid.

GetCount ([out, retval] long* plCount)

Gets the number of vertical braces in the collection. When the collection is filtered, this function returns the number in the filtered collection.

Parameters plCount Number of vertical braces in the collection

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

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

Parameters strCustomProps 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 thismember 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 usedto read data for a wall at a story. To change coordinates, use the ILayoutWall interface.

 

GetDisplacementForLoadCombo ([in] ILoadCombination *pILoadCombination, [out, retval] SCoordinate *pDisplacement)

Gets the average relative displacements associated with this wall for the given load combo. Average displacements at top and bottom edgeof the wall is first calculated and then difference between the top average and bottom average is returned.

Parameters pILoadCombination The load combination to use in the displacement calculation.

Page 202: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 202/450

p ppDisplacement Relative average displacements in global X, Y and Z directions

GetEndCoordinates ([out] SCoordinate* pTopStartPoint, [out] SCoordinate* pTopEndPoint, [out] SCoordinate* pBotStartPoint,[out] SCoordinate* pBotEndPoint [out, retval] long* plRetval)

Gets the coordinates for the wall.

Parameters pTopStartPoint SCoordinate corresponding to the start of the wall at the toppTopEndPoint SCoordinate corresponding to the end of the wall at the toppBotStartPoint SCoordinate corresponding to the start of the wall at the bottom

pBotEndPoint SCoordinate corresponding to the end of the wall at the bottomplRetval 0 if successful-1 if coordinates cannot be retrieved

GetFinalOpenings ([out, retval] IFinalWallOpenings** ppIFinalWallOpenings)

Gets the final wall openings associated with this wall. Final openings are all openings that fall at least partially on this wall, and are clippedto the wall polygon.

Parameters ppIFinalWallOpenings Pointer to an IFinalWallOpenings collection interface that represents the raw openings in the wall.

GetNodeForcesAtEdge ([in] EAnalysisResultType eAnalysisType, [in] long lAnalysisLoadCaseID, [in] EEdge edge, [out,retval]IPointLoads** ppINodeForces)

Gets a collection of all the nodes and their corresponding force for a given analysis type, load case ID and wall edge. Node forces will bewith respect to the global axis.

Parameters eAnalysisType Type of analysis for which to get force (Currently, only RAMFrameResultType supported)

lAnalysisLoadCaseID Analysis load case ID for which to get forceedge 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.

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

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

Page 203: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 203/450

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.

Parameters bstrPropName The name of the requested propertyppIProperty Pointer to an IProperty interface that represents the requested property, or NULL if no property is found with given

name.

GetRawOpenings ([out, retval] IRawWallOpenings** ppIRawWallOpenings)

Gets the raw wall openings associated with this wall. Raw openings are the openings that were modeled in a wall. Depending on how theopenings 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 allopenings that fall within this wall since some openings modeled in adjacent walls may fall within this wall. To get all openings that intersectthis wall, use the GetFinalOpenings() method.

Parameters ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

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

Gets the raw wall section cuts associated with this wall. Raw openings are the section cuts that start in a wall. Depending on how theopenings were modeled, the openings may span multiple walls. Note that this collection of section cuts may not include all openings thatfall within this wall since some section cuts modeled in adjacent walls may fall within this wall.

Parameters ppIRawWallOpenings Pointer to an IRawWallOpenings collection interface that represents the raw openings in the wall.

GetTotalDisplacementForLoadCombo ([in] ILoadCombination *pILoadCombination, [in] BOOL bTopOfStory, [out, retval]SCoordinate *pDisplacement)

Gets the average displacements associated with this wall for the given load combo at the top or bottom of the wall. If the top of the wallrequested (bTopOfStory=TRUE), average displacements at top edge of the wall is returned. If the bottom of the wall requested(bTopOfStory=FALSE), average displacements at bottom edge of the wall is returned.

Page 204: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 204/450

( p y ), g p g

Parameters pILoadCombination The load combination to use in the displacement calculation.bTopOfStory If TRUE, the displacements returned for the top of the wall (or at the top story)pDisplacement Average displacements at top of bottom of the wall in global X, Y and Z directions

GetWallFEs ([in] EAnalysisResultType eAnalysisType, [out, retval] IWallFEs** ppIWallFEs)

Gets the wall FE collection associated with this wall.

Parameters ppIWallFEs Pointer to an IWallFEs collection interface that represents the wall FEs for the wall.

PropertiesType Property Get Set Description

double dCrackedFactor X X Cracked factor for membrane. Applies if wall is concrete.

double dCrackedFactorForBending X X Cracked factor for out-of-plane bending. Applies if wall is concrete.

double dEndZBotOffset X X Bottom z offset from story below elevation (or foundation) for end of wall. This is madeavailable because the offset at the bottom of the wall (at the transition between floortypes or atthe foundation) may differ from that at the other stories that use the floortype. This is true if themember a wall sits on is lowered or raised.

double dStartZBotOffset X X Bottom z offset from story below elevation (or foundation) for start of wall. This is madeavailable because the offset at the bottom of the wall (at the transition between floortypes or atthe foundation) may differ from that at the other stories that use the floortype. This is true if themember a wall sits on is lowered or raised.

double dThickness X X Thickness of wall

EFRAMETYPE eFramingType X Whether member is lateral or gravity

EMATERIALTYPES eMaterial X X Material type of wall. Valid options for walls are EWallPropConcreteMat orEWallPropOtherMat.

Type Property Get Set Description

long eSharingLoadType X X Returns sharing load type:-1:  None0:  Entirely two-way1:  Entirely one-way2:  One-way and two-way 

long lDxfElevNumber X X DXF elevation number

long lFrameNumber X X Frame number for lateral members. Must be positive number.

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

Page 205: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 205/450

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.long lUID X Unique ID of wall.

long lWallGroupNumber X X Wall group number assigned in RAM Frame

IWal lBarLayout

Concrete wall bar layout information.

GetHorizBarPattern ([out,retval] IWallBarPattern** ppIWallBarPattern)

Gets the receiver’s horizontal bar pattern.

Parameters ppIWallBarPattern Pointer to an IWallBarPattern interface that contains the the receiver’s horizontal bar pattern.  

GetMyWallPanel ([out,retval] IWallPanel **ppIWallPanel)

Gets a pointer to the interface of the wall panel the receiver belongs to.

Parameters ppIWallPanel Pointer to an IWallPanel interface for the wall panel that the receiver belongs to.

GetVertBarPattern ([out,retval] IWallBarPattern** ppIWallBarPattern)

Gets the receiver’s vertical bar pattern.

Parameters ppIWallBarPattern Pointer to an IWallBarPattern interface that contains the the receiver’s vertical bar pattern.  

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

Gets the collection of wall bar sets in the receiver.

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

Properties

Page 206: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 206/450

pType Property Get Set Description

BOOL bUserDef X X Indicates whether or not this wall bar layout contains any user-defined bars. long lUID X The unique ID of this wall bar layout.

IWal lBarLayouts

This interface represents a collection of  IWallBarLayout objects.

Add ([in] long lHorizBarPatternID, [in] long lVertBarPatternID, [in] BOOL bUserDefinedBars, [out,retval] IWallBarLayout **ppIWallBarLayout)

 Adds a new wall bar layout to the receiver.

Parameters lHorizBarPatternID The bar pattern ID of the horizontal bars in the new wall bar layout.lVertBarPatternID The bar pattern ID of the vertical bars in the new wall bar layout.bUserDefinedBars Indicates whether or not the new wall bar layout contains any user-defined bars.ppIWallBarLayout Pointer to an IWallBarLayout interface that represents the newly added wall bar layout.

Clear ()

Deletes all wall bar layouts from the collection.

Delete ([in] long lUID)

Deletes a wall bar layout from the collection.

Parameters lUID Unique ID of the wall bar layout to delete.

 Get ([in] long lUID, [out, retval] IWallBarLayout ** ppIWallBarLayout)

Gets an interface for a specific wall bar layout by unique ID.

Parameters lUID The unique ID of the requested wall bar layout.ppIWallBarLayout Pointer to an IWallBarLayout interface that represents the requested wall bar layout, or NULL if no wall bar layout is

found in the collection with the given unique ID.

Page 207: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 207/450

GetAt ([in] long lIndex, [out, retval] IWallBarLayout ** ppIWallBarLayout)

Gets an interface for a specific wall bar layout by index.

Parameters lIndex The index into the collection of the requested wall bar layout.ppIWallBarLayout Pointer to an IWallBarLayout interface that represents the requested wall bar layout, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall bar layouts in the receiver.

Parameters plCount The number of IWallBarLayout objects in the collection.

IWallBarPattern

This interface represents a particular bar pattern. They are generated based on the settings in a wall bar pattern template. One wallbar pattern is generated for every possible combination of values in a bar pattern template.

GetMyWallPatternTemplate ([out,retval] WallBarPatternTemplate** ppWallBarPatternTemplate)

Gets an interface for the receiver’s wall bar pattern template.

Parameters ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface for the receiver’s wall bar pattern template. 

Properties

Type Property Get Set Description

double dDiameter X The diameter (in inches) of the bars in the pattern.

double dSpacing X The spacing between bars in the pattern.

long lBarPatternTemplateID X The unique ID of the WallBarPatternTemplate to which this wall bar pattern belongs.

long lUID X The unique ID of this wall bar pattern.

BSTR strBarSize X The name (from the concrete table) of the size of the bars in the pattern.

IWallBarPatterns

Page 208: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 208/450

IWallBarPatterns

This interface represents a collection of wall bar patterns.

Get ([in] long lUID, [out, retval] IWallBarPattern ** ppIWallBarPattern)

Gets an interface for a specific wall bar pattern by unique ID.

Parameters lUID The unique ID of the requested wall bar pattern.ppIWallBarPattern Pointer to an IWallBarPattern interface that represents the requested wall bar pattern, or NULL if no wall bar pattern

is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallBarPattern ** ppIWallBarPattern)

Gets an interface for a specific wall bar pattern by index.

Parameters lIndex The index into the collection of the requested wall bar patternppIWallBarPattern Pointer to an IWallBarPattern interface that represents the requested wall bar pattern, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall bar patterns in the receiver.

Parameters plCount The number of IWallBarPattern objects in the collection.

Add ([in] BSTR bstrBarSize, [in] double dSpacing, [in] double dDiameter, [out,retval] IWallBarPattern** ppIWallBarPattern)

 Adds a new wall bar pattern to the receiver.

Parameters bstrBarSize The bar size name of the new wall bar pattern. This must be a valid bar size from the concrete table.dSpacing The spacing between bars in the new wall bar pattern.dDiameter The diameter of bars in the new wall bar pattern. This must be the appropriate number for the given bstrBarSize

value.ppIWallBarPattern Pointer to an IWallBarPattern interface that represents the newly added wall bar pattern.

Clear ()

Deletes all wall bar patterns from the collection

Page 209: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 209/450

Deletes all wall bar patterns from the collection.

DeleteAt ([in] long lIndex)

Deletes a wall bar pattern from the collection at the specified index.

Parameters lIndex Index in the collection of the wall bar pattern to delete.

IWallBarPlacementConcrete wall bar placement information.

GetMyWallBarSet ([out,retval] IWallBarSet** ppIWallBarSet)

Gets a pointer to the interface of the wall bar layout the receiver belongs to.

Parameters ppIWallBarSet Pointer to an IWallBarSet interface for the wall bar set that the receiver belongs to.

PropertiesType Property Get Set Description

BOOL bUserDefined X User defined flag

double dDiameter X Bar diameter

EBarEndCondition eConditionEnd X End condition

EBarEndCondition eConditionStart X Start condition

long lNumCurtains X Number of reinforcing curtains

SCoordinate sCoordinateEnd X End coordinates

SCoordinate sCoordinateStart X Start coordinates

BSTR strBarName X Bar name

 

IWallBarPlacements

This interface represents a collection of  IWallBarPlacement objects.

Add ([in] double dStartX, [in] double dStartY, [in] double dEndX, [in] double dEndY, [in] EBarEndCondition eStartCondition, [in]EBarEndCondition eEndCondition, [in] BOOL bUserDefined, [in] BSTR strBarName, [in] double dDiameter, [in] long lNumCurtains,[out retval] IWallBarPlacement** ppIWallBarPlacement)

Page 210: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 210/450

[out,retval] IWallBarPlacement ppIWallBarPlacement)

 Adds a new wall bar placement to the receiver.

Parameters dStartX Start X coordinatedStartY Start Y coordinatedEndX End X coordinatedEndY End Y coordinateeStartCondition Start conditioneEndCondition End conditionbUserDefined User defined flag

strBarName Bar namedDiameter Bar diameterlNumCurtains Number of reinforcing curtainsppIWallBarPlacement Pointer to an IWallBarPlacement interface that represents the newly added wall bar placement.

Clear ()

Deletes all wall bar placements from the collection.

DeleteAt ([in] long lIndex)

Deletes a wall bar placement from the collection by index.

Parameters lIndex Index in the collection of the wall bar placement to delete.

GetAt ([in] long lIndex, [out, retval] IWallBarPlacement ** ppIWallBarPlacement)

Gets an interface for a specific wall bar placement by index.

 Parameters lIndex The index into the collection of the requested wall bar placement.ppIWallBarPlacement Pointer to an IWallBarPlacement interface that represents the requested wall bar placement, or NULL if lIndex is

invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall bar placements in the receiver.

Page 211: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 211/450

Parameters plCount The number of IWallBarPlacement objects in the collection.

IWallBarSet

Concrete wall bar set information.

GetWallBarPlacements ([out,retval] IWallBarPlacements** ppIWallBarPlacements)

Gets the collection of wall bar placements in the receiver.

Parameters ppIWallBarPlacements Pointer to an IWallBarPlacements interface that contains the wall bar sets in the receiver.

GetMyWallBarLayout ([out,retval] IWallBarLayout** ppIWallBarLayout)

Gets a pointer to the interface of the wall bar layout the receiver belongs to.

Parameters 

ppIWallBarLayout Pointer to an IWallBarLayout interface for the wall bar layout that the receiver belongs to.

PropertiesType Property Get Set Description

long lUID X The unique ID of this wall bar set.

IWallBarSets

This interface represents a collection of  IWallBarSet objects.

Add ([out,retval] IWallBarSet** ppIWallBarSet)

 Adds a new wall bar set to the receiver.

Parameters ppIWallBarSet Pointer to an IWallBarSet interface that represents the newly added wall bar set.

Page 212: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 212/450

pp p y

Clear ()

Deletes all wall bar sets from the collection.

Delete ([in] long lUID)

Deletes a wall bar set from the collection.

Parameters lUID Unique ID of the wall bar set to delete.

Get ([in] long lUID, [out, retval] IWallBarSet ** ppIWallBarSet)

Gets an interface for a specific wall bar set by unique ID.

Parameters lUID The unique ID of the requested wall bar set.ppIWallBarSet Pointer to an IWallBarSet interface that represents the requested wall bar set, or NULL if no wall bar set is found in

the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallBarSet ** ppIWallBarSet)

Gets an interface for a specific wall bar set by index.

Parameters lIndex The index into the collection of the requested wall bar set.ppIWallBarSet Pointer to an IWallBarSet interface that represents the requested wall bar set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall bar sets in the receiver.

Parameters plCount The number of IWallBarSet objects in the collection.

IWallCodeMessage

Page 213: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 213/450

IWallCodeMessage

Represents a design code message related to a particular limit check. The message is what is returned to the user as a verbosedescription of the success or failure of a particular limit check. 

PropertiesType Property Get Set Description

long iTypeIndex X A type code that qualifies the severity of this message:0: None1: Informative only2: Warning (non-failing)3: Failure

BSTR lElementUID X The unique ID of the element (member) related to this message.

long lID X The unique ID of this wall code message.long lLimitCheckID X The unique ID of the limit check with which this code message is related.

long strMessage X The design message describing the status of the limit check.

IWallCodeMessages

This interface represents a collection of  IWallCodeMessage objects.

Add ([in] long iTypeIndex, [in] BSTR strMessage, [in] long lElementUID, [out,retval] IWallCodeMessage** ppIWallCodeMessage)

 Adds a new wall code message to the receiver.

Parameters iTypeIndex A type code that qualifies the severity of the message. Refer to IWallCodeMessage properties for

possible values.strMessage The design message describing the status of the limit check.lElementUID The unique ID of the element (member) related to this message.ppIWallCodeMessage Pointer to an IWallCodeMessage interface that represents the newly added wall code message.

 

Clear ()

Deletes all wall code messages from the collection.

Delete ([in] long lID)

Deletes a wall code message from the collection.

P t

Page 214: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 214/450

Parameters 

lID Unique ID of the wall code message to delete.

Get ([in] long lID, [out, retval] IWallCodeMessage ** ppIWallCodeMessage)

Gets an interface for a specific wall code message by unique ID.

Parameters lID The unique ID of the requested wall code message.ppIWallCodeMessage Pointer to an IWallCodeMessage interface that represents the requested wall code message, or NULL if no wall

code message is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallCodeMessage ** ppIWallCodeMessage)

Gets an interface for a specific wall code message by index.

Parameters lIndex The index into the collection of the requested wall code message.ppIWallCodeMessage Pointer to an IWallCodeMessage interface that represents the requested wall code message, or NULL if lIndex is

invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall code messages in the receiver.

Parameters plCount The number of IWallCodeMessage objects in the collection.

IWallCodeResult

Represents the result of the analysis of a certain section cut with a certain load case or combination.

GetWallLimitChecks ([out, retval] IWallLimitChecks** ppIWallLimitChecks)

Gets a the collection of wall limit checks for this wall code result.

Parameters ppIWallLimitChecks Pointer to an IWallLimitChecks interface that contains the wall limit checks in the receiver.

Page 215: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 215/450

PropertiesType Property Get Set Description

BOOL bLoadCombo X Flag: The results are of a load combination (not a load case).

long lHintFlags X In the case where one or more limit checks contained in this code result has failed, this property is a flag that theanalysis engine provides as a hint that might enable a subsequent analysis run to pass. Possible values for thisproperty can be found in Appendix F. 

long lID X The unique ID of this wall code result.

long lLoadConditionUID X The load case or combination unique ID. long lSectionCutUID X The unique ID of the section cut to which the results belong.

IWallCodeResults

This interface represents a collection of  IWallCodeResult objects.

Add ([in] BOOL bLoadCombo, [in] long lLoadConditionUID, [in] long lHintFlags, [out,retval] IWallCodeResult** ppIWallCodeResult)

 Adds a new wall code result to the receiver.

Parameters bLoadCombo Flag: The wall code result is the result of a load combination (not a load case)lLoadConditionUID The load case or load combination UIDlHintFlags In the case where one or more limit checks contained in this code result has failed, this property is a flag

that the analysis engine provides as a hint that might enable a subsequent analysis run to pass. Possiblevalues for this property can be found in Appendix F. 

ppIWallCodeResult Pointer to an IWallCodeResult interface that represents the newly added wall code result.

Clear ()

Deletes all wall code results from the collection.

Delete ([in] long lID)

Deletes a wall code result from the collection.

Parameters lID Unique ID of the wall code result to delete.

Page 216: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 216/450

Get ([in] long lID, [out, retval] IWallCodeResult ** ppIWallCodeResult)

Gets an interface for a specific wall code result by unique ID.

Parameters lID The unique ID of the requested wall code result.ppIWallCodeResult Pointer to an IWallCodeResult interface that represents the requested wall code result, or NULL if no wall code

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

GetAt ([in] long lIndex, [out, retval] IWallCodeResult ** ppIWallCodeResult)

Gets an interface for a specific wall code result by index.

Parameters lIndex The index into the collection of the requested wall code result.ppIWallCodeResult Pointer to an IWallCodeResult interface that represents the requested wall code result, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall code results in the receiver.

Parameters plCount The number of IWallCodeResult objects in the collection.

IWal lDesignGroup

This interface represents a Wall Design Group. The purpose of a Wall Design Group is to divide the wall system in the RAM modelinto a number of individual wall groups, cores, or stacks that can be designed separately from one another. The Wall Design Group

can be thought of as any collection of walls for which the reinforcement can be completely designed and all code checks performedindependently of any other wall in the building.

AddColumnID ([in] long lColumnID)

Not implemented; do not call.

AddMemberID ([in] long lMemberID)

Page 217: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 217/450

Not implemented; do not call.

AddWallID ([in] long lWallID)

 Adds a wall to the receiver.

Parameters lWallID The unique ID of the wall being added.

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

Not implemented; do not call.

GetCouplingBeams  ([out,retval] ICouplingBeams** ppICouplingBeams) 

Gets the collection of all couplings beams in the wall design group.

Parameters 

ppICouplingBeams  Pointer to an ICouplingBeams collection interface that represents all coupling beams in the wall design group.

GetSectionCuts ([out,retval] IRawWallSectionCuts** ppISectionCuts) 

Gets the collection of all section cuts from all walls in the wall design group.

Parameters 

ppISectionCuts  Pointer to an IRawWallSectionCuts collection interface that represents all section cuts in the wall design group.

GetWallPanels ([out,retval] IWallPanels** ppIWallPanels) 

Gets the collection of all wall panels in the wall design group.

 Parameters 

ppIWallPanels  Pointer to an IWallPanels collection interface that represents all wall panels in the wall design group.

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

Gets the collection of all walls in the wall design group.

Parameters ppIWalls Pointer to an IWalls collection interface that represents all walls in the wall design group.

Page 218: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 218/450

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

Gets the collection of all wall section design cuts in the wall design group.

Parameters 

ppIWallSectionDsnCuts  Pointer to an IWallSectionDsnCuts collection interface that represents all wall section design cuts in the walldesign group.

RemoveColumnID ([in] long lColumnID, [out,retval] long* plNumRemaining)

Not implemented; do not call.

RemoveMemberID ([in] long lMemberID)

Not implemented; do not call.

RemoveWallID ([in] long lWallID, [out,retval] long* plNumRemaining)

Removes a wall from the receiver.

Parameters lWallID The unique ID of the wall being removed.plNumRemaining The number of walls in the wall design group after removing the specified wall.

PropertiesType Property Get Set Description

double dCutOffset X X The offset between auto-generated cuts and the features they are next to (wall edges and opening edges).This is used as a guide to initialize the values in the dialog; section cuts cannot be auto-generated usingRAM Data Access.

Type Property Get Set Description

double dMaxHorCutSpcg X X The maximum space between horizontal cuts to use when auto-generating section cuts. 0.0 means cutscan be any distance apart. This is used as a guide to initialize the values in the dialog; section cuts cannotbe auto-generated using RAM Data Access.

double dMaxVertCutSpcg X X The maximum space between vertical cuts to use when auto-generating section cuts. 0.0 means cuts canbe any distance apart. This is used as a guide to initialize the values in the dialog; section cuts cannot beauto-generated using RAM Data Access.

long lCutLocationMask X X Mask that determines where auto-generated cuts should be placed. This is used as a guide to initialize thevalues in the dialog; section cuts cannot be auto-generated using RAM Data Access.

long lWallBarPatternTemplateID X X The ID of the WallBarPatternTemplate used by the wall design group.

long lWallDesignGroupNumber X The wall design group number for this wall design group. This is the unique key.

Page 219: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 219/450

IWal lDesignGroups

This interface represents a collection of wall design groups.

Add ([in] long lWallDesignGrpNum, [out,retval] IWallDesignGroup** ppIWallDesignGroup)

 Adds a new wall design group to the receiver.

Parameters lWallDesignGrpNum The wall design group number of the new wall design group.ppIWallDesignGroup Pointer to an IWallDesignGroup interface that represents the newly added wall design group.

Clear ()

Deletes all wall design groups from the collection.

ClearResults ([in] long bDeleteForces)

Clears the results with option to remove forces.

Parameters bDeleteForces 1 if forces should be deleted as well

Delete ([in] long lWallDesignGrpNum)

Deletes a wall design group from the collection.

Parameters lWallDesignGrpNum Wall design group number of the wall design group to delete.

Get ([in] long lWallDesignGrpNum, [out, retval] IWallDesignGroup ** ppIWallDesignGroup)

Gets an interface for a specific wall design group by wall design group number.

Parameters lWallDesignGrpNum The wall design group number of the requested wall design group.

Page 220: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 220/450

lWallDesignGrpNum The wall design group number of the requested wall design group.

ppIWallDesignGroup Pointer to an IWallDesignGroup interface that represents the requested wall design group, or NULL if no wall designgroup is found in the collection with the given wall design group number.

GetAt ([in] long lIndex, [out, retval] IWallDesignGroup ** ppIWallDesignGroup)

Gets an interface for a specific wall design group by index.

Parameters lIndex The index into the collection of the requested wall design groupppIWallDesignGroup Pointer to an IWallDesignGroup interface that represents the requested wall design group, or NULL if lIndex is

invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall design groups in the receiver.

Parameters plCount The number of IWallDesignGroup objects in the collection.

SaveResults ()

Saves results for all wall design groups from the collection.

IWallFailedMember

Represents a member that has failed a limit check. 

Properties

Page 221: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 221/450

Gets an interface for a specific wall failed member by unique ID. Note: this function will be deprecated in v12.1.  

Parameters lID The unique ID of the requested wall failed member.ppIWallFailedMember Pointer to an IWallFailedMember interface that represents the requested wall failed member, or NULL if no wall

failed member is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallFailedMember  ** ppIWallFailedMember)

Gets an interface for a specific wall failed member by index.

Page 222: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 222/450

Parameters lIndex The index into the collection of the requested wall failed member.ppIWallFailedMember Pointer to an IWallFailedMember interface that represents the requested wall failed member, or NULL if lIndex is

invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall failed members in the receiver.

Parameters 

plCount The number of IWallFailedMember objects in the collection.

IWallFE

This interface is used represent a finite element entry for a wall.

GetComboStresses ([in] ILoadCombination *pILoadCombo, [in] BOOL bSmooth, [out, retval] IStresses** ppIStresses)

Gets the stresses associated with the given load combination for this Wall FE.

Parameters pILoadCombo The load combination to retreive the stresses for. Note that the stresses for all of the terms in the load

combination are internally loaded and then summed up based on the load combination factors.bSmooth Boolean indicating whether or not the stresses should be averaged with surrounding Wall FEs.ppIStresses Pointer to an IStresses interface that represents the stresses for the given load case for this Wall FE.

GetNodes ([out,retval] INodes** ppINodes)

Gets the collection of nodes for this Wall FE.

Parameters ppINodes Pointer to an INodes interface that represents the nodes in the Wall FE.

GetStresses ([in] long lLoadCaseID, [in] BOOL bSmooth, [out, retval] IStresses** ppIStresses)

Gets the stresses associated with the given load case ID for this Wall FE.

Parameters 

Page 223: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 223/450

lLoadCaseID The load case ID to retreive the stresses for.bSmooth Boolean indicating whether or not the stresses should be averaged with surrounding Wall FEs.ppIStresses Pointer to an IStresses interface that represents the stresses for the given load case for this Wall FE.

IWallFE PropertiesType Property Get Set Description

BOOL bHaveStresses X TRUE if the receiving Wall FE has stresses available. Stresses are only available if RAM Frame is configured to storethem, and RAM Frame has calculated them.

double dThickness X The thickness of the wall.

IWallFEs

This interface is used to hold a collection of  IWallFE objects.

GetAt ([in] long lIndex, [out, retval] IWallFE** ppIWallFE)

Gets the IWallFE object at the specified index.

Parameters lIndex The index of the specified Wall FE.

ppIWallFE The IWallFE object at the specified index.

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

Gets number of IWallFE objects in the collection.

Parameters plCount The number of IWallFE objects in the collection.

Page 224: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 224/450

Add ([in] long eGeneralType, [in] long eSpecificType, [in] BSTR strLimitName, [in] double dValue, [in] double dLimit, [in] double dUF,[in] BOOL bCheckPasses, [in] BSTR strCodeSection, [out,retval] IWallLimitCheck** ppIWallLimitCheck)

 Adds a new wall limit check to the receiver. Note: the interface for this function will be changing in v12.1.  

Parameters eGeneralType An integer specifying the general classification of this limit check. Refer to Appendix F.eSpecificType An integer specifying the specific classification of this limit check. Refer to Appendix F.strLimitName A string describing the limit check that is being tested.dValue The value (result) of this limit check.

Page 225: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 225/450

dLimit The limiting value of this limit check.dUF The unity factor for this limit check.bCheckPasses A boolean flag denoting whether this limit check has passed or not.strCodeSection A reference to a design code clause that applies to this limit check.ppIWallLimitCheck Pointer to an IWallLimitCheck interface that represents the newly added wall limit check.

Clear ()

Deletes all wall limit checks from the collection.

Delete ([in] long lID)

Deletes a wall limit check from the collection.

Parameters lID Unique ID of the wall limit check to delete.

Get ([in] long lID, [out, retval] IWallLimitCheck ** ppIWallLimitCheck)

Gets an interface for a specific wall limit check by unique ID.

Parameters lID The unique ID of the requested wall limit check.ppIWallLimitCheck Pointer to an IWallLimitCheck interface that represents the requested wall limit check, or NULL if no wall limit check

is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallLimitCheck ** ppIWallLimitCheck)

Gets an interface for a specific wall limit check by index.

Parameters lIndex The index into the collection of the requested wall limit check.ppIWallLimitCheck Pointer to an IWallLimitCheck interface that represents the requested wall limit check, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall limit checks in the receiver.

Page 226: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 226/450

Parameters plCount The number of IWallLimitCheck objects in the collection.

IWallPanel

This interface represents a wall panel. A Wall Panel is a planar, contiguous collection of one or more walls of the same thickness ata single Story, all in the same wall design group.

AddColumnUID ([in] long lColumnUID)

DO NOT USE. Not implemented.

Parameters lColumnUID Unique ID of the column being added.

AddMemberUID ([in] long lWallUID)

DO NOT USE. Not implemented.

Parameters lMemberUID Unique ID of the member being added.

AddWallUID ([in] long lWallUID)

 Adds a wall to the collection of walls in the receiver.

Parameters lWallUID Unique ID of the wall being added.

Page 227: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 227/450

DO NOT USE. Not implemented.

Parameters lColumnUID Unique ID of the column being removed.

RemoveMemberUID ([in] long lMemberUID)

DO NOT USE. Not Implemented.

Parameters 

Page 228: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 228/450

lMemberUID Unique ID of the member being removed.

RemoveWallUID ([in] long lWallUID)

Removes a wall from the collection of walls in the receiver.

Parameters lWallUID Unique ID of the wall being removed.

PropertiesType Property Get Set Description

BOOL bFrozen X Indicates whether or not this panel has been frozen by the user. long lPriority X Priority of the wall panel

long lUID X The unique ID of this wall panel.

SCoordinate sCoordinateEnd X The end coordinate of the panel. SCoordinate sCoordinateStart X The start coordinate of the panel. BSTR strBarPatternName X The name of the panel’s bar pattern, if the panel has manual reinforcement. NULL otherwise.

IWallPanelReinfZone

This interface represents a wall panel reinforcing zone associated with manual reinforcment.

PropertiesType Property Get Set Description

double dBarSpacing X X The bar spacing for this zone.

double dStartOffset X X The start offset of this zone.

EBoundaryFlags eBoundary X X Indicates how this zone is to be handled with respect to boundary element design. long lNumCurtains X X The number of curtains in this zone.

BSTR strBarSize X X The bar size for this zone.

 

IWallPanelReinfZones

This interface represents a collection of  IWallPanelReinfZone objects.

Add ([out, retval] IWallPanelReinfZone ** ppIWallPanelReinfZone)

 Adds a new zone to the receiver.

Page 229: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 229/450

Parameters ppIWallPanelReinfZone Pointer to an IWallPanelReinfZone interface that represents the newly added zone.

Clear ()

Deletes all zones from the collection.

DeleteAt ([in] long lIndex)

Deletes a zone from the collection by index.

Parameters lIndex Index of the zone to delete.

GetAt ([in] long lIndex, [out, retval] IWallPanelReinfZone ** ppIWallPanelReinfZone)

Gets an interface for a specific zone by index.

Parameters lIndex The index into the collection of the requested zone.

ppIWallPanelReinfZone Pointer to an IWallPanelReinfZone interface that represents the requested zone, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of zones in the receiver.

Parameters plCount The number of IWallPanelReinfZone objects in the collection.

 

IWallPanels

This interface represents a collection of  IWallPanel objects.

Add ([out,retval] IWallPanel** ppIWallPanel)

 Adds a new wall panel to the receiver.

Parameters 

Page 230: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 230/450

ppIWallPanel Pointer to an IWallPanel interface that represents the newly added wall panel.

Clear ()

Deletes all wall panels from the collection.

Delete ([in] long lPanelID)

Deletes a wall panel from the collection.

Parameters lPanelID Unique ID of the wall panel to delete.

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

Gets an interface for a specific wall panel by unique ID.

Parameters lPanelID The unique ID of the requested wall panel.ppIWallPanel Pointer to an IWallPanel interface that represents the requested wall panel, or NULL if no wall panel is found in the

collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallPanel ** ppIWallPanel)

Gets an interface for a specific wall panel by index.

Parameters lIndex The index into the collection of the requested wall panel.ppIWallPanel Pointer to an IWallPanel interface that represents the requested wall panel, or NULL if lIndex is invalid.

 GetCount ([out, retval] long *plCount) 

Gets the number of wall panels in the receiver.

Parameters plCount The number of IWallPanel objects in the collection.

Page 231: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 231/450

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

Filter  ([in] EWallFilter  eWallFilter, [in] VARIANT varFilterCriteria, [out, retval] long* plRetval)

Filters the collection of walls based on given criteria.

Parameters eWallFilter Indicates the type of filter to use on the collection

varFilterCriteria Criteria used to filter the collection, based on the filter type. In some cases, this parameter is not applicable.plRetval 0 if successful

-1 if collection could not be filtered

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

Gets an interface for a specific wall by unique ID.

Parameters lUID The unique ID of the requested wallppIWall Pointer to an IWall interface that represents the requested wall, or NULL if no wall is found in the collection with the

given unique ID.

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

Gets an interface for a specific wall by index.

Parameters lIndex 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.

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 thetotal number of walls on the story. When the collection is unfiltered, this function returns the total number of walls on the story.

Parameters plCount Number of walls in the collection

Page 232: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 232/450

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

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

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

IWal lSect ionDsnCut

This interface represents the design information for a section cut. Unlike IRawWallSectionCut, the information in a design cut canrepresent multiple section cut segments.

DeleteWallSectionDsnCutPolygons () 

Deletes all polygons from the receiver.

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

Get the raw wall section cuts for the design cut.

Parameters ppIRawWallSectionCuts Pointer to an IRawWallSectionCuts interface 

GetUBPolygonIndex ([out,retval] long *plUBPolygonIndex) 

Gets the index of the last polygon (polygon count – 1) in the receiver.

 Parameters 

plUBPolygonIndex  The index of the last polygon in the wall section design cut.

GetWallCodeResults ([out, retval] IWallCodeResults** ppIWallCodeResults)

Gets the collection of IWallCodeResult objects in the receiver.

Parameters 

Page 233: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 233/450

GetWallSectionDsnCutForceSets ([out, retval] IWallSectionDsnCutForceSets** ppIWallSectionDsnCutForceSets)

Gets the collection of IWallSectionDsnCutForceSet objects in the receiver.

Parameters ppIWallSectionDsnCutForceSets Pointer to an IWallSectionDsnCutForceSets interface that represents all wall section design cut force

sets in the section design cut.

GetWallSectionDsnCutPolygon ([in] BOOL bLocal, [in] long lPolyIndex, [out, retval] IPoints **pIPoints)

Gets the specified polygon. (Refer to “SaveWallSectionDsnCutPolygon” for further info on section cut polygons).

Parameters bLocal Whether or not the fetched polygon is in local coordinates.lPolyIndex The index of the desired polygon.pIPoints Pointer to an IPoints interface that represents the requested polygon, or NULL if lPolyIndex is invalid.

ppIWallCodeResults Pointer to an IWallCodeResults interface that represents all wall code results in the section design cut.

SaveWallSectionDsnCutPolygon ([in] long iPolyIndex, [in] long iPoints, [in] double *pdGlobalX, [in] double *pdGlobalY, [in]double *pdGlobalZ, [in] double *pdLocalX, [in] double *pdLocalY)

 Add a polygon to the list of polygons defining the geometry of the cross-section exposed by a cut. A polygon added with iPolyIndex=0 isassumed to be an outer solid polygon. Any other polygons added with iPolyIndex>0 are assumed to be negative polygons (holes) within thesolid. Two sets of polygons are defined in the global and local coordinate systems. The global coordinate system is the model coordinatesystem. The local coordinate system is the planar coordinate system assumed for design of the cross section.

Parameters iPolyIndex Index of polygon to be added.

iPoints Number of points in polygon.pdGlobalX Array of X coordinates describing polygon in global coordinate system.pdGlobalY Array of Y coordinates describing polygon in global coordinate system.pdGlobalZ Array of Z coordinates describing polygon in global coordinate system.pdLocalX Array of X coordinates describing polygon in local coordinate system.pdLocalY Array of Y coordinates describing polygon in local coordinate system.

PropertiesType Property Get Set Description

BOOL bDoBoundaryCheck X Flag: boundary check required for this section cut (certain design codes only).

double dArea X The area of this wall section design cut.

Page 234: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 234/450

double dInertiaX X The inertia in X of this wall section design cut. double dInertiaY X  The inertia in Y of this wall section design cut. double  dMaxFlexureUF X  The maximum unity factor in flexure at this cross-section (determined during a design run).

double  dMaxShearUF X  The maximum unity factor in shear at this cross-section (determined during a design run).

double dOffset X  The offset of the position of a vertical section cut along the wall length, relative to the wall or opening towhich it is defined (see lRelativeMemberUID) (vertical section cuts only).

double dWallAngle X  The orientation of the wall relative to the global model coordinate system (vertical cuts only).

double dZ X The Z coordinate of this wall section design cut.

long  eDesignState X  Code denoting current design status for this section cut:0: not ready (no forces available)1: not designed

2: design error3: design failed4: design passed

long eOrientation X Orientation of the section cut.0 = Vertical cut1 = Horizontal cut

long  eRelativeCorner X  The wall or opening corner index relative to which a vertical cut is defined (vertical cuts only).

long  iCriticalFlexureCombo X  The UID of the load combination that produces the maximum unity factor in flexure.

long  iCriticalShearCombo X  The UID of the load combination that produces the maximum unity factor in shear.

long  lFinalSegmentCount X  The number of wall segments that make up this section cut.

long lMaterialUID X  The UID of the material of the cross-section (wall).

long  lRelativeMemberUID X  The wall UID or opening UID relative to which a vertical cut is defined (vertical cuts only).

long  lSectionCutWDGID X  This section design cut’s unique ID in its wall design group. long lUID X The unique ID of this wall section design cut.

long  lWallDesignGrp X  The wall design group to which this section design cut belongs.

SCoordinate sCentroid X The centroid of this wall section design cut.

IWallSectionDsnCutForceSet

Represents a result force set for a particular section cut and load case/combo UID.

Properties Type Property Get Set Description

BOOL bLoadCombo X Flag: The force set is a result of a load combination (not a load case)

long lID X The unique ID of this wall section design cut force set.

long lLoadConditionIndex X Load case or combo index.

long lLoadConditionUID X Load case or combo UID.

long lSectionCutUID X The unique ID of the section cut to which this force set belongs.

Page 235: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 235/450

SForce3D sForce3DF X  Force components in the X,Y,Z directions.SForce3D sForce3DM X Moment components about the X,Y,Z directions.

IWallSectionDsnCutForceSets

This interface represents a collection of  IWallSectionDsnCutForceSet objects.

Add ([in] BOOL bLoadCombo, [in] long lLoadConditionUID, [in] long lLoadConditionIndex, [in] SForce3D sForce3DF, [in] SForce3D sForce3DM, [out,retval] IWallSectionDsnCutForceSet** ppIWallSectionDsnCutForceSet)

 Adds a new wall section design cut force set to the receiver.

Parameters bLoadCombo Flag: The force set is a result of a load combination (not a load case)lLoadConditionUID Load case or combo UID.lLoadConditionIndex Load case or combo index.sForce3DF Force components in the X,Y,Z directions.sForce3DM Moment components about the X,Y,Z directions.ppIWallSectionDsnCutForceSet Pointer to an IWallSectionDsnCutForceSet interface that represents the newly added wall section design

cut force set.

Clear ()

Deletes all wall section design cut force sets from the collection.

ClearCombos ()

Deletes all load combination-based wall section design cut force sets from the collection.

 Delete ([in] long lID)

Deletes a wall section design cut force set from the collection.

Parameters lID Unique ID of the wall section design cut force set to delete.

Get ([in] long lID, [out, retval] IWallSectionDsnCutForceSet ** ppIWallSectionDsnCutForceSet)

G t i t f f ifi ll ti d i t b i ID

Page 236: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 236/450

Gets an interface for a specific wall section design cut by unique ID.

Parameters lID The unique ID of the requested wall section design cut force set.ppIWallSectionDsnCutForceSet Pointer to an IWallSectionDsnCutForceSet interface that represents the requested wall section design cut

force set, or NULL if no wall section design cut force set is found in the collection with the given uniqueID.

GetAt ([in] long lIndex, [out, retval] IWallSectionDsnCutForceSet ** ppIWallSectionDsnCutForceSet)

Gets an interface for a specific wall section design cut force set by index.

Parameters lIndex The index into the collection of the requested wall section design cut force set.ppIWallSectionDsnCutForceSet Pointer to an IWallSectionDsnCutForceSet interface that represents the requested wall section design cut

force set, or NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall section design cut force sets in the receiver.

Parameters plCount The number of IWallSectionDsnCutForceSet objects in the collection.

IWal lSect ionDsnCuts

This interface represents a collection of  IWallSectionDsnCut objects.

Add ([in] double dArea, [in] double dCentroidX, [in] double dCentroidY, [in] double dZ, [in] double dInertiaX, [in] double dInertiaY, [in]long eOrientation, [in] double dWallAngle, [in] long lMaterialUID, [in] double dMaxFlexureUF, [in] double dMaxShearUF, [in] longiCriticalFlexureCombo, [in] long iCriticalShearCombo, [in] long eDesignStatus, [in] long lSectionCutWDGID, [in] longlFinalSegmentCount, [in] long lRelativeMemberUID, [in] long eRelativeCorner, [in] double dOffset, [out,retval] IWallSectionDsnCut**ppIWallSectionDsnCut)

 Adds a new wall section design cut to the collection.

Parameters dArea Cross-sectional area of wall generated by cut.

dC t idX X di t f t id f ti

Page 237: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 237/450

dCentroidX X coordinate of centroid of cross-section.dCentroidY Y coordinate of centroid of cross-section.dZ Z coordinate of section cut.dInertiaX X component of moment of inertia of cross-section.dInertiaY Y component of moment of intertia of cross-section.eOrientation Code denoting orientation of section cut (0=horizontal, 1=vertical).dWallAngle The orientation of the wall relative to the global model coordinate system (vertical cuts only).lMaterialUID The UID of the material of the cross-section (wall).dMaxFlexureUF The maximum unity factor in flexure at this cross-section (determined during a design run).dMaxShearUF The maximum unity factor in shear at this cross-section (determined during a design run).iCriticalFlexureCombo The UID of the load combination that produces the maximum unity factor in flexure.

iCriticalShearCombo The UID of the load combination that produces the maximum unity factor in shear.eDesignStatus Code denoting current design status for this section cut:

0: not ready (no forces available)1: not designed2: design error3: design failed4: design passed

lSectionCutWDGID Index (ID) of this section cut within the wall design group. Unique only within wall design group.lFinalSegmentCount The number of wall segments that make up this section cut.lRelativeMemberUID The wall UID or opening UID relative to which a vertical cut is defined (vertical cuts only).eRelativeCorner The wall or opening corner index relative to which a vertical cut is defined (vertical cuts only).

dOffset The offset of the position of a vertical section cut along the wall length, relative to the wall or opening to which it isdefined (see lRelativeMemberUID) (vertical section cuts only).

ppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the newly added wall section design cut.

Clear ()

Deletes all wall section design cuts from the collection.

Delete ([in] long lUID)

Deletes a wall section design cut from the collection.

Parameters lUID Unique ID of the wall section design cut to delete.

DeleteAt ([in] long lIndex)

Deletes a wall section design cut from the collection at the specified index.

Page 238: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 238/450

Parameters lUID Index of the wall section design cut to delete.

Get ([in] long lUID, [out, retval] IWallSectionDsnCut ** ppIWallSectionDsnCut)

Gets an interface for a specific wall section design cut by unique ID.

Parameters lUID The unique ID of the requested wall section design cut.ppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the requested wall section design cut, or NULL if no

wall section design cut is found in the collection with the given unique ID.

GetAt ([in] long lIndex, [out, retval] IWallSectionDsnCut ** ppIWallSectionDsnCut)

Gets an interface for a specific wall section design cut by index.

Parameters lIndex The index into the collection of the requested wall section design cutppIWallSectionDsnCut Pointer to an IWallSectionDsnCut interface that represents the requested wall section design cut, or NULL if lIndex

is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall section design cuts in the receiver.

Parameters plCount The number of IWallSectionDsnCut objects in the collection.

 

IWebOpening

This interface represents a specific web opening in a beam. This interface can be used to read and modify the geometry andproperties of the web opening.

PropertiesType Property Get Set Description

BOOL bPassed X Whether the design of the web opening passed or failed.

double dBotStiffX X X coordinate (in beam local coordinates) of bottom stiffener.

double dBotStiffY X Y coordinate (in beam local coordinates) of bottom stiffener

Page 239: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 239/450

double dBotStiffY X Y coordinate (in beam local coordinates) of bottom stiffener.double dDistFromStartOfBeam X X Distance from start of beam to center of web opening

double dDistFromTop X X Offset to web opening. The offset is from the top of the beam to the top, center or bottom of theopening (as indicated by eWOPositionInWeb)

double dHeightOrDiam X X Height (H) of web opening if shape is rectangular, or diameter of opening if circular

double dStiffenerLength X Length of top stiffener, if required.

double dStiffenerLengthBot X Length of bottom stiffener, if required.

double dStiffenerThickness X Thickness of top stiffener, if required.

double dStiffenerThicknessBot X Thickness of bottom stiffener, if required.

double dStiffenerWidth X Width of top stiffener, if required.

double dStiffenerWidthBot X Width of bottom stiffener, if required.

double dTopStiffX X X coordinate (in beam local coordinates) of top stiffener.double dTopStiffY X Y coordinate (in beam local coordinates) of top stiffener.

double dWeldSize X Size of weld for stiffener, if required.

double dWidth X X Width (B) of web opening if shape is rectangular

EWebOpenPosition ePositionInWeb X X Position of web opening in beam web. If not centered, an offset must be provided.

EWebOpenShape eShape X X Shape of the web opening

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

long lNumStiffenersBot X Indicates if bottom stiffeners are required on 0, 1 or 2 sides of the opening (determined during steelbeam design)

long lPenID X The ID of this opening in the collection of openings for a particular beam (not unique within themodel)

IWebOpenings

This interface represents a collection of web openings on a beam. It may be empty to start with if no web openings have beendefined on a beam. Through this interface, web openings can be added and deleted.

Add ([in]double dDistFromStartOfBeam, [in] EWebOpenShape eShape, [in] double dHOrDiam, [in] double dB, [out, retval]IWebOpening** ppIWebOpening)

 Adds a web opening to the collection of web openings for the layout beam.

Parameters dDistFromStartOfBeam Distance from start of beam to center of web openingeShape Shape of web openingdHOrDiam Height of rectangular opening, or diameter of circular openingdB Width of rectangular openingppIWebOpening Pointer to an IWebOpening interface that represents the newly added web opening.

Page 240: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 240/450

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

Deletes the web opening at the given index.

Parameters lIndex Index of web opening to deleteplRetval 0 if web opening is deleted successfully

-1 if lIndex is invalid

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

Gets an interface for a specific web opening by index.

Parameters lIndex 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.

GetCount ([out, retval] long* plCount )

Gets the number of web openings in the collection.

Parameters plCount Number of web openings in the collection

Page 241: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 241/450

 

WallBarPatternTemplates

This interface represents a collection of  WallBarPatternTemplate objects.

Add ([in] BSTR strLabel, [in] long lNumCurtains, [in] BSTR strMinVerticalBarSize, [in] BSTR strMaxVerticalBarSize, [in] doubledMinVerticalBarSpacing, [in] double dMaxVerticalBarSpacing, double dVerticalSpacingIncrement, [in] BSTRstrMinHorizontalBarSize, [in] BSTR strMaxHorizontalBarSize, [in] double dMinHorizontalBarSpacing, [in] doubledMaxHorizontalBarSpacing, [in] double dHorizontalSpacingIncrement, [out,retval] WallBarPatternTemplate**ppWallBarPatternTemplate)

Page 242: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 242/450

 Adds a new wall bar pattern template to the receiver.

Parameters strLabel The name of the new template.lNumCurtains The number of bar curtains in the new template. (Must be 1, 2, or 3.)strMinVerticalBarSize The name of the minimum vertical bar size in the new template.strMaxVerticalBarSize The name of the maximum vertical bar size in the new template.dMinVerticalBarSpacing The minimum vertical bar spacing (in inches) in the new template.dMaxVerticalBarSpacing The maximum vertical bar spacing (in inches) in the new template.

dVerticalSpacingIncrement The vertical spacing increment for the new template.strMinHorizontalBarSize The name of the minimum horizontal bar size in the new template.strMaxHorizontalBarSize The name of the maximum horizontal bar size in the new template.dMinHorizontalBarSpacing The minimum horizontal bar spacing (in inches) in the new template.dMaxHorizontalBarSpacing The maximum horizontal bar spacing (in inches) in the new template.dHorizontalSpacingIncrement The horizontal spacing increment for the new template.ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface that represents the newly added wall bar pattern

template.

Delete ([in] long lUID)

Deletes a wall bar pattern template from the collection by unique ID.

Parameters lUID The unique ID of the wall bar pattern template to delete.

Clear ()

Deletes all wall bar pattern templates from the collection.

 Get ([in] long lUID, [out, retval] WallBarPatternTemplate ** ppWallBarPatternTemplate)

Gets an interface for a specific wall bar pattern template by unique ID.

Parameters lUID The unique ID of the requested wall bar pattern template.ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface that represents the requested wall bar pattern template, or

NULL if no wall bar pattern template is found in the collection with the given unique ID.

GetAt ([in] long lIndex [out retval] WallBarPatternTemplate ** ppWallBarPatternTemplate)

Page 243: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 243/450

GetAt ([in] long lIndex, [out, retval] WallBarPatternTemplate  ppWallBarPatternTemplate)

Gets an interface for a specific wall bar pattern template by index.

Parameters lIndex The index into the collection of the requested wall bar pattern template.ppWallBarPatternTemplate Pointer to an WallBarPatternTemplate interface that represents the requested wall bar pattern template, or

NULL if lIndex is invalid.

GetCount ([out, retval] long *plCount) 

Gets the number of wall bar pattern templates in the receiver.

Parameters plCount The number of WallBarPatternTemplate objects in the collection.

Original DataAccess InterfacesThe following interfaces are based on the original architecture for RAM DataAccess. They can be used interchangeably with theObject Model interfaces. For any functionality that is available in the new Object Model interfaces, those interfaces/functions arepreferred. The original DA interfaces should only be used for functionality that is not yet in the Object Model interfaces.

IConcAnalysis1

Philosophy: To retrieve the results from the Concrete Analysis

Page 244: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 244/450

Philosophy: To retrieve the results from the Concrete Analysis.

GetBeamAnalysisInertia ( [in] long lBeamID, [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 analysislResult Error code. If value is non zero then check GetLastError

GetBeamCantlDeflectionMoments ( [in] long lBeamID, [in] EBeamSpanType eSpan, [out] double* pdMDL, [out] double* pdMLLposdefl, [out]double* pdMLLnegdefl, [in, out] long* plResult);

Purpose Get the moments that are associated with a particular cantilever for calculation of the IEfffor concrete deflection consideration.

Parameters lBeamID The unique beam IDeSpanpdMDL The DL moment at the cantilever supportpdMLLposdefl The cumulative, max LL pos moment at the cantilever supportpdMLLnegdefl The cumulative, max LL neg moment at the cantilever supportplResult Error code. If value is non zero then check GetLastError

GetBeamDeflectionMoments ([in] long lBeamID, [out] double* pdMDLlt, [out] double* pdMDLmid, [out] double* pdMDLrt, [out] double*pdMLLltneg, [out] double* pdMLLltpos, [out] double* pdMLLmidneg, [out] double* pdMLLmidpos, [out] double* pdMLLrtneg, [out] double*pdMLLrtpos, [out, retval] long* plResult);

Purpose Get the moments that are associated with a particular beam ends and mid point forcalculation of the IEff for concrete deflection consideration.

Parameters lBeamID The unique beam IDpdMDLlt The DL moment at the left end of the beampdMDLmid The DL moment at the mid of the beampdMDLrt The DL moment at the rt end of the beampdMLLltneg The cumulative, max LL neg moment at the left end of the

beampdMLLltpos The cumulative, max LL pos moment at the left end of the

beampdMLLmidneg The cumulative, max LL neg moment at the mid of the beam

Page 245: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 245/450

Page 246: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 246/450

Purpose The default settings for the Assign – Columns – Sidesway dialog.Parameters nSelectMajor 0 if global, 1 if braced, 2 if unbraced

nSelectMinor 0 if global, 1 if braced, 2 if unbracedpbstrGlobalMajor String defining the global major axis settingpbstrGlobalMinor String defining the global minor axis setting

GetBalancedLoadExistsFlag ([out] long* plBalLoad);Purpose Determine if a balanced load case exists in the linked Concept file.Parameters plBalLoad 1 if the balanced case exists.

GetColForceSource ( [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.

Page 247: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 247/450

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

GetConceptSelectionAtStory ([in] long lStoryID, [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 settingis provided here.

Parameters lStoryID Unique Story IDplUseConceptForces 1 = Use concept forces for this story,

0 = Use RAMSS forces for this storylRetVal Error code. If value is non zero then check GetLastError

GetCriteriaAnalysis ([out] long* plNumStations, [out] double* pdMaxSpc, [out] long* plREZ_RadioState, [out] double* pdREZPerc, [out] double*pdTorConstRed, [out] long* pbSkipLoadBL, [out] long* pbSkipLoadNOBl, [out] long* pbLLR, [out] long* pbColSlend, [out] long* pbPin,[out] long* pbConstrainRigidDiapSloped);

Purpose 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. Astation is a location on the beam where member forcesare calculated.

pdMaxSpc The maximum spacing between any two stations along

the beam.plREZ_RadioState 0 = Ignore rigid end zone effects, 1=consider rigid endzone effects

pdREZPerc If plREZ_RadioState is 1 then this vontains the%reduction to be considered

pdTorConstRed Concrete beam torsional constant reduction

pbSkipLoadBLTrue = Skip load live load on beams with beam linenumbers

pbSkipLoadNOBl True = Skip load live load on beams with no beam linenumbers

 pbLLR True = consider live load reduction when calculating

forcespbColSlend True = Consider column slenderness when calculationg

column forcespbPin True = release (pin) the base of concrete gravity columns

at the foundationpbConstrainRigidDiapSloped True = Do not consider rigid diaphragm on floors that are

sloped.

GetCriteriaAnalysis_HangingColConvTol ([out] BOOL* pbHangConvTol);Purpose Get concrete analysis criteria.Parameters pbHangConvTol Tolerance for convergence of hanging column forces during iterative analyis

Page 248: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 248/450

GetCriteriaAnalysis_IncludeOutOfPlaneForHybrid ([out] BOOL* pbIncludeOutOfPlaneForHybrid);Purpose Get concrete analysis criteria.Parameters pbIncludeOutOfPlaneForHybrid 1 if including out of plane stiffness for walls, 0 if not

GetCriteriaAnalysis_Part3 ([out] double* pdDistBetweenNodes, [out] double* pdMeshTol, [out] double* pdHardNodeDenFac,[out] long* plSolverType);

Purpose Get concrete analysis criteria.Parameters pdDistBetweenNodes Maximum distance between nodes for mesh control.

pdMeshTol Geometric tolerance for mesh controlpdHardNodeDenFac Hard node density factor for mesh controlplSolverType Solver type index

GetCriteriaAnalysis_Part4 ([out] BOOL* pbConsiderLoadPolys, [out] BOOL* pbIgnoreWallStiff);Purpose Get concrete analysis criteria.Parameters pbConsiderLoadPolys 1 if considering load polygons for skip loading on two way slabs,

0 if notpbIgnoreWallStiff 1 if ingoring wall stiffness above the story, 0 if not

GetCriteriaAnalysis_Part5 ([out] double* pdMergeNodeTol);Purpose Get concrete analysis criteria.Parameters pdMergeNodeTol Merge node tolerance in the concrete finite element model

GetCriteriaAnalysis_UseAllCPUs([out] BOOL* pbUseAllCPUs);Purpose To get the flag that indicates if one or all CPUs will be used for Analysis.Parameters bUseAllCPUs 1 = use all CPUs 0 = use only one CPU

GetCriteriaBracing ([out] long* plSlabBracing, [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.

GetCriteriaKFactor ([out] long* pnKxSel, [out] long* pnKySel, [in, out] double* pdKx, [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 valuepdKx If “use” is selected, this variable contains the value entered pdKy If “use” is selected, this variable contains the value entered 

GetCriteriaSidesway ([out] long* pnSelection, [out] BOOL* pbGlobalX, [out] BOOL* pbGlobalY, [out] double* pdDegX, [out] double* pdDegY);Purpose To get the global sidesway criteria.Parameters pnSelection 0 = Unbraced, 1 = Braced, 2 = Partially Braced

pbGlobalX True if Partially Braced Global X is selectedpbGlobalY True if Partially Braced Global Y is selected

pdDegX Angle in degrees for partially braced global X

Page 249: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 249/450

p g g g p y gpdDegY Angle in degrees for partially braced global Y

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Purpose To get information about why a method failed.Parameters pbstrShortError Short message about the failure

pbstrLongError Longer message about the failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetMoreCriteriaAnalysis ([out] BOOL* pbPinTransferMembers, [out] BOOL* pbPinTop, [out] BOOL* pbOOC, [out] long* pnBeamTorStiff);Purpose Get concrete analysis criteria,Parameters pbPinTransferMember True if pin base of concrete gravity columns on transfer member

is selectedpbPinTop True if pin top of concrete gravity columns is selected

pbOOC 1 if Out of Core solver is selected, 1 if In CorepnBeamTorStiff 0 = Use Assigned Torsional Cracked Section Factor, 1 = User

Defined Torsional Stiffness Reduction Percentage

Reset ();Purpose Internal use only.

SetAssignKFactor ([in] long* pnSelectMajor, [in] long* pnSelectMinor, [in] long* pdKx, [in] long* pdKy,);Purpose The default settings for the Assign – Columns – K factor dialog.

Parameters pnSelectMajor 0 if global, 1 if nomograph, 2 if user definedpnSelectMinor 0 if global, 1 if nomograph, 2 if user definedpdKx Default Kx value in the user defined boxpdKy Default Ky value in the user defined box

SetAssignSidesway ([in] long* pnSelectMajor, [in] long pnSelectMinor);Purpose The default settings for the Assign – Columns – Sidesway dialog.Parameters pnSelectMajor 0 if global, 1 if braced, 2 if unbraced

pnSelectMinor 0 if global, 1 if braced, 2 if unbraced

SetColForceSource ( [in] long* plUseConceptForces, [out,retval] long* lRetval);Purpose 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.

Page 250: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 250/450

p y g pParameters plUseConceptForces 1 = Use concept forces for this story,

0 = Use RAMSS forces for this story

SetConceptSelectionAtStory ([in] long lStoryID, [in] long* plUseConceptForces, [out,retval] long* lRetval);Purpose 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 settingis provided here.

Parameters lStoryID Unique Story IDplUseConceptForces 1 = Use concept forces for this story,

0 = Use RAMSS forces for this storylRetVal Error code. If value is non zero then check GetLastError

SetCriteriaAnalysis ([in] long* plNumStations, [in] double* pdMaxSpc, [in] long* plREZ_RadioState, [in] double* pdREZPerc, [in] double*pdTorConstRed, [in] long* pbSkipLoadBL, [in] long* pbSkipLoadNOBl, [in] long* pbLLR, [in] long* pbColSlend, [in] long* pbPin, [in] long*pbConstrainRigidDiapSloped);

Purpose 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. Astation is a location on the beam where member forcesare calculated.

pdMaxSpc The maximum spacing between any two stations alongthe beam.

plREZ_RadioState 0 = Ignore rigid end zone effects, 1=consider rigid endzone effectspdREZPerc If plREZ_RadioState is 1 then this vontains the

%reduction to be consideredpdTorConstRed Concrete beam torsional constant reduction

pbSkipLoadBLTrue = Skip load live load on beams with beam linenumbers

pbSkipLoadNOBl True = Skip load live load on beams with no beam linenumbers

pbLLR True = consider live load reduction when calculating

forcespbColSlend True = Consider column slenderness when calculationg

column forcespbPin True = release (pin) the base of concrete gravity columns

at the foundationpbConstrainRigidDiapSloped True = Do not consider rigid diaphragm on floors that are

sloped.

SetCriteriaAnalysis_HangingColConvTol ([in] BOOL bHangConvTol);Purpose Set concrete analysis criteria.Parameters bHangConvTol Tolerance for convergence of hanging column forces during iterative analyis

SetCriteriaAnalysis IncludeOutOfPlaneForHybrid ([in] BOOL bIncludeOutOfPlaneForHybrid);P S l i i i

Page 251: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 251/450

y _ y ([ ] y );Purpose Set concrete analysis criteria.Parameters bIncludeOutOfPlaneForHybrid 1 if including out of plane stiffness for walls, 0 if not

SetCriteriaAnalysis_Part3 ([in] double dDistBetweenNodes, [in] double dMeshTol, [in] double dHardNodeDenFac,[in] long lSolverType);

Purpose Set concrete analysis criteria.Parameters dDistBetweenNodes Maximum distance between nodes for mesh control.

dMeshTol Geometric tolerance for mesh controldHardNodeDenFac Hard node density factor for mesh controllSolverType Solver type index

SetCriteriaAnalysis_Part4 ([in] BOOL bConsiderLoadPolys, [in] BOOL bIgnoreWallStiff);Purpose Set concrete analysis criteria.Parameters bConsiderLoadPolys 1 if considering load polygons for skip loading on two way slabs, 0

if notbIgnoreWallStiff 1 if ingoring wall stiffness above the story, 0 if not

SetCriteriaAnalysis_Part5 ([in] double dMergeNodeTol);Purpose Set concrete analysis criteria.Parameters dMergeNodeTol Merge node tolerance in the concrete finite element model

SetCriteriaAnalysis_UseAllCPUs([in] BOOL bUseAllCPUs);

Purpose To set the flag that indicates if one or all CPUs will be used for Analysis.Parameters bUseAllCPUs  1 = use all CPUs 0 = use only one CPU

SetCriteriaBracing ([in] long* plSlabBracing, [in] 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.

SetCriteriaKFactor ([in] long* pnKxSel, [in] long* pnKySel, [in] double* pdKx, [in] 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 valuepdKx If “use” is selected, this variable contains the value enteredpdKy If “use” is selected, this variable contains the value entered 

SetCriteriaSidesway ([in] long* pnSelection, [in] BOOL* pbGlobalX, [in] BOOL* pbGlobalY, [in] double* pdDegX, [in] double* pdDegY);Purpose To get the global sidesway criteria.Parameters pnSelection 0 = Unbraced, 1 = Braced, 2 = Partially Braced

pbGlobalX True if Partially Braced Global X is selectedpbGlobalY True if Partially Braced Global Y is selectedpdDegX Angle in degrees for partially braced global X

pdDegY Angle in degrees for partially braced global Y

Page 252: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 252/450

SetMoreCriteriaAnalysis ([in] BOOL* pbPinTransferMembers, [in] BOOL* pbPinTop, [in] BOOL* pbOOC, [in] long* pnBeamTorStiff);Purpose Get concrete analysis criteria. .Parameters pbPinTransferMember True if pin base of concrete gravity columns on transfer member

is selectedpbPinTop True if pin top of concrete gravity columns is selectedpbOCC 1 if Out of Core solver is selected, 1 if In CorepnBeamTorStiff 0 = Use Assigned Torsional Cracked Section Factor, 1 = User

Defined Torsional Stiffness Reduction Percentage

SetRAMConcLdCaseFlags ();Purpose Internal use only.

IConcBeamState1

Philosophy: This interface is for maintaining the state of the concrete beam module.

ClearBeamResults ();Purpose Internal use only.

GetBeamBarSets ([in] long lStory, [in] long lBeamLineID, [out] SBM_BAR_SET** ppaShearBarSet, [out] SBM_BAR_SET _BSTR**ppaShearBarSetBstr, [out] long* plSizeShear, [out] SBM_BAR_SET** ppaTopFlxBarSet, [out] SBM_BAR_SET _BSTR** ppaTopFlxBarSetBstr, [out] long* plSizeTopFlx, [out] SBM_BAR_SET** ppaBotFlxBarSet, [out] SBM_BAR_SET _BSTR**ppaBotFlxBarSetBstr, [out] long* plSizeBotFlx); 

Purpose 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 numberppaShearBarSet Shear reinforcement bar set data

  ppaShearBarSetBstr Shear reinforcement bar set stringsplSizeShear Number of shear bar sets. Defines size of pShearBarSet and

pShearBarSetBstrppaTopFlxBarSet Top longitudinal reinforcement bar set datappaTopFlxBarSetBstr Top longitudinal reinforcement bar set stringsplSizeTopFlx Number of Top longitudinal bar sets. Defines size of

pTopFlxBarSet and pTopFlxBarSetBstrppaBotFlxBarSet Bottom longitudinal reinforcement bar set datappaBotFlxBarSetBstr Bottom longitudinal reinforcement bar set stringsplSizeBotFlx Number of Botttom longitudinal bar sets. Defines size of

pBotFlxBarSet and pBotFlxBarSetBstrComments 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 thecantilever If the first span does not have a cantilever then the origin of the bar sets is the

Page 253: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 253/450

cantilever. If the first span does not have a cantilever then the origin of the bar sets is thecenter of the first span support.

GetBeamEnvelopes ([in] long lStory, [in] long lBeamLineID, [out] SENVELOPE** ppaReqMomMaj, [out] long* plSizeReqMom, [out]SDIAGRAM** ppaReqShrMaj, [out] long* plSizeReqShr, [out] SDIAGRAM** ppaReqTorsion, [out] long* plSizeReqTor, [out]SENVELOPE** ppaPrvMomMaj, [out] long* plSizePrvMom, [out] SDIAGRAM** ppaPrvShrMaj, [out] long* plSizePrvShr, [out]SDIAGRAM** ppaPrvTorsion, [out] long* plSizePrvTor, [out] SENVELOPE** ppaReqPosFlxReinArea, [out] long* plSizePosRein, [out]SENVELOPE** ppaReqNegFlxReinArea, [out] long* plSizeNegRein, [out] SENVELOPE** ppaReqShrReinArea, [out] long*plSizeShrRein);

Purpose 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) levellBeamLineID Beam line index numberppaReqMomMaj Array of Required moment envelope pointsplSizeReqMom Size of haReqMomMajppaReqShrMaj Array of Required shear envelope pointsplSizeReqShr Size of haReqShrMajppaReqTorsion Array of Required torsion envelope pointsplSizeReqTor Size of haReqTorsionppaPrvMomMaj Array of Provided moment envelope pointsplSizePrvMom Size of haPrvMomMajppaPrvShrMaj Array of Provided shear envelope pointsplSizePrvShr Size of haPrvShrMaj

ppaPrvTorsion Array of Provided torsion envelope pointsplSizePrvTor Size of haPrvTorsionppaReqPosFlxReinArea Array of Provided flexural reinforcement area pointsplSizePosRein Size of haReqPosFlxReinAreappaReqNegFlxReinArea Array of Negative flexural reinforcement area pointsplSizeNegRein Size of haReqNegFlxReinAreappaReqShrReinArea Array of Shear reinforcement area pointsplSizeShrRein Size of haReqShrReinArea

GetBeamEnvelopes2 ([in] long lStory, [in] long lBeamLineID, [out] SENVELOPE** ppaReqMomMaj, [out] long* plSizeReqMom, [out]SENVELOPE** ppaReqShrMaj, [out] long* plSizeReqShr, [out] SENVELOPE** ppaReqTorsion, [out] long* plSizeReqTor, [out]SENVELOPE** ppaPrvMomMaj, [out] long* plSizePrvMom, [out] SENVELOPE** ppaPrvShrMaj, [out] long* plSizePrvShr, [out]SENVELOPE** 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) levellBeamLineID Beam line index numberppaReqMomMaj Array of Required moment envelope pointsplSizeReqMom Size of haReqMomMajppaReqShrMaj Array of Required shear envelope points

lSi R Sh Si f h R Sh M j

Page 254: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 254/450

plSizeReqShr Size of haReqShrMajppaReqTorsion Array of Required torsion envelope pointsplSizeReqTor Size of haReqTorsionppaPrvMomMaj Array of Provided moment envelope pointsplSizePrvMom Size of haPrvMomMajppaPrvShrMaj Array of Provided shear envelope pointsplSizePrvShr Size of haPrvShrMajppaPrvTorsion Array of Provided torsion envelope pointsplSizePrvTor Size of haPrvTorsionppaReqPosFlxReinArea Array of Provided flexural reinforcement area pointsplSizePosRein Size of haReqPosFlxReinArea

ppaReqNegFlxReinArea Array of Negative flexural reinforcement area pointsplSizeNegRein Size of haReqNegFlxReinAreappaReqShrReinArea Array of Shear reinforcement area pointsplSizeShrRein Size of haReqShrReinArea

GetBeamResults ([in] long lStory, [in] long lBeamLineID, [out] long *plNumSpans, [out]  SBML_RES** haBeamLine, [out] SBM_RES**haBeamResults, [out] SBM_RES _ BSTR** haBeamResultsBstr);

Purpose 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 linehaBeamLine Beam line resultshaBeamResults Individual beam span resultshaBeamResultsBstr Individual beam span result strings

GetCriteriaBarDia ([out] double* pdMaxConcBeamLongDiam, [out] double* pdMinConcBeamLongDiam, [out] double*pdMaxConcBeamTransDiam, [out] double* pdMinConcBeamTransDiam); 

Purpose Get concrete beam bar diagmeter criteria.Parameters pdMaxConcBeamLongDiam Maximum longitudinal

pdMinConcBeamLongDiam Minimum longitudinal

  pdMaxConcBeamTransDiam Maximum transversepdMinConcBeamTransDiam Minimum transverse

GetCriteriaBarSelectionData ([out] long* plMinTopBars, [out] long* plMinBotBars, [out] long* plBarLayerSame, [out] long* plSizeChange, [out]double* pdSegSpaceInc, [out] double* pdShearBarSpaceInc, [out] long* plBarSelMethod, [out] long* plBarSizeBias, [out] long*plBiasLimit);

Purpose Get Criteria Beam Design Bar Selection Defaults.Parameters plMinTopBars Min Number of Top Longitudinal bars

plMinBotBars Min Number of Bottom Longitudinal barsplBarLayerSame Keep all bars in layer the same size: 0 = FALSE, 1 = TRUEplSizeChange Number of sizes adjacent bars may differ bypdSegSpaceInc Trans bar spacing segment increment

pdShearBarSpaceInc Trans bar spacing shear bar spacing increment (0 = based onminimum required steel 1 = based on maximum spacing controlling

Page 255: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 255/450

minimum required steel, 1 = based on maximum spacing controllingover minimum rebar area, 2 = based on minimum spacingcontrolling minimum rebar area)

plBarSelMethod rebar selection methodplBarSizeBias Bar Selection Bias for Bar Size (0 = small, 1 = medium, 2 = large)plBiasLimit Amount of bias (0 = low, 1 = medium, 2 = high)

GetCriteriaDetailingGravBeamData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plNumStirrupLegs, [out] long* plSpliceType, [out] long*plEndCond, [out] long* plStirrupType);

Purpose Get Gravity Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spans.

pdTransBarStartEndDistance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpanDistance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

pdBotBarExtentSpan Cut-off location for bottom reinforcement relative tosupport face at interior supports

plBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice typeplEndCond Bottom longitudinal reinforcement end conditionplStirrupType 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 linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spans

pdTransBarStartEnd

Distance from support to 1st shear reinforcement at

beam endDistance from support to shear reinforcement at interior

Page 256: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 256/450

pdTransBarStartSpanDistance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

pdBotBarExtentSpan Cut-off location for tom reinforcement relative to supportface at interior supports

plBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice typeplEndCond Bottom longitudinal reinforcement end conditionplStirrupType 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 linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at interior

support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement along

interior spanspdTransBarStartEnd Distance from support to 1st shear reinforcement at beam endpdTransBarStartSpan Distance from support to shear reinforcement at interior

supportspdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to support face

at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to support face at

interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joists

Page 257: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 257/450

 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 ValueplLRRMin Long. Rein Ratio Min option (0 = Code, 1 = user defined)pdLRRMin Long. Rein Ratio Min Value

SetBeamBarSets ([in] long lStory, [in] long lBeamLineID, [in]  SBM_BAR_SET** ppaShearBarSet, [in] SBM_BAR_SET _BSTR**ppaShearBarSetBstr, [in] long* plSizeShear, [in] SBM_BAR_SET** ppaTopFlxBarSet, [in] SBM_BAR_SET _BSTR** ppaTopFlxBarSetBstr, [in] long* plSizeTopFlx, [in] SBM_BAR_SET** ppaBotFlxBarSet, [in] SBM_BAR_SET _BSTR**ppaBotFlxBarSetBstr, [in] long* plSizeBotFlx); 

P S t ll th i f t l t d i ll th i th b li

Page 258: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 258/450

Purpose Set all the reinforcement located in all the spans in the beam line.Parameters lStory Story where beam line is located

lBeamLineID Beam line ID numberppaShearBarSet Shear reinforcement bar set datappaShearBarSetBstr Shear reinforcement bar set stringsplSizeShear Number of shear bar sets. Defines size of pShearBarSet and

pShearBarSetBstrppaTopFlxBarSet Top longitudinal reinforcement bar set datappaTopFlxBarSetBstr Top longitudinal reinforcement bar set stringsplSizeTopFlx Number of Top longitudinal bar sets. Defines size of

pTopFlxBarSet and pTopFlxBarSetBstrppaBotFlxBarSet Bottom longitudinal reinforcement bar set datappaBotFlxBarSetBstr Bottom longitudinal reinforcement bar set stringsplSizeBotFlx Number of Botttom longitudinal bar sets. Defines size of

pBotFlxBarSet and pBotFlxBarSetBstrComments 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 thecantilever. If the first span does not have a cantilever then the origin of the bar sets is thecenter of the first span support.

SetBeamEnvelopes ();Purpose Internal use only.

SetBeamResults ([in] long lStory, [in] long lBeamLineID, [in] long *plNumSpans, [in]  SBML_RES** haBeamLine, [in] SBM_RES**haBeamResults, [in] SBM_RES _BSTR** haBeamResultsBstr);

Purpose Set concrete beam design results.Parameters lStory Story number starting with 0 for the first story

lBeamLineID Beam line ID numberplNumSpans Total number of spans in beam linehaBeamLine Beam line resultshaBeamResults Individual beam span resultshaBeamResultsBstr Individual beam span result strings

 SetCriteriaBarSelectionData ([in] long* plMinTopBars, [in] long* plMinBotBars, [in] long* plBarLayerSame, [in] long* plSizeChange, [in] double*

pdSegSpaceInc, [in] double* pdShearBarSpaceInc, [in] long* plBarSelMethod, [in] long* plBarSizeBias, [in] long* plBiasLimit);Purpose Set Criteria Beam Design Bar Selection Defaults.Parameters plMinTopBars Min Number of Top Longitudinal bars

plMinBotBars Min Number of Bottom Longitudinal barsplBarLayerSame Keep all bars in layer the same size: 0 = FALSE, 1 = TRUEplSizeChange Number of sizes adjacent bars may differ bypdSegSpaceInc Trans bar spacing segment incrementpdShearBarSpaceInc Trans bar spacing shear bar spacing increment (0 = based on

minimum required steel, 1 = based on maximum spacing controllingover minimum rebar area, 2 = based on minimum spacing

controlling minimum rebar area)plBarSelMethod rebar selection method

Page 259: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 259/450

pplBarSizeBias Bar Selection Bias for Bar Size (0 = small, 1 = medium, 2 = large)plBiasLimit Amount of bias (0 = low, 1 = medium, 2 = high)

SetCriteriaDetailingGravBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,[in] long* plStirrupType);

Purpose Set Gravity Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spans.

pdTransBarStartEndDistance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpanDistance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

pdBotBarExtentSpan Cut-off location for bottom reinforcement relative tosupport face at interior supports

plBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice typeplEndCond Bottom longitudinal reinforcement end conditionplStirrupType Type of Stirrup

SetCriteriaDetailingGravJoistData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]

double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,[in] long* plStirrupType);

Purpose Set Gravity Joist Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spans

pdTransBarStartEndDistance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpan

Distance from support to shear reinforcement at interior

supportspdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to

Page 260: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 260/450

support face at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to support

face at interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice typeplEndCond Bottom longitudinal reinforcement end conditionplStirrupType Type of Stirrup

SetCriteriaDetailingLatBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*

pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plNumStirrupLegs, [in] long* plSpliceType, [in] long* plEndCond,[in] long* plStirrupType);

Purpose Set Lateral Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at ends of

beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at interior

support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement along

interior spanspdTransBarStartEnd Distance from support to 1st shear reinforcement at beam endpdTransBarStartSpan Distance from support to shear reinforcement at interior

supportspdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to support face

at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to support face at

interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType 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)

SetCriteriaReinCBCData ([in] long* plTop, [in] double* pdTop, [in] long* plSide, [in] double* pdSide, [in] long* plBot, [in] double* pdBot);Purpose Set 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

Page 261: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 261/450

SetCriteriaReinCBSFlexure ([in] long* plFlexMax, [in] double* pdFlexMax, [in] long* plFlexMin, [in] double* pdFlexMin);Purpose Set 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 ValueplFlexMin Clear Bar Spacing Flexure Min option (0 = Code, 1 = user defined)pdFlexMin Clear Bar Spacing Flexure Min Value

SetCriteriaReinCBSShear ( [in] long* plShearMax, [in] double* pdShearMax, [in] long* plShearMin, [in] double* pdShearMin);Purpose Set 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 ValueplShearMin Clear Bar Spacing Shear Min option (0 = Code, 1 = user defined)pdShearMin Clear Bar Spacing Shear Min Value

SetCriteriaReinCCBData ( [in] long* plAllow2Layers, [in] double* pdGravTopLayer1, [in] double* pdGravTopLayer2, [in] double*pdGravBotLayer1, [in] double* pdGravBotLayer2, [in] double* pdLatTopLayer1, [in] double* pdLatTopLayer2, [in] double*pdLatBotLayer1, [in] double* pdLatBotLayer2);

Purpose Criteria definitions for location from concrete tension surface to effective center of longitudinaltension 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 LayerpdGravBotLayer1 Cover to Center of Bars Grav Beams Bottom 1 LayerpdGravBotLayer2 Cover to Center of Bars Grav Beams Bottom 2 LayerpdLatTopLayer1 Cover to Center of Bars Lat Beams Top 1 LayerpdLatTopLayer2 Cover to Center of Bars Lat Beams Top 2 LayerpdLatBotLayer1 Cover to Center of Bars Lat Beams Bottom 1 LayerpdLatBotLayer2 Cover to Center of Bars Lat Beams Bottom 2 Layer

SetCriteriaReinLRRData ([in] long* plLRRMax, [in] double* pdLRRMax, [in] long* plLRRMin, [in] double* pdLRRMin);

Purpose Set Criteria Reinforcement Longitudinal Reinf. Ratio Defaults.Parameters plLRRMax Long. Rein Ratio Max option (0 = Code, 1 = user defined)pdLRRMax Long. Rein Ratio Max ValueplLRRMin Long. Rein Ratio Min option (0 = Code, 1 = user defined)pdLRRMin Long. Rein Ratio Min Value

IConcBeamState2

Philosophy:  This interface is for maintaining the state of the concrete beam module.

GetBSBarSelData ( [out] long* plSideBar, [out] long* plMinLongSize, [out] long* plMaxLongSize, [out] long* plTransSize);

Page 262: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 262/450

( [ ] g p , [ ] g p g , [ ] g p g , [ ] g p );Purpose BS 8110 Beam Design Defaults.Parameters plSideBar Index to the side bar minimum size

plMinLongSize Minimum longitudinal bar sizeplMaxLongSize Index to the maximum longitudinal bar sizeplTransSize Index to the shear bar size

GetBSDesignCheckData ( [out] long* plDesignShear, [out] BOOL* pbUseEnhanced);Purpose BS 8110 Beam Design Defaults.Parameters plDesignShear 0 = center line of support, 1 = column face

pbUseEnhanced True if Use Enhanced Shear Effects option is selected

GetBSShearDesignCriteria ( [out] double* pdShearSpacing, [out] long* plNumLegs, [out] long* plLinkType);Purpose BS 8110 Beam Design Defaults.Parameters pdShearSpacing Minimum spacing

plNumLegs Index to the number of shear legsplLinkType 0 = Open, 1 = Closed

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 camberpdDLforCamber % of Dead Load for camberpdCamberInc Camber incrementpdMinCamber Minimum camber valuepdMaxCamber Maximum camber value

GetCheckDeepBeam ( [out] BOOL* pbCheckDeepBeam);Purpose To get the mdf variable for whether the user wants to check deep beams.Parameters pbCheckDeepBeam  TRUE = Check Deep Beams

 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

GetChinaShearDesignCriteria ([out] double* pdShearSpacing, [out] double* pdShearSpacingCompact, [out] long* plNumLegs, [out] long*plLinkType, [out, retval] long* plRetVal);

Purpose Get the shear design criteria for the Chinese code.Parameters pdShearSpacing Shear bar spacing in the non-compact zone

pdShearSpacingCompact Shear bar spacing in the compact zoneplNumLegs Number of linksplLinkType Link type. 0 for closed, 1 for open.

plRetVal Error code. If value is non zero then check GetLastError

Page 263: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 263/450

GetConcBeamReinMinBarLayerGap ( [out] double* pdUpper, [out] double* pdLower);Purpose BS 8110 Beam Design Defaults.Parameters pdUpper Gap between upper main bar layers

pdLower Gap between lower main bar layers

GetCriteriaDetailingGravBeamData ( [out] double* pdTopBarExtentBeamEnd, [out] double* pdTopBarExtent1stSpanEnd, [out] double*pdTopBarExtentSpan, [out] double* pdTransBarStartEnd, [out] double* pdTransBarStartSpan, [out] double* pdBotBarExtent1stSpanEnd,[out] double* pdBotBarExtentSpan, [out] long* plBotMinContinuous, [out] long* plTopMinContinuous, [out] long* plNumStirrupLegs, [out]long* plSpliceType, [out] long* plEndCond, [out] long* plStirrupType);

Purpose Get Gravity Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement atends of beam line

pdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement atinterior support of end span

pdTopBarExtentSpan Fractional location along span for top reinforcementalong interior spans

pdTransBarStartEnd Distance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpan Distance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to

support face at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to supportface at interior supports

plBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType 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);

Purpose Get Gravity Joist Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end span

pdTopBarExtentSpan Fractional location along span for top reinforcementalong interior spans

Page 264: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 264/450

pdTransBarStartEnd Distance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpan Distance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

pdBotBarExtentSpan Cut-off location for tom reinforcement relative to supportface at interior supports

plBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over support

plNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType 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 linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spanspdTransBarStartEnd Distance from support to 1st shear reinforcement at

beam end

  pdTransBarStartSpan Distance from support to shear reinforcement at interiorsupportspdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to

support face at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to support

face at interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType 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)

Page 265: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 265/450

plStirrupType Type of Stirrup (same as for plEndCond)

GetDeflectionAlternateCriteria ( [out] double *pdDLRatio, [out] double *pdDLAbs, [out] double *pdLLRatio, [out] double *pdLLAbs, [out] double*pdLTRatio, [out] double *pdLTAbs, [out] double *pdNetRatio, [out] double *pdNetAbs);

Purpose Get the alternate span-to-deflection ratios/ abs values.Parameters pdDLRatio Dead Load l/d

pdDLAbs Dead Load deltapdLLRatio Live Load l/dpdLLAbs Live Load deltapdLTRatio Long Term + LL l/d

pdLTAbs Long Term + LL deltapdNetRatio Net Total l/dpdNetAbs Net Total delta

GetDeflectionCriteria ([in] LONG lIndex, [out] LONG *plUniqueID, [out] BSTR *pbstrName, [out] double *pdDLRatio, [out] double pdDLAbs, [out]double *pdLLRatio, [out] double *pdLLAbs, [out] double *pdLTRatio, [out] double *pdLTAbs, [out] double *pdNetRatio, [out] double*pdNetAbs);

Purpose Get the number of deflection criteria defined.Parameters lIndex Index of the criteria

plUnique ID Unique ID of the criteriapbstrName Label of the criteriapdDLRatio Dead Load deflection as ratio (ie 360 for L/360)

pdLAbs Dead Load deflection as absolute value (ie 1 for 1 inch)pdLLRatio LIve Load deflection as ratio (ie 360 for L/360)pdLLabs Live Load deflection as absolute value (ie 1 for 1 inch)pdLTRatio Long Term deflection as ratio (ie 360 for L/360)pdLTAbs Long Term deflection as absolute value (ie 1 for 1 inch)pdNetRatio Net deflection as ratio (ie 360 for L/360)pdNetAbs Net deflection as absolute value (ie 1 for 1 inch)

GetDeflectionCriteriaIeff ([out] long *plIeff);

Purpose User option as to whether the Ieff used for deflection is to be calculated per ACI, orwhether 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 factorpdLLSustained % of LL sustained

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 ratiopdSpanDepthRatio minimum deflection check span/depth ratio

Page 266: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 266/450

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.Parameters pdDLRatio Dead Load l/d

pdDLAbs Dead Load deltapdLLRatio Live Load l/dpdLLAbs Live Load deltapdLTRatio Long Term + LL l/dpdLTAbs Long Term + LL delta

pdNetRatio Net Total l/dpdNetAbs Net Total delta

GetDesignJoistsAsBeams ([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

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

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

GetMemberScheduleMark ([in] long lBeamID, [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

Page 267: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 267/450

GetNumDeflectionCriteria ([out, retVal] long* plCount);Purpose Get the number of deflection criteria defined.Parameters plCount Number of criteria

Reset ();Purpose Internal use only.

SetBSBarSelData ( [in] long* plSideBar, [in] long* plMinLongSize, [in] long* plMaxLongSize, [in] long* plTransSize);Purpose BS 8110 Beam Design Defaults.Parameters plSideBar Index to the side bar minimum size

plMinLongSize Minimum longitudinal bar sizeplMaxLongSize Index to the maximum longitudinal bar sizeplTransSize Index to the shear bar size

SetBSDesignCheckData ( [in] long* plDesignShear, [in] BOOL* pbUseEnhanced);Purpose BS 8110 Beam Design Defaults.Parameters plDesignShear 0 = center line of support, 1 = column face

pbUseEnhanced True if Use Enhanced Shear Effects option is selected

SetBSShearDesignCriteria ( [in] double* pdShearSpacing, [in] long* plNumLegs, [in] long* plLinkType);Purpose BS 8110 Beam Design Defaults.

Parameters pdShearSpacing Minimum spacingplNumLegs Index to the number of shear legsplLinkType 0 = Open, 1 = Closed

SetCamberCriteria ( [in] long *plDontCamber, [in] double *pdMinSpanLength, [in] double *pdDLforCamber, [in] double *pdCamberInc, [in] double*pdMinCamber, [in] 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 camberpdCamberInc Camber incrementpdMinCamber Minimum camber valuepdMaxCamber Maximum camber value

SetCheckDeepBeam ( [in] BOOL* pbCheckDeepBeam);Purpose To get the mdf variable for whether the user wants to check deep beams.Parameters pbCheckDeepBeam  TRUE = Check Deep Beams

SetCheckTorsion ( [in] 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

SetChinaShearDesignCriteria ([in] double dShearSpacing, [in] double dShearSpacingCompact, [in] long lNumLinks, [in] long lLinkType, [in,

Page 268: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 268/450

retval] long* plRetVal);Purpose Set the shear design criteria for the Chinese code.Parameters dShearSpacing Shear bar spacing in the non-compact zone

dShearSpacingCompact Shear bar spacing in the compact zonelNumLinks Number of linkslLinkType Link type. 0 for closed, 1 for open.plRetVal Error code. If value is non zero then check GetLastError

SetConcBeamReinMinBarLayerGap ( [in] double* pdUpper, [in] double* pdLower);Purpose BS 8110 Beam Design Defaults.

Parameters pdUpper Gap between upper main bar layerspdLower Gap between lower main bar layers

SetCriteriaDetailingGravBeamData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plTopMinContinuous, [in] long* plNumStirrupLegs, [in] long*plSpliceType, [in] long* plEndCond, [in] long* plStirrupType);

Purpose Set Gravity Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcementalong interior spans

pdTransBarStartEnd Distance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpan Distance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

  pdBotBarExtentSpan Cut-off location for tom reinforcement relative to supportface at interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice type (0 = ACI ClassA,

1 = ACI ClassB)plEndCond Bottom longitudinal reinforcement end condition (0 =

Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =Closed, 5 = U, 6 = Hoop, 7 = Mechanical)

plStirrupType Type of Stirrup (same as for plEndCond)

SetCriteriaDetailingGravJoistData ( [in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]double* pdBotBarExtentSpan [in] long* plBotMinContinuous [in] long* plTopMinContinuous [in] long* plNumStirrupLegs [in] long*

Page 269: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 269/450

double pdBotBarExtentSpan, [in] long plBotMinContinuous, [in] long plTopMinContinuous, [in] long plNumStirrupLegs, [in] longplSpliceType, [in] long* plEndCond, [in] long* plStirrupType);

Purpose Set Gravity Joist Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement at

ends of beam linepdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement at

interior support of end spanpdTopBarExtentSpan Fractional location along span for top reinforcement

along interior spanspdTransBarStartEnd Distance from support to 1st shear reinforcement at

beam endpdTransBarStartSpan Distance from support to shear reinforcement at interior

supportspdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative to

support face at ends of beam linepdBotBarExtentSpan Cut-off location for tom reinforcement relative to support

face at interior supportsplBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType 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)

SetCriteriaDetailingLatBeamData ([in] double* pdTopBarExtentBeamEnd, [in] double* pdTopBarExtent1stSpanEnd, [in] double*pdTopBarExtentSpan, [in] double* pdTransBarStartEnd, [in] double* pdTransBarStartSpan, [in] double* pdBotBarExtent1stSpanEnd, [in]double* pdBotBarExtentSpan, [in] long* plBotMinContinuous, [in] long* plTopMinContinuous, [in] long* plNumStirrupLegs, [in] long*plSpliceType, [in] long* plEndCond, [in] long* plStirrupType);

Purpose Set Lateral Beam Detailing Defaults.Parameters pdTopBarExtentBeamEnd Fractional location along span for top reinforcement atends of beam line

pdTopBarExtent1stSpanEnd Fractional location along span for top reinforcement atinterior support of end span

pdTopBarExtentSpan Fractional location along span for top reinforcementalong interior spans

pdTransBarStartEnd Distance from support to 1st shear reinforcement atbeam end

pdTransBarStartSpan Distance from support to shear reinforcement at interiorsupports

pdBotBarExtent1stSpanEnd Cut-off location for bottom reinforcement relative tosupport face at ends of beam line

pdBotBarExtentSpan Cut-off location for tom reinforcement relative to supportface at interior supports

Page 270: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 270/450

ppplBotMinContinuous Min. # of bottom bars continuous over supportplTopMinContinuous Min. # of top bars continuous over supportplNumStirrupLegs Number of stirrup legs for gravity joistsplSpliceType Longitudinal reinforcement Splice type (0 = ACI ClassA,

1 = ACI ClassB)plEndCond Bottom longitudinal reinforcement end condition (0 =

Straight, 1 = Splice, 2 = Hook 90, 3 = Hook 135, 4 =Closed, 5 = U, 6 = Hoop, 7 = Mechanical)

plStirrupType Type of Stirrup (same as for plEndCond)

SetDeflectionAlternateCriteria ( [in] double *pdDLRatio, [in] double *pdDLAbs, [in] double *pdLLRatio, [in] double *pdLLAbs, [in] double*pdLTRatio, [in] double *pdLTAbs, [in] double *pdNetRatio, [in] double *pdNetAbs);

Purpose Set the alternate span-to-deflection ratios/ abs values.Parameters pdDLRatio Dead Load l/d

pdDLAbs Dead Load deltapdLLRatio Live Load l/dpdLLAbs Live Load deltapdLTRatio Long Term + LL l/dpdLTAbs Long Term + LL deltapdNetRatio Net Total l/dpdNetAbs Net Total delta

SetDeflectionCriteria ([in] LONG lIndex, [in] LONG lUniqueID, [in] BSTR bstrName, [in] double dDLRatio, [in] double dDLAbs, [in] doubledLLRatio, [in] double dLLAbs, [in] double dLTRatio, [in] double dLTAbs, [in] double dNetRatio, [in] double dNetAbs);

Purpose Set the number of deflection criteria defined.Parameters lIndex Index of the criteria

lUnique ID Unique ID of the criteriapbstrName Label of the criteriadDLRatio Dead Load deflection as ratio (ie 360 for L/360)dLAbs Dead Load deflection as absolute value (ie 1 for 1 inch)

  dLLRatio LIve Load deflection as ratio (ie 360 for L/360)dLLabs Live Load deflection as absolute value (ie 1 for 1 inch)dLTRatio Long Term deflection as ratio (ie 360 for L/360)dLTAbs Long Term deflection as absolute value (ie 1 for 1 inch)dNetRatio Net deflection as ratio (ie 360 for L/360)dNetAbs Net deflection as absolute value (ie 1 for 1 inch)

SetDeflectionCriteriaIeff ([in] long *plIeff);Purpose 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

SetDeflectionCriteriaLongTerm ( [in] double *pdInitialTimeFac, [in] double *pdFinalTimeFac, [in] double *pdLLSustained);Purpose Get Long Term Deflection criteria.Parameters pdInitialTimeFac Initial time dependent factor

Page 271: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 271/450

Parameters pdInitialTimeFac Initial time dependent factorpdFinalTimeFac Final time dependent factorpdLLSustained % of LL sustained

SetDeflectionCriteriaMinCheckRatio ( [in] long *plDontCheck, [in] 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

SetDeflectionDefaultCriteria ( [in] double *pdDLRatio, [in] double *pdDLAbs, [in] double *pdLLRatio, [in] double *pdLLAbs, [in] double *pdLTRatio,

[in] double *pdLTAbs, [in] double *pdNetRatio, [in] double *pdNetAbs);Purpose Get the default span-to-deflection ratios/ abs values.Parameters pdDLRatio Dead Load l/d

pdDLAbs Dead Load deltapdLLRatio Live Load l/dpdLLAbs Live Load deltapdLTRatio Long Term + LL l/dpdLTAbs Long Term + LL deltapdNetRatio Net Total l/dpdNetAbs Net Total delta

SetDesignJoistsAsBeams ( [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

SetLatBmGravForceSource ( [out] 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

 SetMemberScheduleMark ([out] 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 markplRetVal Error code. If value is non zero then check GetLastError

SetNumDeflectionCriteria ( [out] long lCount);Purpose Set the number of deflection criteria defined.Parameters lCount Number of criteria

IConcCntlrCommon1

Page 272: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 272/450

Philosophy: This interface is used to access data that is common to several controllers.

ClearSPDataForBeam ();Purpose Internal use only.

GetCriteriaCode ( [out, RetVal] EDA_CONC_CODE );Purpose Get the concrete code.

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetFrameTypeCriteria ([out] long* plFrameRadioSel, [out] long* pnNum, [out] BOOL** ppabIncludeCheck);Purpose 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)

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

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetSDCForConcrete ( [out] long* plSDC );Purpose Get the seismic design category.Parameters plSDC Index to seismic design category

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

Page 273: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 273/450

0 ACI, 1 UBC, 2 user defined valuespdDead Dead load factor entered by the userpdLive Live load factor entered by the userpdSnow Snow load factor entered by the user

GetSpecialProvDsnEndShear ([in] long lBeamID, [out] double* pdVuORVeIEnd, [out] double* pdVuORVeJEnd, [out] double* pdVuAnalysisIEnd,[out] double* pdVuAnalysisJEnd, [out] long *plResult);

Purpose 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

pdVuORVeJEndRequired minimum shear capacity at J end. Vu for IMF and Vefor SMF

pdVuAnalysisIEnd Analysis required shear capacity at I endpdVuAnalysisJEnd Analysis required shear capacity at J endplResult Returned error code

GetSpecialProvEndMomentCap ([in] long lBeamID, [out] double* pdMnIEndPos, [out] double* pdMnIEndNeg, [out] double* pdMnJEndPos, [out]double* pdMnJEndNeg, [out] double* pdMprIEndPos, [out] double* pdMprIEndNeg, [out] double* pdMprJEndPos, [out] double*pdMprJEndNeg, [out] long *plResult);

Purpose 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 beampdMnIEndNeg Negative nominal moment at I end of beampdMnJEndPos Positive nominal moment at J end of beampdMnJEndNeg Negative nominal moment at J end of beampdMprIEndPos Positive probable moment at I end of beampdMprIEndNeg Negative probable moment at I end of beampdMprJEndPos Positive probable moment at J end of beampdMprJEndNeg Negative probable moment at J end of beamplResult Returned error code

 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

pdIEndSPShear I or Start Special Provisions Shear min. required shearpdJEndSPShear J or End Special Provisions Shear min. required shearplResult Error code 0 = no error

GetSpecialProvReinAreaAtSupportFace ([in] long lBeamID, [out] double *pdStartTopReinArea, [out] double *pdStartBotReinArea, [out] double*pdEndTopReinArea, [out] double *pdEndBotReinArea, [out] long *plResult);

Purpose Get provided reinforcement area at ends of span. Used for Special provisions design.

Parameters lBeamID Beam unique IDpdStartTopReinArea Top reinforcement area at start of beampdStartBotReinArea Bottom reinforcement area at start of beam

Page 274: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 274/450

pdStartBotReinArea Bottom reinforcement area at start of beampdEndTopReinArea Top reinforcement area at end of beampdEndBotReinArea Bottom reinforcement area at end of beamplResult Returned error code

Reset ();Purpose Internal use only.

SaveSPData ();Purpose Internal use only.

SetCriteriaCode ( [out, RetVal] EDA_CONC_CODE );Purpose Set the concrete code.

SetFrameTypeCriteria ([in] long* plFrameRadioSel, [in] long* pnNum, [in] BOOL** ppabIncludeCheck);Purpose Set 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)

SetFrameTypeUsedInDesign ([in] long *plFrameType);Purpose Set the frame type used for design. This might not be the currently selected frame type.Parameters plFrameType  0 = ordinary, 1 = intermediate, 2 = special

SetSDCForConcrete ( [in] long* plSDC );Purpose Set the seismic design category.Parameters plSDC Index to seismic design category

SetSMFLoadComboFactors ([in] long* plSMFRadioSel, [in] double* pdDead, [in] double* pdLive, [in] double* pdSnow);Purpose Set 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 valuespdDead Dead load factor entered by the userpdLive Live load factor entered by the userpdSnow Snow load factor entered by the user

SetSpecialProvDsnEndShear ([in] long lBeamID, [in] double* pdVuORVeIEnd, [in] double* pdVuORVeJEnd, [in] double* pdVuAnalysisIEnd, [in]double* pdVuAnalysisJEnd );

Purpose Set 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 Vefor SMFRequired minimum shear capacity at J end. Vu for IMF and Ve

Page 275: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 275/450

pdVuORVeJEndRequired minimum shear capacity at J end. Vu for IMF and Vefor SMF

pdVuAnalysisIEnd Analysis required shear capacity at I endpdVuAnalysisJEnd Analysis required shear capacity at J endplResult Returned error code

SetSpecialProvEndMomentCap ([in] long lBeamID, [in] double* pdMnIEndPos, [in] double* pdMnIEndNeg, [in] double* pdMnJEndPos, [in]double* pdMnJEndNeg, [in] double* pdMprIEndPos, [in] double* pdMprIEndNeg, [in] double* pdMprJEndPos, [in] double* pdMprJEndNeg);

Purpose Set the end moment capacities of the mid span of a given beam.

Parameters lBeamID Beam unique IDpdMnIEndPos Positive nominal moment at I end of beampdMnIEndNeg Negative nominal moment at I end of beampdMnJEndPos Positive nominal moment at J end of beampdMnJEndNeg Negative nominal moment at J end of beampdMprIEndPos Positive probable moment at I end of beampdMprIEndNeg Negative probable moment at I end of beampdMprJEndPos Positive probable moment at J end of beampdMprJEndNeg Negative probable moment at J end of beamplResult Returned error code

SetSpecialProvEndShears ([in] long lBeamID, [in] double* pdIEndSPShear, [in] double* pdJEndSPShear );

Purpose Set the calculated special provision minimum required end shears for beam. If notfound, set -1.0 for all values and return error code.

Parameters lBeamID Beam Unique IDpdIEndSPShear I or Start Special Provisions Shear min. required shearpdJEndSPShear J or End Special Provisions Shear min. required shearplResult Error code 0 = no error

SetSpecialProvReinAreaAtSupportFace ([in] long lBeamID, [in] double *pdStartTopReinArea, [in] double *pdStartBotReinArea, [in] double*pdEndTopReinArea, [in] double *pdEndBotReinArea, [out] long *plResult);

Purpose Set provided reinforcement area at ends of span. Used for Special provisions design.Parameters lBeamID Beam unique ID

pdStartTopReinArea Top reinforcement area at start of beampdStartBotReinArea Bottom reinforcement area at start of beampdEndTopReinArea Top reinforcement area at end of beampdEndBotReinArea Bottom reinforcement area at end of beamplResult Returned error code

IConcColModState1

Philosophy: This interface is for maintaining the state of the concrete column module.

Page 276: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 276/450

ClearColumnResults ();Purpose Internal use only.

GetAssignGeometry ([out] BOOL* pbAssignSize, [out] BOOL* pbAssignLegs, [out] long* pnMajor, [out] long* pnMinor, [out] pnUserMajor, [out]pnUserMinor, [out] pnSizeIndex, [out] BSTR bstrGblMajor, [out] BSTR bstrGblMinor );

Purpose Assign menu dialog settings.Parameters pbAssignSize 1 if Assign – Size exists

pbAssignLegs 1 if Assign – Legs existspnMajor 0 = Use Global, 1 = User Defined

pnMinor 0 = Use Global, 1 = User DefinedpnUserMajor Number of legs in the major axispnUserMinor Number of Legs in the minor axispnSizeIndex Index to the selected column size in Assign - SizebstrGblMajor String for the global setting in the minor axisbstrGblMinor String for the global setting in the minor axis

GetBarGroup ([in] long nIndex, [out] BSTR* pbstrLabel, [out] BSTR* pbstrListBoxLabel, [out] BSTR* pbstrMaxBar, [out] BSTR* pbstrMinBar,[out] BSTR* pbstrTieBar, [out] long* pnGroupID, [out] long* pnNumLong, [out] long* pnNumAdd, [out] long* pnNumPatternsInGroup, [out]long* pnType, [out] long* pbUse, [out] long* pbValid);

Purpose Get the bar pattern group.Parameters nIndex Pattern group index number

pbstrLabel Label automatically generated for the grouppbstrListBoxLabel Group label that is used in list boxes (includes tab character)pbstrMaxBar Max longitudinal bar size labelpbstrMinBar Min longitudinal bar size labelpbstrTieBar Transverse bar size labelpnGroupID Unique Group ID.pnNumLong Number of longitudinal bars used at top and bottom of

rectangular patterns or total number of bars used in roundpattern layouts

  pnNumAdd Additional bars on left and right side of rectangular patternspnNumPatternsInGroup Number of bar patterns generated by grouppnType Pattern type - ePATTERN_TYPEpbUse Pattern group is being usedpbValid True = pattern group is valid and can be used in design

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

pBarPattern Pointer to an array of  SBAR_PATTERNs. Memory must be

allocated before the pointer is sent into DataAccess.

GetBarPatternData ([in] long* pnNextPatternID, [out] long* pnNextGroupID, [out] long* pnLastGroupSelected );

Page 277: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 277/450

([ ] g p , [ ] g p p , [ ] g p p );Purpose Get additional bar pattern group data. .Parameters pnNextPatternID Unique ID of the next pattern

pnNextGroupID Unique ID of the next grouppnLastGroupSelected Index of the last selected group

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 forlateral 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 axispdKy The effective length factor for minor axis

GetColumnResults ([in] long lColID, [out] SCOL_RES** ppaColRes, [out] SCOL_PATRES** ppaPatRes, [out] SCOL_PATRES _BSTR**ppaPatResStr, [out] SCOL_TRANSRES** ppaTransBarRes, [out] SCOL_TRANSRES _BSTR** ppaTransBarResStr, [out] long* plNumPat, [out] long* plNumTrans); 

Purpose Get all concrete column design data.Parameters lColID Column’s unique ID 

ppaColRes Concrete Column Results datappaPatRes Bar Pattern Results data

ppaPatResStr Strings for Bar Pattern Results datappaTransBarRes Column Transverse Reinforcement Set datappaTransBarResStr Strings for Column Transverse Reinforcement Set dataplNumPat Number of bar patterns – Array size of paPatRes and

paPatResStrplNumTrans Number of Transverse bar sets Array size of paTransBarRes

and paTransBarResStrComments 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 variableindicates the number of transverse bar groups associated with that bar pattern. So the first set of transverse bar sets are associated with the first barpattern and the next set identified by the number of trans. bar sets belongs to the second bar set.

GetCriteriaBarSelection ([out] double*, pdSegIncr, [out] double* pdTransIncr );Purpose Get the bar selection criteria in Criteria – Column DesignParameters pdSegIncr   Transverse segment spacing increment

pdTransIncr Transverse bar spacing increment

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.

Page 278: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 278/450

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

reinforcement.Parameters pdLap1 Bars less than or equal to pbstrSelSize use pdLap1 x bar

diameterpdLap2 Bars larger than pbstrSelSize use pdLap2 x bar diameterpnNumRebar Total number of reinforcement properties in reinforcement tablepbstrSelSize Bar size string for limiting bar size

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

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetFinalBarData ([in] long lColID, [out] SBAR_PATTERN* pBarPattern, [out] long* plNumSegments, [out] EDA_SEG_SET_INFO** ppaSegInfo,[out] EDA_REIN_PLACE_SET** ppaReinPlace); 

Purpose Final design reinforcement information for column.

Parameters lColID Column’s unique ID pBarPattern Bar Pattern infoplNumSegments Number of transverse segmentsppaSegInfo Bar set segment info – Array size is plNumSegmentsppaReinPlace Bar set placement info – Array size is plNumSegments

Comments This method will give all the required information for detailing the reinforcement in aconcrete column. The start and end locations in pSegInfo are relative to the bottom of thegiven column.

 GetInterfacePointer();

Purpose Internal use only.

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

GetNumBarGroups ([out] long* pnNumGroups);

Page 279: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 279/450

GetNumBarGroups ([out] long pnNumGroups);Purpose Get the number of bar pattern groups.Parameters pnNumGroups  Number of bar pattern groups.

GetSlendernessResults ([in] long lColID, [out] long* pbUserSelSlnd, [out] double* pdLux, [out] double* pdLuy, [out] double* pdKx, [out] double*pdKy, [out] long* pbBracedSideSwayX, [out] long* pbBracedSideSwayY);

Purpose Return the parameters associated with the calculation of slenderness for a specificcolumn.

Parameters lColID The unique column ID

pbUserSelSlnd

True (1) if user specified to consider slenderness in the RAM

Concrete Analysis modulepdLux The unbraced length of the column in major axispdLuy The unbraced length of the column in minor axispdKx The effective length factor for major axispdKy The effective length factor for minor axis

pbBracedSideSwayXTrue if user designated column is braced against sidesway inmajor axis.

pbBracedSideSwayYTrue if user designated beam is braced against sidesway inminor axis.

Reset ();Purpose Internal use only.

SetAssignGeometry ([in] BOOL* pbAssignSize, [in] BOOL* pbAssignLegs, [in] long* pnMajor, [in] long* pnMinor, [in] pnUserMajor, [in]pnUserMinor, [in] pnSizeIndex );

Purpose Assign menu dialog settings.Parameters pbAssignSize 1 if Assign – Size exists

pbAssignLegs 1 if Assign – Legs existspnMajor 0 = Use Global, 1 = User DefinedpnMinor 0 = Use Global, 1 = User Defined

  pnUserMajor Number of legs in the major axispnUserMinor Number of Legs in the minor axispnSizeIndex Index to the selected column size in Assign - Size

SetBarGroup ([in] long nIndex, [in] BSTR* pbstrLabel, [in] BSTR* pbstrListBoxLabel, [in] BSTR* pbstrMaxBar, [in] BSTR* pbstrMinBar, [in]BSTR* pbstrTieBar, [in] long* pnGroupID, [in] long* pnNumLong, [in] long* pnNumAdd, [in] long* pnNumPatternsInGroup, [in] long*pnType, [in] long* pbUse, [in] long* pbValid, [in] SBAR_PATTERN pBarPattern);

Purpose Set the bar pattern group.Parameters nIndex Pattern group index number

pbstrLabel Label automatically generated for the grouppbstrListBoxLabel Group label that is used in list boxes (includes tab character)pbstrMaxBar Max longitudinal bar size label

pbstrMinBar Min longitudinal bar size labelpbstrTieBar Transverse bar size labelpnGroupID Unique Group ID.

Page 280: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 280/450

pnNumLong Number of longitudinal bars used at top and bottom ofrectangular patterns or total number of bars used in roundpattern layouts

pnNumAdd Additional bars on left and right side of rectangular patternspnNumPatternsInGroup Number of bar patterns generated by grouppnType Pattern type - ePATTERN_TYPEpbUse Pattern group is being usedpbValid True = pattern group is valid and can be used in designpBarPattern Bar pattern

SetBarPattern ([in] long nGroupIndex, [in] long nNumPatterns, [in] SBAR_PATTERN* pBarPattern);Purpose Set a specific bar pattern group. .Parameters nGroupIndex The group index

nNumPatterns The number of patterns within the group. This is used for datachecking.

pBarPattern Pointer to an array of  SBAR_PATTERNs. Memory must beallocated before the pointer is sent into DataAccess.

SetBarPatternData ([in] long* pnNextPatternID, [in] long* pnNextGroupID, [in] long* pnLastGroupSelected );Purpose Set additional bar pattern group data. .Parameters pnNextPatternID Unique ID of the next pattern

pnNextGroupID Unique ID of the next grouppnLastGroupSelected Index of the last selected group

SetColumnResults ([in] long lColID, [in] SCOL_RES** ppaColRes, [in] SCOL_PATRES** ppaPatRes, [in] SCOL_PATRES _BSTR**ppaPatResStr, [in] SCOL_TRANSRES** ppaTransBarRes, [in] SCOL_TRANSRES _BSTR** ppaTransBarResStr, [in] long* plNumPat,[in] long* plNumTrans); 

Purpose Set all concrete column design data. .Parameters lColID Column’s unique ID 

ppaColRes Concrete Column Results data

  ppaPatRes Bar Pattern Results datappaPatResStr Strings for Bar Pattern Results datappaTransBarRes Column Transverse Reinforcement Set datappaTransBarResStr Strings for Column Transverse Reinforcement Set dataplNumPat Number of bar patterns – Array size of paPatRes and

paPatResStrplNumTrans Number of Transverse bar sets Array size of paTransBarRes

and paTransBarResStrComments 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 barpattern and the next set identified by the number of trans. bar sets belongs to the second bar set.

Page 281: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 281/450

SetCriteriaBarSelection ([in] double*, pdSegIncr, [in] double* pdTransIncr );Purpose Set the bar selection criteria in Criteria – Column DesignParameters pdSegIncr   Transverse segment spacing increment

pdTransIncr Transverse bar spacing increment

SetCriteriaBarSpacing ([in] BAR_SPACING* pBarSpacing);Purpose Set the spacing and clear cover values from the Criteria - Design – Reinforcement page.Parameters pBarSpacing  Structure of bar spacing values.

SetCriteriaLapSplice ([in] double* pdLap1, [in] double* pdLap2, [in] long* pnNumRebar, [in] BSTR* pbstrSelSize);Purpose Lap splice information used to calculate material takeoff for longitudinal column

reinforcement. .Parameters pdLap1 Bars less than or equal to pbstrSelSize use pdLap1 x bar

diameterpdLap2 Bars larger than pbstrSelSize use pdLap2 x bar diameterpnNumRebar Total number of reinforcement properties in reinforcement tablepbstrSelSize Bar size string for limiting bar size

SetCriteriaShearLegs ([in] long* plNumSLMajor, [in] long* plNumSLMinor);Purpose Set the shear leg criteria. .

Parameters plNumSLMajor Number of shear legs parallel to the columns major axisplNumSLMinor Number of shear legs parallel to the columns minor axis

SetSlendernessResults ([in] long lColID, [in] long* pbUserSelSlnd, [in] double* pdLux, [in] double* pdLuy, [in] double* pdKx, [in] double* pdKy,[in] long* pbBracedSideSwayX, [in] long* pbBracedSideSwayY);

Purpose Set the parameters associated with the calculation of slenderness for a specific column.Parameters lColID The unique column ID

pbUserSelSlndTrue (1) if user specified to consider slenderness in the RAMConcrete Analysis module

  pdLux The unbraced length of the column in major axispdLuy The unbraced length of the column in minor axispdKx The effective length factor for major axispdKy The effective length factor for minor axis

pbBracedSideSwayXTrue if user designated column is braced against sidesway inmajor axis.

pbBracedSideSwayYTrue if user designated beam is braced against sidesway inminor axis.

SetZeroBarGroups ();Purpose Clear bar groups.

IConcColModState2

Page 282: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 282/450

IConcColModState2

Philosophy: (see ConcColModState1 above)

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

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

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 failurepbstrLongError Longer message about the failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetLatColGravForceSource ( [out] long* plLatMemGravForceSource, [out,retval] long* plRetVal );Purpose Get the forces from RAM Concept for a column. .

Parameters plLatMemGravForceSource  0 = RAM Concrete analysis, 1 = RAM Frame analysis

plRetValReturn Value. Zero if successful. Check last error ifnonzero.

GetMemberScheduleMark ( [in] long* lColID, [out] SConcScheduleMark pColumnScheduleMark, [out,retval] long* plRetVal );Purpose Get the forces from RAM Concept for a column. .Parameters lColID  Unique ID of the column

pColumnScheduleMark Column schedule mark structure

plRetValReturn Value. Zero if successful. Check last error ifnonzero.

lSlendernessReductionFactor [in, out] long

Purpose The slenderness reduction factor for the BS 8110 code. .

Reset ();

Page 283: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 283/450

();Purpose Internal use only.

SetCheckAxialLimit ( [in] BOOL bCheckAxial );Purpose Set the flag indicating whether the user wants to check max column axial load limit.Parameters bCheckAxial  TRUE = Check Max Column Axial Load Limit

SetCheckTorsion ( [in] BOOL pCheckTorsion );Purpose Set the flag indicating whether the user wants to check torsional capacity for columns.

Parameters bCheckTorsion  TRUE = Check Torsional Capacity

SetLatColGravForceSource ( [in] long lLatMemGravForceSource, [out,retval] long* plRetVal );Purpose Set the forces from RAM Concept for a column. .Parameters lLatMemGravForceSource  0 = RAM Concrete analysis, 1 = RAM Frame analysis

plRetValReturn Value. Zero if successful. Check last error ifnonzero.

SetMemberScheduleMark ( [in] long lColID, [out] SConcScheduleMark ColumnScheduleMark, [out,retval] long* plRetVal );Purpose Get the forces from RAM Concept for a column. .Parameters lColID  Unique ID of the column

ColumnScheduleMark Column schedule mark structure

plRetValReturn Value. Zero if successful. Check last error ifnonzero.

IConcept

Philosophy: This interfaces is for RAM Concept intregration with RAM Structural System

 

ClearConceptStoryForces ( [in] long* lStoryID);Purpose Clear the forces from RAM Concept for the given story unique ID.Parameters lStoryID  Unique ID of the story

GetConceptColumnForcesAtEnd ( [in] long* lColumnID, [in] EDA_MEMBER_LOC eColEnd, [in] long lAnalysisCaseID, [in]EConceptConcSkipCase eConcSkipCase, [in] BOOL bTransferLoadCase, [out] SForce* pSForce, [out,retval] long* plRetVal );

Purpose Get the forces from RAM Concept for a column.Parameters lColumnID  Unique ID of the column

eColEnd eTop or eBottomlAnalysisCaseID Unique ID of the analysis caseeConcSkipCase Concept skip load casebTransferLoadCase True if transfer load casepSForce Forces structureplRetVal Return Value. Zero if successful. Check last error if nonzero.

Page 284: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 284/450

GetConceptExportFileInfo ( [in] long* lStoryID, [out] BSTR* pstrConceptFileNamePath, [out] long* plTimestamp, [out] long* plSourceStoryID, [out]EStateStatus* peStatus, BSTR* pstrConceptStatusReason, [out,retval] long* plRetVal );

Purpose Get the file information for a story exported to Concept.Parameters lStoryID  Unique ID of the story

pstrConceptFileNamePath Path of the Concept FileplTimestamp Time stampplSourceStoryID Soure story unique IDpeStatus Current or not

pstrConceptStatusReason Reason for statusplRetVal Return Value. Zero if successful. Check last error if

nonzero.

GetConceptForcesChanged ( [out] BOOL* pbForcesChanged, [out,retval] long* plRetVal );Purpose Get the file information for a story exported to Concept.Parameters pbForcesChanged  True if Concept forces have changd

plRetVal Return Value. Zero if successful. Check last error ifnonzero.

GetConceptStoryTimeStamp ( [in] long* lStoryID, [in] ECptStyTimeStampType eStyTimeStamp, [out] long* plTimestamp, [out,retval] long*plRetVal );

Purpose Get the file information for a story exported to Concept.Parameters lStoryID  Unique ID of the story

eCptStyTimeStampType Type of time stampplTimestamp Time stampplRetVal Return Value. Zero if successful. Check last error if

nonzero.

GetConceptWallForce ( [in] long* lWallID, [in] long lAnalysisCaseID, [in] EConceptConcSkipCase eConcSkipCase, [in] BOOLbTransferLoadCase, [out] SForce* pSForce, [out,retval] long* plRetVal );

Purpose Get the forces from RAM Concept for a column.Parameters lWallD  Unique ID of the wall

lAnalysisCaseID Unique ID of the analysis caseeConcSkipCase Concept skip load casebTransferLoadCase True if transfer load casepSForce Forces structureplRetVal Return Value. Zero if successful. Check last error if nonzero.

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only

Page 285: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 285/450

Purpose Internal use only.

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

GetStoryStatus ( [in] long* lStoryID, [out] EStatusState* peStatus, [out,retval] long* plRetVal );Purpose Get the status of a story story exported to Concept.Parameters lStoryID  Unique ID of the story

peStatus Current or notplRetVal Return Value. Zero if successful. Check last error if

nonzero.

Reset ();Purpose Internal use only.

SetConceptColumnForcesAtEnd ();Purpose Internal use only.

SetConceptExportFileInfo ();Purpose Internal use only.

SetConceptForcesChanged ();Purpose Internal use only.

 SetConceptStoryTimeStamp ();

Purpose Internal use only.

SetConceptWallForce ();Purpose Internal use only.

IDBIO1

Philosophy: This interface is for performing functions on the database as a whole. This includes Loading and Saving. It also includes changingthe database name. It does not include inquiries or specific data manipulation.

Page 286: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 286/450

 AllowConcurrentAccess ([in] BOOL bAllow)Purpose Permits the model to be opened by multiple users simultaneously.

Parameters bAllow 1 if permitted, 0 if not

CloseDatabase();

Purpose To close the database files.Comments This method sh ould be the last cal l to Data Access.

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 purposesplRetVal 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.Parameters bstrName Model name (do not include file extension)eUnits Which units will be used for display purposesbstrUserID String that identifies the calling applicationplRetVal Return value, 0 if successful

Comments This function will fail if the model already exists.

GetDatabaseVersion([in] const BSTR bstrDBName, [out] double* pdVersion);

Purpose To obtain the version number of the indicated database.

Parameters bstrDBName Model name including pathpdVersion Return variable for database version number

Comments Can be used to ensure that the database is a compatible version withDataAccess before calling LoadDataBase.

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Purpose To get information about why a method failed

Page 287: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 287/450

Purpose To get information about why a method failed.Parameters pbstrShortError Short message about the failure

pbstrLongError Longer message about the failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetModelDir( [out] BSTR* pbstrDir );

Purpose To get the path of the model. .

Parameters pbstrDir Model patth

GetWorkingDirectory ([out] BSTR* pbstrWorkingDir)Purpose Returns the Working directory where the model files are unzipped. 3.

Parameters pbstrWorkingDir The Working Directory

IsDatabaseReadOnly ([out] BOOL* pbReadOnly)Purpose Indicates if the database is read only or not.

Parameters pbReadOnly 1 if read only, 0 if not

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 extensionComments 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 applicationplRetVal Return value, 0 if successful

Database in Use: 25673Both .rss and .ram file exist for same model: 25674Model version is invalid: 25657Failed to read the .ram file: 301

CommentsThis function will fail if the model is currently in use or if the database version isincompatible with the current version of DataAccess.

ReloadDataBase ( );Purpose Internal use only

Page 288: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 288/450

ReloadDataBasePartial ( );Purpose Internal use only

RenameDataBaseTo ( );Purpose Internal use only

SaveDatabase();

Purpose To save the database files.

SaveDatabaseAs ( [in] BSTR bstr NewName );

Purpose Save the database files with a new name.

SaveWorkingFiles ( );Purpose Internal use only

IForces1

Philosophy: This interface typically provides RAM Frame member forces. These methods are only available following performing an analysis inRAM Frame.

Comments 1: A number of the functions below are dependent on the model being framed and the gravity analysis being performed before validdata can be returned. If the framing and gravity analysis has not been performed the function will return an Unspecified Error. Calling theGetLastError 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 showsthe sign convention used for beams, columns and brace members, and walls, respectively. Returned values from these functions follow thesesign conventions. It should be noted that compressive axial force is defined as positive. Moments that create compression in the top flange ofbeams, columns and braces are assumed to be positive.

Page 289: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 289/450

Figure 1. Sign convention for Beams

Page 290: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 290/450

 

Figure2. Sign convention for Column and Brace members

Page 291: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 291/450

 

Figure 3. Positive Sign Convention for Walls.

GetColForcesForLCase ([in] long lColumnID, [in] long lLoadCase, [out] double *pdAxial, [out] double *pdMajMomI, [out] double *pdMinMomI,[out] double *pdMajShearI, [out] double *pdMinShearI, [out] double *pdTorsionI, [out] double *pdMajMomJ, [out] double *pdMinMomJ,[out] double *pdMajShearJ, [out] double *pdMinShearJ, [out] double *pdTorsionJ);

Purpose Get lateral column forces for a given load case.Parameters lColumnID Column unique ID

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

pdAxial Axial loadpdMajMomI Major moment at toppdMinMomI Minor moment at toppdMajShearI Major shear at toppdMinShearI Minor shear at toppdTorsionI Torsion at toppdMajMomJ Major moment at bottompdMinMomJ Minor moment at bottompdMajShearJ Major shear at bottompdMinShearJ Minor shear at bottom

  pdTorsionJ Torsion at bottom

GetCriteriaEffectiveLength ([out] EKFAC_ASSIGN* peColumnMajor, [out] double* pdColumnMajorValue, [out] EKFAC_ASSIGN* peColumnMinor, [out] double* pdColumnMinorValue, [out] EKFAC_ASSIGN* peBeamMajor, [out] double* pdBeamMajorValue, [out]EKFAC_ASSIGN* peBeamMinor, [out] double* pdBeamMinorValue, [out] EKFAC_ASSIGN* peBraceMajor, [out] double*pdBraceMajorValue, [out] EKFAC_ASSIGN* peBraceMinor, [out] double* pdBraceMinorValue);

Purpose Get effective length info that is defined in RAM Frame criteria.

Parameters peColumnMajorThe assigned K factor property for column major axis (Useglobal, Use Nomograph, or Use specified value)

pdColumnMajorValueThe eff. Length factor (K) valid only if peColumnMajor isUseSpecifiedValue.

peColumnMinor

The assigned K factor property for column minor axis (Use

global, Use Nomograph, or Use specified value)

pdColumnMinorValueThe eff. Length factor (K) valid only if peColumnMinor isUseSpecifiedValue.The assigned K factor property for beam major axis (Use

Page 292: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 292/450

peBeamMajorg p p y j (

global, Use Nomograph, or Use specified value)

pdBeamMajorValueThe eff. Length factor (K) valid only if peBeamMajor isUseSpecifiedValue.

peBeamMinorThe assigned K factor property for beam minor axis (Useglobal, Use Nomograph, or Use specified value)

pdBeamMinorValueThe eff. Length factor (K) valid only if peBeamMinor isUseSpecifiedValue.

peBraceMajor

The assigned K factor property for brace major axis (Use

global, Use Nomograph, or Use specified value)

pdBraceMajorValueThe eff. Length factor (K) valid only if peBraceMajor isUseSpecifiedValue.

peBraceMinorThe assigned K factor property for brace minor axis (Useglobal, Use Nomograph, or Use specified value)

pdBraceMinorValue The eff. Length factor (K) valid only if peBraceMinor isUseSpecifiedValue.

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetGravBeamForcesLeftAt ([in] long lBeamID, [in] double dLocation, [out] double *pdDeadMoment, [out] double *pdDeadShear, [out] double

*pdCDMoment, [out] double *pdCDShear, [out] double *pdCLMoment, [out] double *pdCLShear, [out] double *pdPosLiveMoment, [out]double *pdPosLiveShear, [out] double *pdNegLiveMoment, [out] double *pdNegLiveShear);

Purpose 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 ofbeam to 1.0 at j end of beam

pdDeadMoment Dead load moment – includes self weightpdDeadShear Dead load shear – includes self weightpdCDMoment Construction dead load moment

  pdCDShear Construction dead load shear

pdCLMoment Construction live load momentpdCLShear Construction live load shearpdPosLiveMoment Positive live load momentpdPosLiveShear Positive live load shearpdNegLiveMoment Negative live load momentpdNegLiveShear Negative live load shear

GetGrvColForcesForLCase ([in] long lColumnID, [out] double* pdDead, [out] double* pdPosLLRed, [out] double* pdPosLLNonRed, [out] double*pdPosLLStorage, [out] double* pdPosLLRoof, [out] double* pdNegLLRed, [out] double* pdNegLLNonRed, [out] double* pdNegLLStorage,[out] double* pdNegLLRoof);

Purpose Get gravity column forces.

Parameters lColumnID Column Unique IDpdDead Dead load including self weightpdPosLLRed Positive live load ReduciblepdPosLLNonRed Positive live load Non Reducible

Page 293: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 293/450

pdPosLLNonRed Positive live load Non-ReduciblepdPosLLStorage Positive live load StoragepdPosLLRoof Positive live load RoofpdNegLLRed Negative live load ReduciblepdNegLLNonRed Negative live load Non-ReduciblepdNegLLStorage Negative live load StoragepdNegLLRoof Negative live load Roof

GetInterfacePointer();Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetLatBeamEndDeflection( [in] long lBeamID, [in] long lLoadCase, [out] double dX_Disp_Left [out] double dY_Disp_Left, [out] doubledZ_Disp_Left, [out] double dX_Rot_Left, [out] double dY_Rot_Left, [out] double dZ_Rot_Left, [out] double dX_Disp_Right, [out] doubledY_Disp_Right, [out] double dZ_Disp_Right, [out] double dX_Rot_Right, [out] double dY_Rot_Right, [out] double dZ_Rot_Right );

Purpose Get beam end deflections.Parameters lBeamID Beam Unique ID

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dX_Disp_Left Left end X translation

  dY_Disp_Left Left end Y translation

dZ_Disp_Left Left end Z translationdX_Rot_Left Left end X rotationdY_Rot_Left Left end Y rotationdZ_Rot_Left Left end Z rotationdX_Disp_Right Right end X translationdY_Disp_Right Right end Y translationdZ_Disp_Right Right end Z translationdX_Rot_Right Right end X rotationdY_Rot_Right Right end Y rotationdZ_Rot_Right Right end Z rotation

GetLatBeamForcesLeftAt ([in] long lBeamID, [in] long lLoadCase, [in] double dLocation, [out] double *pdAxial, [out] double *pdMajMom, [out]double *pdMinMom, [out] double *pdMajShear, [out] double *pdMinShear, [out] double *pdTorsion);

Purpose Get forces at left side of a point on a lateral beam for a given load case.Parameters lBeamID Beam Unique ID

C C f

Page 294: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 294/450

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dLocation Location ratio along beam. Value range is from 0.0 at I end of beamto 1.0 at j end of beam

pdAxial Axial loadpdMajMom Major direction MomentpdMinMom Minor direction MomentpdMajShear Major direction ShearpdMinShear Minor direction ShearpdTorsion Torsion

GetLatBraceEndDeflection( [in] long lBraceNum, [in] long lLoadCase, [out] double dX_Disp_Top [out] double dY_Disp_Top, [out] doubledZ_Disp_Top, [out] double dX_Rot_Top, [out] double dY_Rot_Top, [out] double dZ_Rot_Top, [out] double dX_Disp_Bot, [out] doubledY_Disp_Bot, [out] double dZ_Disp_Bot, [out] double dX_Rot_Bot, [out] double dY_Rot_Bot, [out] double dZ_Rot_Bot );

Purpose Get brace end deflections.Parameters lBraceNum Brace Unique ID

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dX_Disp_Top Top end X translationdY_Disp_Top Top end Y translation

dZ_Disp_Top Top end Z translationdX_Rot_Top Top end X rotationdY_Rot_Top Top end Y rotationdZ_Rot_Top Top end Z rotationdX_Disp_Bot Bot end X translationdY_Disp_Bot Bot end Y translationdZ_Disp_Bot Bot end Z translationdX_Rot_Bot Bot end X rotationdY_Rot_Bot Bot end Y rotation

  dZ_Rot_Bot Bot end Z rotation

GetLatColumnEndDeflection( [in] long lBeamID, [in] long lLoadCase, [out] double dX_Disp_Top [out] double dY_Disp_Top, [out] doubledZ_Disp_Top, [out] double dX_Rot_Top, [out] double dY_Rot_Top, [out] double dZ_Rot_Top, [out] double dX_Disp_Bot, [out] doubledY_Disp_Bot, [out] double dZ_Disp_Bot, [out] double dX_Rot_Bot, [out] double dY_Rot_Bot, [out] double dZ_Rot_Bot );

Purpose Get column end deflections.Parameters lColumnID Column Unique ID

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dX_Disp_Top Top end X translationdY_Disp_Top Top end Y translationdZ_Disp_Top Top end Z translation

dX_Rot_Top Top end X rotationdY_Rot_Top Top end Y rotationdZ_Rot_Top Top end Z rotationdX_Disp_Bot Bot end X translation

Page 295: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 295/450

dY_Disp_Bot Bot end Y translationdZ_Disp_Bot Bot end Z translationdX_Rot_Bot Bot end X rotationdY_Rot_Bot Bot end Y rotationdZ_Rot_Bot Bot end Z rotation

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 IDlLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dAxial Axial loaddMajMom Major direction momentdMajShear Minor direction moment

GetLatWallForcesAsBeam ([in] long lWallID, [in] long lLoadCase, [out[ double dAxial_IK, [out] double dMajMom_IK, [out] double dMajShear_IK,[out] double dMinMom_IK, [out] double dMinShear_IK, [out] double dTorsion_IK, [out] double dAxial_JL, [out] double dMajMom_JL, [out]double dMajShear_JL, [out] double dMinMom_JL, [out] double dMinShear_JL, [out] double dTorsion_JL );

Purpose Get wall forces as if it were a beam.

Parameters lWallID Wall Unique ID

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dAxial_IK I end axial

dMajMom_IK I end major moment

dMajShear_IK I end major shear

dMinMom_IK I end minor moment

dMinShear_IK I end minor shear

dTorsion_IK I end torsion

  dAxial_JL J end axial

dMajMom_JL J end major momentdMajShear_JL J end major shear

dMinMom_JL J end minor moment

dMinShear_JL J end minor shear

dTorsion_JL J end torsion

GetLatWallGroupForces ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [in] long lLoadCase, [out] double *pdAxial, [out] double*pdMajMoment, [out] double *pdMinMoment, [out] double *pdMajShear, [out] double *pdMinShear, [out] double *pdTorsion);

Purpose 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 - 1lLoadCase Load Case index number from 0 to value returened by

GetNumAnalyzedFrameLoadCases - 1

Page 296: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 296/450

GetNumAnalyzedFrameLoadCases - 1pdAxial Axial loadpdMajMoment Major direction momentpdMinMoment Minor direction momentpdMajShear Major direction shearpdMinShear Minor direction shearpdTorsion Torsion

GetLatWallGroupForcesAsBeam ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [in] long lLoadCase, [out[ double dAxial_IK, [out] doubledMajMom_IK, [out] double dMajShear_IK, [out] double dMinMom_IK, [out] double dMinShear_IK, [out] double dTorsion_IK, [out] doubledAxial_JL, [out] double dMajMom_JL, [out] double dMajShear_JL, [out] double dMinMom_JL, [out] double dMinShear_JL, [out] doubledTorsion_JL );

Purpose Get wall forces as if it were a beam.

Parameters lWallID Story number or unique ID

lWallGroupIndex Wall group index

lLoadCase Load Case index number from 0 to value returned byGetNumAnalyzedFrameLoadCases - 1

dAxial_IK I end axial

dMajMom_IK I end major moment

dMajShear_IK I end major shear

dMinMom_IK I end minor moment

dMinShear_IK I end minor shear

dTorsion_IK I end torsion

dAxial_JL J end axial

dMajMom_JL J end major moment

dMajShear_JL J end major shear

dMinMom_JL J end minor moment

  dMinShear_JL J end minor shear

dTorsion_JL J end torsion

GetMassInfo ([in] long lStoryNoOrID, [out] long lRigid, [out] double dMass, [out] double dMassMomI, [out] double dXCenterOfMass, [out] doubledYCenterOfMass, [out] double dXEcc, [out] double dYEcc, [out] long lLumpFlag);

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)lRigid 1 if rigid diaphragmdMass MassdMassMomI Mass inertiadXCenterOfMass X coordinate of the center of mass

dYCenterOfMass Y Coordinate of the center of massdXEcc X eccentricitydYEcc Y eccentricitylLumpFlag Combine to flag (0 = None)

Page 297: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 297/450

p g g ( )

GetWindExposure ([in] long lStoryNoOrID, [out] long lRigid, [out] double dMass, [out] double dMassMomI, [out] double dXCenterOfMass, [out]double dYCenterOfMass, [out] double dXEcc, [out] double dYEcc, [out] long lLumpFlag);

Purpose 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)dMinX Minimum X coordinate for extentsdMaxX Maximum X coordinate for extents

dMinY Minimum Y coordinate for extentsdMaxY Maximum Y coordinate for extentslExposureFlag 0 = Full, 1 = NonedParapetHeight Parapet Height

Reset ( );Purpose Internal use only.

SetAnalysisResultsInvalid ( );Purpose Internal use only.

IForces2

Philosophy: This is a continuation of the IForces1 interface.

GetAnalysisCaseInfo ([in] long lAnalysisCaseID, [in] EAnalysisResultType eAnalysisReultType, [in, out] SAnalysisCaseInfo* psAnalysisCaseInfo,[out,retval] long* plRetVal);

Purpose 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, RAMConcrete or Default which lets the program select theappropriate analysis result type 

psAnalysisCaseInfo Analysis Case InfoplRetVal 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 theappropriate analysis result type

palAnalysisCaseIDs Analysis Case unique IDsplRetVal Error code If value is non zero then check GetLastError

Page 298: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 298/450

plRetVal Error code. If value is non zero then check GetLastErrorComment Analysis cases are defined as the results of analyzing load cases

GetColForcesForLCase ([in] long lColumnID, [in] long lLoadCase, [out] double *pdAxialI, [out] double *pdMajMomI, [out] double *pdMinMomI,[out] double *pdMajShearI, [out] double *pdMinShearI, [out] double *pdTorsionI, [out] double *pdAxialJ, [out] double *pdMajMomJ, [out]double *pdMinMomJ, [out] double *pdMajShearJ, [out] double *pdMinShearJ, [out] double *pdTorsionJ);

Purpose

Get lateral column forces for a given load case. This function is similar to the one of thesame 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 axialload 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 byGetNumAnalyzedFrameLoadCases - 1

pdAxialI Axial load at toppdMajMomI Major moment at toppdMinMomI Minor moment at toppdMajShearI Major shear at toppdMinShearI Minor shear at toppdTorsionI Torsion at toppdAxialJ Axial load at bottom

pdMajMomJ Major moment at bottompdMinMomJ Minor moment at bottompdMajShearJ Major shear at bottompdMinShearJ Minor shear at bottompdTorsionJ Torsion at bottom

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetGravBeamForcesLeftAt ([in] long lBeamID, [in] double dLocation, [out] double *pdDeadMoment, [out] double *pdDeadShear, [out] double

*pdCDMoment, [out] double *pdCDShear, [out] double *pdCLMoment, [out] double *pdCLShear, [out] double *pdPosLiveMoment, [out]double *pdPosLiveShear, [out] double *pdNegLiveMoment, [out] double *pdNegLiveShear, [out] double *pdPosRoofLiveMoment, [out]double *pdPosRoofLiveShear, [out] double *pdNegRoofLiveMoment, [out] double *pdNegRoofLiveShear);

Purpose 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 endof beam to 1.0 at j end of beam

pdDeadMoment Dead load moment – includes self weightpdDeadShear Dead load shear – includes self weightpdCDMoment Construction dead load momentpdCDShear Construction dead load shearpdCLMoment Construction live load momentpdCLShear Construction live load shearpdPosLiveMoment Positive live load momentpdPosLiveShear Positive live load shearpdNegLiveMoment Negative live load moment

Page 299: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 299/450

pdNegLiveMoment Negative live load momentpdNegLiveShear Negative live load shearpdPosRoofLiveMoment Positive roof live load momentpdPosRoofLiveShear Positive roof live load shearpdNegRoofLiveMoment Negative roof live load momentpdNegRoofLiveShear Negative roof live load shear

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetLatBraceForces ([in] long lBraceID, [in] long lLoadCase, [out] double *pdAxial, [out] double *pdMajMomTop, [out] double *pdMinMomTop,[out] double *pdMajShearTop, [out] double *pdMinShearTop, [out] double *pdTorsionTop, [out] double *pdMajMomBot, [out] double*pdMinMomBot, [out] double *pdMajShearBot, [out] double *pdMinShearBot, [out] double *pdTorsionBot, [out, retval] long* plResult);

Purpose Get lateral brace forces.Parameters lBraceID Brace Unique ID

lLoadCase Load Case index number from 0 to value returened byGetNumAnalyzedFrameLoadCases - 1

pdAxial Axial loadpdMajMomTop Major moment at top

  pdMinMomTop Minor moment at top

pdMajShearTop Major shear at toppdMinShearTop Minor shear at toppdTorsionTop Torsion at toppdMajMomBot Major moment at bottompdMinMomBot Minor moment at bottompdMajShearBot Major shear at bottompdMinShearBot Minor shear at bottompdTorsionBot Torsion at bottomplResult Returned error code

GetMemberForces ([in] long lMemberID, [in] EDA_MEMBER_LOC eLocation, [in] long lLoadCaseID, [in] EAnalysisResultType eAnalysisReultType, [in] BOOL bApplyLLReduction, [in] SForce* psMemForces, [out,retval] long* plRetVal);

Purpose Get Member Forces at the ends of the specified member.Implemented for gravity analysis cases types only. This function can be used for retrivinganalysis results for RAM Frame, RAM Steel and RAM Concrete. However please not that notall analysis types have all the possible analysis cases

Page 300: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 300/450

all analysis types have all the possible analysis cases.Parameters lMemberID Member Unique ID

eLocation Location for member forces (not used for walls, always bottomassumed)

lAnalysisCaseID Analysis Case Unique IDeAnalysisReultType  Analysis module’s result – RAM Frame, RAM Steel, RAM Concrete

or Default which lets the program select the appropriate analysisresult 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 locationplRetVal Error code. See table below.

Comment 1 Analysis cases are defined as the results of analyzing load casesIf eAnalysisResultType is Default then the following decision matrix is used to determine fromwhere the forces originate.

MemberType

Frame type Material Analysis Results 

Wall Gravity any RAM Concrete (if avail) else RAMGravity

Wall Lateral any RAM Frame

Beam/HBrace Gravity steel/other RAM Gravity

Beam/HBrace Gravity concrete RAM ConcreteBeam/HBrace Lateral any RAM Frame

Column Gravity steel/other RAM Gravity

Column Gravity concrete RAM Concrete

Column Lateral any RAM Frame

Brace Lateral any RAM Frame

Comment 2 Prior to v9.0, Live Load Reduction was applied to all results from RAM Frame. Thus, for

lateral members, reduced member forces were returned by this method regardless of thevalue of bApplyLLReduction. This was corrected in v9.0 for the followingEGravAnalysisCaseIDs:

LiveReduciblePosID LiveReducibleNegID LiveReducibleSumIDLiveUnReduciblePosID LiveUnReducibleNegID LiveUnReducibleSumIDLiveStoragePosID LiveStorageNegID LiveStorageSumIDLiveRoofPosID LiveRoofNegID LiveRoofSumID

Note1: L ivePosID, LiveNegID, LiveSumID can still only be accessed as reduced.Note2: Walls do not have any reduction values associated with them

Error Codes Below is a list of the most common error codes to be returned in plRetVal. Note that prior to

v9.0 the retval contained the AnalysisType if DefaultResultType was specified as theEAnalysisResultType.

306 RAM Frame (lateral load cases) not available310 RAM G it lt t il bl

Page 301: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 301/450

310 RAM Gravity results are not available311 File not found (one of the results files)312 Error reading gravity beam results file332 Concrete analysis results not available6121 Brace forces not supported6126 Beam forces not supported6127 Generic member forces not supported error6128 Load case not supported

6129 Concrete analysis column forces file is missing6130 Concrete analysis wall forces file is missing6133 Analysis case not supported9109 Unexpected memory error12105 Error loading concrete analysis column results file12106 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 neveravailable gravity

members.

0 = valid forces

Err = forces not avail

Gravity Wall 0 or Err (see above) Err 0 or Err (see above)

Lateral Col 0 or Err (see above) 0 = valid forces

Err = forces not avail

0 or Err (see above)

Lateral Wall 0 or Err (see above) 0 or Err (see above) 0 or Err (see above)

Lateral Brace 0 with forces set to 0.0because brace forcescannot be retrieved fromRAM Gravity.

0 or Err (see above) 0 with forces set to 0.0because brace forcescannot be retrieved fromRAM Concrete analysis.

GetMemberForcesLeftAt ([in] long lMemberID, [in] double dRelativeLocation, [in] long lAnalysisCaseID, [in] EAnalysisResultType eAnalysisResultType, [in] BOOL bApplyLLReduction, [in] SForce psMemForces );

Purpose Get member forces at a location for an analysis case.Parameters lMemberID Member Unique ID

dRelativeLocation Location relative to length (0 = I end, 1 = J end)lAnalysisCaseID Analysis case uinique IDeAnalysisResultType Analysis result type

bApplyLLReduction True if live load reduction is to be appliedpsMemForces Forces structure

GetNumAnalysisCases ([in] EAnalysisResultType eAnalysisReultType, [in, out] long* plNumLoadCases, [out,retval] long* plRetVal);

Page 302: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 302/450

y ([ ] y yp y yp [ ] g p [ ] g p )Purpose Get the number of load cases in this module.Parameters eAnalysisReultType  Analysis module’s result – RAM Frame, RAM Steel, RAM

Concrete or Default which lets the program select theappropriate analysis result type

plNumAnalysisCases Total number of analysis cases for a given analysis typeplRetVal Error code. If value is non zero then check GetLastError

Comment Analysis cases are defined as the results of analyzing load cases

GetValuesInNewCoordinate ([in] long lOriginalMemberID, EDA_MEMBER_LOC eLocOrigMember, [in] long lFinalMemberID,EDA_MEMBER_LOC eLocFinalMember, [in] SForce sMemberForceLocal, [in, out] SForce* psMemberForceGlobal, [out,retval] long*plRetVal);

Purpose Obtain element member forces converted to global or to a local system of anotherelement.

Parameters lOriginalMemberID Unique member ID of the original element. Note that themember forces stored in sMemberForceLocal belong to thiselement.

eLocOrigMember   Indicates sMemberForceLocal is defined according to thesign definition of this end of the original member.

lFinalMemberID Unique member ID of the final element. Note that the forcesof the original element are converted into the local system ofthis element. If this variable is passed in as zero, thencalculated forces are converted only to global system.

eLocFinalMember   Indicates converted values are defined according to the signdefinition of this end of the final member if lFinalMemberID isnot zero. Otherwise, the variable is not valid, and calculatedresults are returned in global system.

sMemberForceLocal Member forces of the original elementpsMemberForceGlobal 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

Reset ( );Purpose Internal use only.

IGravi tyLoads1

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, loadpolygons or load properties that were defined and modeled in RAM Modeler.

GetBeamLineLoad ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*

Page 303: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 303/450

([ ] g , [ ] g , [ ] p , [ ] p , [ ] p , [ ]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 - 1pdDistL Distance from left end of beam to left end of loadpdDistR Distance from left end of beam to right end of loadpdDLL Perpendicular Dead Load at left end of loadpdDLR 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 loadpdAxDLR 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 loadpdAxLLL 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'

= storagepdRfactor Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

Sign Convention: A downward acting load is positive.

 

GetBeamLineLoadAndSource ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out]double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out]double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* dAxCDLR, [out] double*pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out]  EGRAVLOADTYPE* peLoadType, [out]double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, long* plRetval);

Purpose Get beam line load info.Parameters lBeamID Beam unique ID

nLineLoadNo Line load index number from 0 to plNumLineLoads – 1pdDistL Distance from left end of beam to left end of loadpdDistR Distance from left end of beam to right end of loadpdDLL 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

Page 304: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 304/450

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 loadpdAxDLR 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 loadpdAxLLL 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’

= storagepdRfactor Live Load Reduction Factor (%) e.g. 0.5 for 50% reduciblepeLineLoadSource The source of the line load (where it originated from) see enumplRetval Return value, 0 = no error else call GetLastError

Sign Convention: A downward acting load is positive.

GetBeamLineLoadAndSource2 ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out]double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* dAxCDLR, [out] double*pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out]  EGRAVLOADTYPE* peLoadType, [out]double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, [out] EMemberSide *peSide, long* plRetval);

Purpose Get beam line load info.Parameters lBeamID Beam unique ID

nLineLoadNo Line load index number from 0 to plNumLineLoads – 1pdDistL Distance from left end of beam to left end of loadpdDistR 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 loadpdAxDLR 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 loadpdAxLLL 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 

dRf t Li L d R d ti F t (%) 0 5 f 50% d ibl

Page 305: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 305/450

pdRfactor Live Load Reduction Factor (%) e.g. 0.5 for 50% reduciblepeLineLoadSource The source of the line load (where it originated from) see enumpeSide The side of the beam that the load is applied toplRetval Return value, 0 = no error else call GetLastError

Sign Convention: A downward acting load is positive.

GetBeamLineLoadAndSource3 ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,

[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdPLL, [out]double* pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL,[out] double* dAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] double*pdAxPLL, [out] double* pdAxPLR, [out] EGRAVLOADTYPE* peLoadType, [out] double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, long* plRetval);

Purpose Get beam line load info.Parameters lBeamID Beam unique ID

nLineLoadNo Line load index number from 0 to plNumLineLoads – 1pdDistL Distance from left end of beam to left end of loadpdDistR Distance from left end of beam to right end of loadpdDLL Perpendicular Dead Load at left end of loadpdDLR Perpendicular Dead Load at right end of load.pdCDLL Perpendicular Construction Dead Load at left end of load.pdCDLR Perpendicular Construction Dead Load at right end of load.pdLLL Perpendicular Unreduced Live Load at left end of load.pdLLR Perpendicular Unreduced Live Load at right end of load.pdPLL Perpendicular Partion Load at left end of load.pdPLR Perpendicular Partition Load at right end of load.pdCLLL Perpendicular Construction Live Load at left end of load.

  pdCLLR Perpendicular Construction Live Load at right end of load.

pdAxDLL Axial Dead Load, in kips, at left end of loadpdAxDLR 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 loadpdAxLLL Axial Construction Live Load at left end of load.pdAxLLR Axial Construction Live Load at right end of load.pdAxPLL Axial Partition Load at left end of load.pdAxPLR Axial Partition 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% reduciblepeLineLoadSource The source of the line load (where it originated from) see enumplRetval Return value, 0 = no error else call GetLastError

Sign Convention: A downward acting load is positive

Page 306: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 306/450

Sign Convention: A downward acting load is positive.

GetBeamLinkLineLoadAndSource ([in] long lBeamID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL,[out] double* pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* dpPLL, [out]double* pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL,[out] double* dAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out] double*pdAxPLL, [out] pdAxPLR, [out] EGRAVLOADTYPE* peLoadType, [out] double* pdRfactor, [out] ELINELOADSOURCE* peLineLoadSource, [in] BOOL bISupportLink);

Purpose Get beam line load info.Parameters lBeamID Beam unique ID

nLineLoadNo Line load index number from 0 to plNumLineLoads – 1pdDistL Distance from left end of beam to left end of loadpdDistR Distance from left end of beam to right end of loadpdDLL Perpendicular Dead Load at left end of loadpdDLR Perpendicular Dead Load at right end of load.pdCDLL Perpendicular Construction Dead Load at left end of load.pdCDLR Perpendicular Construction Dead Load at right end of load.pdLLL Perpendicular Unreduced Live Load at left end of load.pdLLR Perpendicular Unreduced Live Load at right end of load.

pdPLL Perpendicular Partition Load at left end of load.pdPLR Perpendicular Partition Load at right end of load.pdCLLL Perpendicular Construction Live Load at left end of load.pdCLLR Perpendicular Construction Live Load at right end of load.pdAxDLL Axial Dead Load, in kips, at left end of loadpdAxDLR 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 Construction Live Load at left end of load.

pdAxCLLR Axial Construction Live Load at right end of loadpdAxLLL Axial Unreduced Live Load at left end of load.pdAxLLR Axial Unreduced Live Load at right end of load.pdAxPLL Axial Partition Load at left end of load.pdAxPLR Axial Partition 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% reduciblepeLineLoadSource The source of the line load (where it originated from) see enumbISupoportLink True if looking for I end (start) rigid link, False if looking for J end (end) rigid link

Sign Convention: A downward acting load is positive.

GetBeamLinkPointLoad ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*

Page 307: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 307/450

dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [in] BOOL bISupportLink);

Purpose 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 - 1pdDist Location of point load from start of beampdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live Load (v14.05 & v14.05.01 included partition load)pdLLNegNonRed Perpendicular Negative Non-Reducible Live Load (v14.05 & v14.05.01 included partition load)pdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live LoadpdAxDL Axial Dead LoadpdAxCDL Axial Construction Dead LoadpdAxCLL Axial Construction Live LoadpdAxNegRedLL Axial Negative Reducible Live LoadpdAxPosRedLL Axial Positive Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live Load (v14.05 & v14.05.01 included partition load)pdAxPosNonRedLL Axial Positive Non-Reducible Live Load (v14.05 & v14.05.01 included partition load)pdAxNegStorageLL Axial Negative Storage Live Load

  pdAxPosStorageLL Axial Positive Storage Live Load

pdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadSource Point load sourcebISupoportLink True if looking for I end (start) rigid link, False if looking for J end (end) rigid link

GetBeamLinkPointLoad2 ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*

pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*pdPosPL, [out] double* pdNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL,[out] double* pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out]

Page 308: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 308/450

[ ] p , [ ] g , [ ] p , [ ] p g g , [ ]double* pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double*pdAxPosPL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF,[out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [in] BOOL bISupportLink);

Purpose Get perpendicular and axial components of point loads applied to a beam. 2.Parameters lBeamID Beam unique ID

lPtLoadNo Point load index number from 0 to plNumPointLoads - 1

pdDist Location of point load from start of beampdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live LoadpdLLNegNonRed Perpendicular Negative Non-Reducible Live LoadpdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live Load

pdPosPL Perpendicular Positive Partition LoadpdNegPL Perpendicular Negative Partition LoadpdAxDL Axial Dead LoadpdAxCDL Axial Construction Dead LoadpdAxCLL Axial Construction Live LoadpdAxNegRedLL Axial Negative Reducible Live LoadpdAxPosRedLL Axial Positive Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live LoadpdAxPosNonRedLL Axial Positive Non-Reducible Live Load

  pdAxNegStorageLL Axial Negative Storage Live Load

pdAxPosStorageLL Axial Positive Storage Live LoadpdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live LoadpdAxNegPL Axial Negative Partition LoadpdAxPosPL Axial Positive Partition LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadSource Point load source

bISupoportLink True if looking for I end (start) rigid link, False if looking for J end(end) rigid link

GetBeamLLRedFactor ([in] long lBeamID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*

Page 309: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 309/450

dNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);Purpose Get beam live load reduction factors.Parameters lBeamID Beam unique ID

pdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factordNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factor

pdNegRoofLLRF Negative Roof live load reduction factorComment The reduction values are as a percent. To reduce a member force by the reduction value

you will need to multiply the force by the following equation (1.0 - LLRF / 100)

GetBeamPointLoad ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* 

peLoadSource);Purpose 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 - 1pdDist Location of point load from start of beampdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live Load

  pdLLNegRed Perpendicular Negative Reducible Live Load

pdLLPosNonRed Perpendicular Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLNegNonRed Perpendicular Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live LoadpdAxDL Axial Dead LoadpdAxCDL Axial Construction Dead LoadpdAxCLL Axial Construction Live LoadpdAxNegRedLL Axial Negative Reducible Live LoadpdAxPosRedLL Axial Positive Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)

pdAxPosNonRedLL Axial Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdAxNegStorageLL Axial Negative Storage Live LoadpdAxPosStorageLL Axial Positive Storage Live LoadpdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live Load

Page 310: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 310/450

pdAxPosRoofLL Axial Positive Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadSource Point load source

GetBeamPointLoadAndSource ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out]double* pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed,[out] double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double* pdAxPosStorageLL, [out] double*pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF,[out] double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [out] EMemberSide *peSide, long* plRetval);

Purpose 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 - 1pdDist Location of point load from start of beampdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLNegNonRed Perpendicular Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)

  pdLLPosStorage Perpendicular Positive Storage Live Load

pdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live LoadpdAxDL Axial Dead LoadpdAxCDL Axial Construction Dead LoadpdAxCLL Axial Construction Live LoadpdAxNegRedLL Axial Negative Reducible Live LoadpdAxPosRedLL Axial Positive Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdAxPosNonRedLL Axial Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdAxNegStorageLL Axial Negative Storage Live LoadpdAxPosStorageLL Axial Positive Storage Live Load

pdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factor

Page 311: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 311/450

pdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadSource Point load sourcepeSide The side of the beam that the load is applied toplRetval Return value, 0 = no error else call GetLastError

GetBeamPointLoadAndSource2 ([in] long lBeamID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out]double* pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed,[out] double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double*pdPosPL, [out] double* pNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL,[out] double* pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out]double* pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double*pdAxPosPL, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF,[out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, EGRAVPTLOADSOURCE* peLoadSource, [out] EMemberSide *peSide,long* plRetval);

Purpose Get perpendicular and axial components of point loads applied to a beam. 2.

Parameters lBeamID Beam unique IDlPtLoadNo Point load index number from 0 to plNumPointLoads - 1pdDist Location of point load from start of beampdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live Load

  pdLLNegNonRed Perpendicular Negative Non-Reducible Live Load

pdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live LoadpdPosPL Perpendicular Positive Partition LoadpdNegPL Perpendicular Negative Partition LoadpdAxDL Axial Dead LoadpdAxCDL Axial Construction Dead LoadpdAxCLL Axial Construction Live LoadpdAxNegRedLL Axial Negative Reducible Live LoadpdAxPosRedLL Axial Positive Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live Load

pdAxPosNonRedLL Axial Positive Non-Reducible Live LoadpdAxNegStorageLL Axial Negative Storage Live LoadpdAxPosStorageLL Axial Positive Storage Live LoadpdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live Load

Page 312: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 312/450

pdAxPosRoofLL Axial Positive Roof Live LoadpdAxNegPL Axial Negative Partition LoadpdAxPosPL Axial Positive Partition LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factor

pdNegRoofLLRF Negative Roof live load reduction factorpeLoadSource Point load sourcepeSide The side of the beam that the load is applied toplRetval Return value, 0 = no error else call GetLastError

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 - 1peLoadSource Point load source

GetColumnLLRedFactor ([in] long lColumnID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out]

double* pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);Purpose Get column live load reduction factors.Parameters lColumnID Column unique ID

pdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factor

  pdNegRoofLLRF Negative Roof live load reduction factor

GetColumnLLRedFactorExtraInfo ( [in] long lColumnID, [in, out] double* pdAveRoofSlope, [in, out] long* plNumStoriesAddingToLLPos, [in, out]long* plNumStoriesAddingToLLNeg, [out, retval] long* plRetVal );

Purpose Get additional factor information used for calculating Live Load reduction.Parameters lColumnID unique member ID

pdAveRoofSlope Average slope of roof contributing to column roof loadplNumStoriesAddingToLLPos Number of story contributing to positive live loadplNumStoriesAddingToLLNeg Number of story contributing to negative live loadplRetVal Error code. If value is non zero then check

GetLastError

GetColumnPointLoad ([in] long lColumnID, [in] long lPtLoadNo, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL, [out] double*pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double* pdLLPosStorage,[out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosLLRF, [out] double*pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double* pdPosStorageLLRF, [out] double*pdNegStorageLLRF);

Page 313: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 313/450

pdNegStorageLLRF);Purpose Get information for a user defined point load applied directly to a column.Parameters lColumnID Column unique ID

lPtLoadNo Not usedpdDL Dead LoadpdCDL Construction Dead LoadpdCLL Construction Live LoadpdLLPosRed Positive Reducible Live Load

pdLLNegRed Negative Reducible Live LoadpdLLPosNonRed Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLNegNonRed Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLPosStorage Positive Storage Live LoadpdLLNegStorage Negative Storage Live LoadpdLLPosRoof Positive Roof Live LoadpdLLNegRoof Negative Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factor

pdNegStorageLLRF Negative Storage live load reduction factor

GetColumnPointLoad2 ([in] long lColumnID, [in] long lPtLoadNo, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL, [out] double*pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double* pdLLPosStorage,[out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosPL, [out] double* pNegPL,[out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double*pdPosStorageLLRF, [out] double* pdNegStorageLLRF);

Purpose Get information for a user defined point load applied directly to a column. 2.

Parameters lColumnID Column unique IDlPtLoadNo Not UsedpdDL Dead LoadpdCDL Construction Dead LoadpdCLL Construction Live LoadpdLLPosRed Positive Reducible Live LoadpdLLNegRed Negative Reducible Live LoadpdLLPosNonRed Positive Non-Reducible Live LoadpdLLNegNonRed Negative Non-Reducible Live LoadpdLLPosStorage Positive Storage Live LoadpdLLNegStorage Negative Storage Live LoadpdLLPosRoof Positive Roof Live Load

pdLLNegRoof Negative Partition LoadpdPosPL Positive Partition LoadpdNegPL Negative Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factor

Page 314: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 314/450

p g gpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factor

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetGravColSideLoads ( [in] long lColumnID, [in] long lAnalysisID, [in] BOOL bApplyLLReduction, [in, out] double* pdSide1Load, [in, out] double*pdSide2Load, [in, out] double* pdSide3Load, [in, out] double* pdSide4Load, [out, retval] long* plRetVal );

Purpose Get the column side loads from the gravity analysis.Parameters lColumnID Column UID

lAnalysisID Analysis case IDbApplyLLReduction true = consider live load reductionpdSide1Load Top or Top flangepdSide2Load (Clockwise) front side / webpdSide3Load Bottom or Bottom flangepdSide4Load (Clockwise) back side / web

GetGravColTribAreas( [in] long lColumnID, [in, out] double* pdPosRedTribArea, [in, out] double* pdNegRedTribArea, [in, out] double*pdPosStorageTribArea, [in, out] double* pdNegStorageTribArea, [in, out] double* pdPosRoofTribArea, [in, out] double*pdNegRoofTribArea, [in, out] double* pdPosRedTribAreaCant, [in, out] double* pdNegRedTribAreaCant, [in, out] double*pdPosStorageTribAreaCant, [in, out] double* pdNegStorageTribAreaCant, [out, retval] long* plRetVal );

Purpose Get column tributary area based on gravity analysis assuming beams are simplysupported.

Parameters lColumnID unique member ID

  peTensionCompressionType  Defines type as tension only/ compression only or both

pdPosRedTribArea Positive reducible live load tributary areapdNegRedTribArea Negative reducible live load tributary areapdPosStorageTribArea Positive storage live load tributary areapdNegStorageTribArea Negative storage live load tributary areapdPosRoofTribArea Positive Roof live load tributary areapdNegRoofTribArea Negative Roof live load tributary areapdPosRedTribAreaCant Positive reducible live load tributary area from cantilever

pdNegRedTribAreaCantNegative reducible live load tributary area fromcantilever

pdPosStorageTribAreaCant Positive storage live load tributary area from cantileverpdNegStorageTribAreaCant Negative storage live load tributary area from cantileverplRetVal Error code. If value is non zero then check GetLastError

GetGravityBeamReact ([in] long lBeamID, [out] double* pdSWLeft, [out] double* pdDLLeft, [out] double* pdCDLLeft, [out] double* pdCLLLeft,[out] double* pdSWRight, [out] double* pdDLRight, [out] double* pdCDLRight, [out] double* pdCLLRight, [out] double*pdReducedPosLeft, [out] double* pdReducedNegLeft, [out] double* pdReducedPosRight, [out] double* pdReducedNegRight);

Page 315: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 315/450

p , [ ] p g , [ ] p g , [ ] p g g );

PurposeGet gravity beam end support reactions assuming all beams are simply supported. Thisassumption may not be valid for lateral members and non-steel members.

Parameters lBeamID Beam unique IDpdSWLeft Self-weight at start of beampdDLLeft Dead Load at start of beampdCDLLeft Construction Dead Load at start of beampdCLLLeft Construction Live Load at start of beam

pdSWRight Self-weight at end of beampdDLRight Dead Load at end of beampdCDLRight Construction Dead Load at end of beampdCLLRight Construction Live Load at end of beampdReducedPosLeft Reduced positive live load reaction at left supportpdReducedNegLeft Reduced negative live load reaction at left supportpdReducedPosRight Reduced positive live load reaction at right supportpdReducedNegRight Reduced negative live load reaction at right support

Comment Note that this function returns the support reactions due to the beam and not the actualbeam end reactions. For simply supported beams with no cantilevers the support reactionand beam end reaction will be the same. To calculate the permanent dead load on themember only use the DL loads. The SW load is already included in DL and CDL is only

imposed during construction.

GetGravityLoadFramingFlag ([out] long * plGravFraming);Purpose Get the status of the gravity framing tables.Parameters plGravFraming  0 = not framed, 1 = framed

GetInterfacePointer();

Purpose Internal use only.

 

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetMaxFactoredGravityBeamReact ([in] long lBeamID, [out] double* pdMaxReactLeft, [out] double* pdMaxReactRight, [out] double* pdSignLeft,[out] double* pdSignRight, [out, retval] long* plRetval);

The magnitude of the reaction that should be used (as is displayed in RAM Steel) is calculated by rounding the provided reaction up to the next largest wholenumber using this calculation: dLeftReaction = const_cast<int>( MaxReactLeft + SignLeft * 0.95f )) 

Purpose Get the factored beam (mid-span) reactions for the current ramsteel beam design code.Parameters lBeamID Beam unique ID

M f t d ti t ‘l ft’ d f id f b L ft i

Page 316: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 316/450

pdMaxReactLeftMax factored reaction at ‘left’ end of midspan of beam. Left islower left end of beam when observed in plan on screen.

pdMaxReactRightMax factored reaction at ‘right’ end of midspan of beam. Right isupper right end of beam when observed in plan on screen.

pdSignLeftSign of the reaction on the left (negative means largest reactionwas upwards acting as in backspan support of a cantilever)

pdSignRightSign of the reaction on the right (negative means largest reactionwas upwards acting as in backspan support of a cantilever)

plRetval Return value, 0 = no error else call GetLastError

GetMemberSelfWeight ( [in] long lMemberID, [out] double* pdSelfWeight, [out, retval] long* plRetVal );Purpose Get wall live load reduction factors.Parameters lMemberID Member unique ID

pdSelfWeight Self weightplRetVal Return value, 0 = no error else call GetLastError

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 loadsplNumPointLoads Total number of point loads

GetNumBeamSupportLinkLoads([in] long lBeamID, [out] long* plNumLineLoads, [out] long* plNumPointLoads, [in] BOOL bISupportLink);

Purpose Returns the number of line loads and point loads the beam rigid links.Parameters lBeamID Beam unique ID

plNumLineLoads Number of line loads

  plNumPointLoads Number of point loads

bISupportLink True if looking for I end (start) rigid link, False if looking for J end(end) rigid link

GetNumWallLoads ([in] long lWallID, [out] long* plNumLineLoads, [out] long* plNumPointLoads);Purpose Get number of line and point loads on a wall.Parameters lWallID Wall unique ID

plNumLineLoads Total number of line loads on wallplNumPointLoads Total number of point loads on wall

GetStoryGravityReactOnCol ([in] long lStoryNoOrID, [in] long lColNum, [out] long* plIsLoadOnColumn, [out] double* pdDL, [out] double*pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double*

pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosLLRF, [out]double* pdNegLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] double* pdPosStorageLLRF, [out]double* pdNegStorageLLRF);

Purpose Get the reaction (axial force) from ONLY gravity members on a column at a particularstory. Includes the load from gravity columns above.

Page 317: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 317/450

Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique ID(unique ID is preferred)

lColNum Column indexplIsLoadOnColumn True (1) if there is a load on this column from gravity memberspdDL The dead loadpdLLPosRed The downward reducible live loadpdLLNegRed The upward reducible live load

pdLLPosNonRed The downward non-reducible live loadpdLLNegNonRed The upward non-reducible live loadpdLLPosStorage The downward storage live load

GetWallLineLoad ([in] long lWallID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdCLLL, [out] double*pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out] double* pdAxCDLR, [out] double* pdAxCLLL,[out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out]  EGRAVLOADTYPE* peLoadType, [out] double *pdRfactor);

Purpose 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 loadpdDistR Distance from left end of wall to right end of loadpdDLL Dead Load at left end of loadpdDLR 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 loadpdAxDLR 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' = storagepdRfactor Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

GetWallLineLoad2 ([in] long lWallID, [in] long nLineLoadNo, [out] double* pdDistL, [out] double* pdDistR, [out] double* pdDLL, [out] double*pdDLR, [out] double* pdCDLL, [out] double* pdCDLR, [out] double* pdLLL, [out] double* pdLLR, [out] double* pdPLL, [out] double*pdPLR, [out] double* pdCLLL, [out] double* pdCLLR, [out] double* pdAxDLL, [out] double* pdAxDLR, [out] double* pdAxCDLL, [out]double* pdAxCDLR, [out] double* pdAxCLLL, [out] double* pdAxCLLR, [out] double* pdAxLLL, [out] double* pdAxLLR, [out]EGRAVLOADTYPE* peLoadType [out] double * pdRfactor);

Page 318: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 318/450

EGRAVLOADTYPE* peLoadType, [out] double * pdRfactor);

Purpose Information on line loads applied on a wall.Parameters lWallID Wall unique ID

nLineLoadNo Line load index number from 0 to plNumLineLoads - 1pdDistL Distance from left end of wall to left end of loadpdDistR Distance from left end of wall to right end of loadpdDLL Dead Load at left end of loadpdDLR Dead Load at right end of load.pdCDLL Perpendicular Construction Dead Load at left end of load.pdCDLR Perpendicular Construction Dead Load at right end of load.pdLLL Perpendicular Unreduced Live Load at left end of load. (pos if dn)pdLLR Perpendicular Unreduced Live Load at right end of load. (pos if dn)pdPLL Perpendicular Partition Load at left end of load. (pos if dn)pdPLR Perpendicular Partition Load at right end of load. (pos if dn)pdCLLL Perpendicular Construction Live Load at left end of load. (pos if dn)pdCLLR Perpendicular Construction Live Load at right end of load. (pos if dn)pdAxDLL Axial Dead Load at left end of loadpdAxDLR Axial Dead Load at right end of load.pdAxCDLL Axial Construction Dead Load at left end of load.pdAxCDLR Axial Construction Dead Load at right end of load.pdAxCLLL Axial Construction Live Load at left end of load. (pos if dn)pdAxCLLR Axial Construction Live Load at right end of load. (pos if dn)pdAxLLL Axial Unreduced Live Load at left end of load. (pos if dn)pdAxLLR Axial Unreduced Live Load at right end of load. (pos if dn)pdAxPLL Axial Partiton Load at left end of load. (pos if dn)pdAxPLR Axial Partition Load at right end of load. (pos if dn)peLoadType Type of live load: 'RF' = roof, 'FL' = floor, 'UR' = unreducible, 'ST' = storage

  pdRfactor Live Load Reduction Factor (%) e.g. 0.5 for 50% reducible

GetWallLLRedFactor ([in] long lWallID, [out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double*pdNegStorageLLRF, [out] double* pdPosRoofLLRF, [out] double* pdNegRoofLLRF);

Purpose Get wall live load reduction factors.Parameters lWallID Wall unique ID

pdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factor

GetWallPointLoad ([in] long lWallID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double*pdCLL, [out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out]double* pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdAxDL,[out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double* pdAxPosRedLL, [out] double*

Page 319: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 319/450

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

lPtLoadNo Point load index number from 0 to plNumPointLoads - 1

pdDist Location of point load from start of wallpdDL Perpendicular Dead LoadpdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLNegNonRed Perpendicular Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live LoadpdLLNegRoof Perpendicular Negative Roof Live Load

pdAxDL Axial Construction Dead LoadpdAxCDL Axial Construction Live LoadpdAxCLL Axial Positive Reducible Live LoadpdAxPosRedLL Axial Negative Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdAxPosNonRedLL Axial Positive Non-Reducible Live Load (v14.03 to v14.05.01 included partition load)pdAxNegStorageLL Axial Negative Storage Live LoadpdAxPosStorageLL Axial Positive Storage Live Load

  pdAxNegRoofLL Axial Negative Roof Live Load

pdAxPosRoofLL Axial Positive Roof Live LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factorpdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadType Point load source

pdLLNegStorage The upward storage live loadpdLLPosRoof The downward roof live loadpdLLNegRoof The upward roof live load

pdPosLLRF The downward live load reduction factorpdNegLLRF The upward live load reduction factorpdPosRoofLLRF The downward roof live load reduction factorpdNegRoofLLRF The upward roof live load reduction factorpdPosStorageLLRF The downward storage live load reduction factor

Page 320: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 320/450

pdNegStorageLLRF The upward storage live load reduction factor

CommentsThe reduction values are as a percent. To reduce a member force by the reduction valueyou will need to multiply the force by the following equation (1.0 - LLRF / 100)

GetWallPointLoad2 ([in] long lWallID, [in] long lPtLoadNo, [out] double* pdDist, [out] double* pdDL, [out] double* pdCDL, [out] double* pdCLL,[out] double* pdLLPosRed, [out] double* pdLLNegRed, [out] double* pdLLPosNonRed, [out] double* pdLLNegNonRed, [out] double*pdLLPosStorage, [out] double* pdLLNegStorage, [out] double* pdLLPosRoof, [out] double* pdLLNegRoof, [out] double* pdPosPL, [out]

double* pdNegPL, [out] double* pdAxDL, [out] double* pdAxCDL, [out] double* pdAxCLL, [out] double* pdAxNegRedLL, [out] double*pdAxPosRedLL, [out] double* dAxNegNonRedLL, [out] double* pdAxPosNonRedLL, [out] double* pdAxNegStorageLL, [out] double*pdAxPosStorageLL, [out] double* pdAxNegRoofLL, [out] double* pdAxPosRoofLL, [out] double* pdAxNegPL, [out] double* pdAxPosPL,[out] double* pdPosLLRF, [out] double* pdNegLLRF, [out] double* pdPosStorageLLRF, [out] double* pdNegStorageLLRF, [out] double*pdPosRoofLLRF, [out] double* pdNegRoofLLRF, [out] EGRAVPTLOADSOURCE* peLoadType);

Purpose Information on the point loads applied on a wall. 2.Parameters lWallID Wall unique ID

lPtLoadNo Point load index number from 0 to plNumPointLoads - 1pdDist Location of point load from start of wallpdDL Perpendicular Dead Load

pdCDL Perpendicular Construction Dead LoadpdCLL Perpendicular Construction Live LoadpdLLPosRed Perpendicular Positive Reducible Live LoadpdLLNegRed Perpendicular Negative Reducible Live LoadpdLLPosNonRed Perpendicular Positive Non-Reducible Live LoadpdLLNegNonRed Perpendicular Negative Non-Reducible Live LoadpdLLPosStorage Perpendicular Positive Storage Live LoadpdLLNegStorage Perpendicular Negative Storage Live LoadpdLLPosRoof Perpendicular Positive Roof Live Load

  pdLLNegRoof Perpendicular Negative Roof Live Load

pdPosPL Perpendicular Positive Partition LoadpdNegPL Perpendicular Negative Partition LoadpdAxDL Axial Construction Dead LoadpdAxCDL Axial Construction Live LoadpdAxCLL Axial Positive Reducible Live LoadpdAxPosRedLL Axial Negative Reducible Live LoaddAxNegNonRedLL Axial Negative Non-Reducible Live LoadpdAxPosNonRedLL Axial Positive Non-Reducible Live LoadpdAxNegStorageLL Axial Negative Storage Live LoadpdAxPosStorageLL Axial Positive Storage Live LoadpdAxNegRoofLL Axial Negative Roof Live LoadpdAxPosRoofLL Axial Positive Roof Live Load

pdAxNegPL Axial Negative Partition LoadpdAxPosPL Axial Positive Partition LoadpdPosLLRF Positive live load reduction factorpdNegLLRF Negative live load reduction factorpdPosStorageLLRF Positive Storage live load reduction factor

dN St LLRF N ti St li l d d ti f t

Page 321: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 321/450

pdNegStorageLLRF Negative Storage live load reduction factorpdPosRoofLLRF Positive Roof live load reduction factorpdNegRoofLLRF Negative Roof live load reduction factorpeLoadType Point load source

Reset ();Purpose Internal use only.

IGravitySteelDesign1

Philosophy: This interface returns the results of the design process in RAM Steel Beam module. These results are only available after a designall has been performed in RAM Steel Beam.

GetBeamCamber([in] long lBeamID, [out] double* pdCamber);Purpose Get steel beam camber.Parameters lBeamID Beam Unique ID

pdCamber Camber value

GetBeamCompDisp ([in] long lBeamID, [out] double* pdInitialRight, [out] double* pdInitialCenter, [out] double* pdInitialLeft, [out] double*pdPostLiveRight, [out] double* pdPostLiveCenter, [out] double* pdPostLiveLeft, [out] double* pdPostTotalRight, [out] double*pdPostTotalCenter, [out] double* pdPostTotalLeft, [out] double* pdNetTotalRight, [out] double* pdNetTotalCenter, [out] double*pdNetTotalLeft);

Purpose Get the deflection values for the location where the maximum total deflection occurs on a

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 IDpdInitialRight Initial deflection at right cantileverpdInitialCenter Initial deflection at center spanpdInitialLeft Initial deflection at left cantileverpdPostLiveRight Positive live load deflection at right cantileverpdPostLiveCenter Positive live load deflection at center spanpdPostLiveLeft Positive live load deflection at left cantileverpdPostTotalRight Positive total deflection at right cantileverpdPostTotalCenter Positive total deflection at center spanpdPostTotalLeft Positive total deflection at left cantilever

pdNetTotalRight Negative total deflection at right cantileverpdNetTotalCenter Negative total deflection at center spanpdNetTotalLeft Negative total deflection at left cantilever

GetBeamCompositeProperties ([in] long lBeamID, [out] long* plNumStudSegments, [in] long lSizeOfArrayOfStuds, [out] long* palNumStuds, [out]

Page 322: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 322/450

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 = ShoredpdDeckAngleLeft Deck angle left of beampdDeckAngleRight Deck angle right of beampbEdgeOnLeft 1 if there is an edge of slab on the left side of beampbEdgeOnRight 1 if there is an edge of slab on the right side of beampdSlabWidthLeft Width of slab on left side of beampdSlabWidthRight Width of slab on right side of beampdMinSlabThicknessLeft Min. slab thickness on left side of beampdMinSlabThicknessRight Min. slab thickness on right side of beam

GetBeamDesignDecks( [in] long lBeamID, [in, out] EDeckType* peDeckTypeLeft, [in, out] long* plDeckPropIDLeft, [in, out] EDeckType* peDeckTypeRight, [in, out] long* plDeckPropIDRight );

Purpose 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 beamplDeckPropIDLeft Unique ID of deck on left side of beampeDeckTypeRight Type of deck on right side of beamplDeckPropIDRight Unique ID of deck on right side of beam

GetBeamDesignMoments ([in] long lBeamID, [out] double* pdSEff_or_Mnp, [out] double* pdLeftPosMom, [out] double* pdLeftNegMom, [out]

double* pdMidSpanPosMom, [out] double* pdMidSpanNegMom, [out] double* pdRightPosMom, [out] double* pdRightNegMom);Purpose Retrieves effective section modulus Seff for ASD or Mn for LRFD and the design

moments for a given beam.Parameters lBeamID Beam Unique ID

pdSEff_or_Mnp Seff, in inches cubed or cm cubed, or Mn for compositeconstruction, or Sx or Mp for noncomposite construction.

pdLeftPosMom Maximum positive moment in left cantileverpdLeftNegMom Maximum negative moment in left cantileverpdMidSpanPosMom Maximum positive moment in mid-spanpdMidSpanNegMom Maximum negative moment in mid-spanpdRightPosMom Maximum positive moment in right cantileverpdRightNegMom Maximum negative moment in right 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

Page 323: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 323/450

Purpose Get the deflection values for the location where the maximum total deflection occurs on anon-composite gravity beam. The deflection values recovered are identical to thoseprovided in the Beam Deflection report in RAM Steel Beam. Note that the location of thedeflection is not recovered or reported.

Parameters lBeamID Beam Unique IDpdDeadRight Initial deflection at right cantileverpdDeadCenter Initial deflection at center spanpdDeadLeft Initial deflection at right cantilever

pdLiveRight Positive Live load deflection at right cantileverpdLiveCenter Positive Live load deflection at center spanpdLiveLeft Positive Live load deflection at right cantileverpdNetTotalRight Positive total load deflection at right cantileverpdNetTotalCenter Positive total load deflection at center spanpdNetTotalLeft Positive total load deflection at left cantilever

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface will

return the last error regardless of which interface generated the error.

GetSteelDesignCode ([out] BSTR* pbstrBeamCode, [out] BSTR* pbstrColumnCode);Purpose 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

Reset ( );Purpose Internal use only.

ILoading1

Philosophy:  This interface is used to access information about the load cases and load combinations that exist for the current model.

Page 324: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 324/450

GetAnalysisCaseIDFromAnalyzeNo ([in] long lAnalyzeNo, [out] long* plAnalysisCaseID, [out] long* plRetval)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

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 labelentered by the user. For those created outside of RAM Frame, thislabel is generated internally.

pbstrType String that indicates the type of load. This string is generatedinternally and cannot be modified.

pnLoadType Integer value indicating the load type:pnSubLoadType In combination with the above load type variable, this integer value

more specifically defines the load case by indicating sub categories

of each load case.

GetAvailFrameCombo ([in] ECOMBOTYPES eComboType, [in] long lComboNo,[out] long * plNumTerms, [out] long * palCaseIndex, [out] double * padFactor, [out] long * plSelected);

Purpose To get the information for a given load combination.Parameters eComboType Flag indicating the RAM Frame mode

lComboNo Index into load combination arrayplNumTerms 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 = trueNOTE: This is only implemented for RAM Frame 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.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.

Page 325: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 325/450

p p gThese are associated with the controls in the combo generator.

NOTE: This is only implemented for Concrete in ILoading1 

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 flagplReGen The regeneration flag.

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 listppaCombos Array of load combinations.

NOTE: This is only implemented for Concrete in ILoading1 

GetDispInterfacePointerByEnum ();Purpose Internal use only.

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

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetLineLoadSetInfo ([in] long lLineLoadSetID, [in, out] SCoordinate* pStartLoc, [in, out] SCoordinate* pEndLoc, [in, out] long* plLoadSetPropID,[out,retval] long* plRetVal);Purpose Get information on a line load set.Parameters lLineLoadSetID Line load set ID

pStartLoc Start location of linepEndLoc End location of line

Page 326: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 326/450

pEndLoc End location of lineplLoadSetPropID LoadSetProp Unique IDplRetVal Error code. If value is non zero then check GetLastError

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.

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 listppaAllCases Array of the load cases. Memory is allocated inside DataAccess.

NOTE: This is only implemented for Concrete in ILoading1 

GetLoadSetPropInfo ([in] long lLoadSetPropID, [in] BSTR* pbstrLabel, [in, out] long* plNumCaseIDsUsed, [in, out] long* palCaseIDsUsed, [in,out] long* plNumReferances, [out,retval] long* plRetVal);

Purpose Get the information on the load set properties. A load set is defined in RAM Modeler andis 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 IDpbstrLabel 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 ofgravity load casesplNumReferances Number of times this prop. is used in modelplRetVal 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 sizepaLoadMagnitudes Array of  SLoad for all load cases in load set.

paLoadMagnitudes must be sized to the total number of non-

zero values in palCaseIDsUsedplRetVal Error code. If value is non zero then check GetLastError

GetNodalLoadCaseInfo ([out] long * plNumLoadCases, [out] BSTR** ppbstrLoadCaseLabel, [out] BSTR** ppbstrLoadCaseType);Purpose Get the number of nodal load cases defined in the modeler.

Page 327: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 327/450

Parameters plNumLoadCases The number of nodal load cases definedppbstrLoadCaseLabel The label (user defined) of the load caseppbstrLoadCaseType 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 caseppaNodalLoads Array of nodal load data structures with applied forces

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 arecombined to create the merged 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 combinationsNOTE: This is only implemented for RAM Frame 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 combinationsNOTE: This is only implemented for Concrete in ILoading1 

GetNumCombosInUse ([in] COMBO_MATERIAL_TYPE eType, [out] long* pnNumCombosInUse ); Purpose To get the number of combinations.Parameters eType Flag that indicates the program/mode that is requesting the

count.

pnNumCombosInUse  Number of combos selected for use.

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.

Page 328: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 328/450

Parameters pNum  Return value of the number of gravity load cases.

GetPointLoadSetInfo ([in] long lPointLoadSetID, [in, out] SCoordinate* paLoc, [in, out] long* plLoadSetPropID, [out, retval] long* plRetVal);Purpose Get information on a point load set.Parameters lPointLoadSetID Point load set ID

paLoc Location of point loadplLoadSetPropID LoadSetProp Unique IDplRetVal Error code. If value is non zero then check GetLastError

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.

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 IDplRetVal Error code. If value is non zero then check GetLastError

Comment Use the Polygon functions to get the surface loading geometry

GetTotalNumLoadCases ( [in] COMBO_MATERIAL_TYPE eType, [out] long* pNumLoadCases );Purpose Get the total number of load cases.Parameters eType Combo type

pNumLoadCases Number of load cases

SetComboCode ();

Purpose Internal use only.

SetComboParameters ();Purpose Internal use only.

SetComboReGenFlag ();Purpose Internal use only.

SetCombos ();Purpose Internal use only.

SetLoadCasesForGen ();

Purpose Internal use only.

SetTotalNumLoadCases ();Purpose Internal use only.

Page 329: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 329/450

IMemberData1

Philosophy: This interface is for accessing and setting information for specific members. This could be information about size, framing type,material, material properties.

CalcLiveLoadReductionFactors ( );Purpose Compute live load reduction factors.

CalcRigidEndZones ( );Purpose Compute rigid end zones.

CheckForMemberSizes ( [in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] BOOL bAllHaveSizes );Purpose Get beam design assignment as beam or joist.Parameters eMemType Member type

eMaterial Material type

bAllHaveSizes True if all member type of material type have sizes assigned

GetAssignedMemberKFactor ([in] long lMemberID, [out] EKFAC_ASSIGN* peMajor, [out] EKFAC_ASSIGN* peMinor, [out] double*pdMajorValue, [out] double* pdMinorValue);

Purpose To get the Assigned K factor setting for a column (in each axis) and the user specified K factorif indicated to be assigned.

Parameters lMemberID The column IDpeMajor 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 axispdMinorValue  If peMinor is Use Assigned then this has the user assigned value, minor axis

GetAssignedMemberSidesway ([in] long lMemberID, [out] ESIDESWAY_ASSIGN* peMajor, [out] ESIDESWAY_ASSIGN* peMinor);Purpose 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 forpeMajor Major axis sidesway value (Use global/Braced/unbraced)peMinor Minor axis sidesway value (Use global /Braced/unbraced)

Note: braced = nonsway unbraced = sway

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

Page 330: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 330/450

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)

GetColumnHeight ([in] long lMemberID, [out] double* pdHeight);Purpose Get the column height.Parameters lMemberID Column’s Unique ID 

pdHeight Column height

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 bottombars, or whether to use User defined data for this beam.

Parameters lBeamID The unique member IDpeUseDefBotBars 0 = use global criteria, 1 = use user defined values below

pdBotBars1 Assigned longitudinal bottom reinforcement cover to bar center for 1layer (if user defined)

pdBotBars2 Assigned longitudinal bottom reinforcement cover to bar center for 2layer (if user defined)

GetConcBeamCCBTopBars ([in] long lBeamID, [out] E_COVER_OPTION* peUseDefTopBars, [out] double* pdTopBars1, [out] double*pdTopBars2);

Purpose Get whether the beam should use the global criteria for cover to center of bars for top

bars, or whether to use User defined data for this beam.

Parameters lBeamID The unique member IDpeUseDefTopBars 0 = use global criteria, 1 = use user defined values belowpdTopBars1 Assigned longitudinal top reinforcement cover to bar center for 1

layer (if user defined)pdTopBars2 Assigned longitudinal top reinforcement cover to bar center for 2

layer (if user defined)

GetConcBeamDesignAsBeam ([in] long lBeamID, [out] long* plDsnAsBeam);Purpose 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

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.Parameters lBeamID The unique member ID

peBarLayers 0 = use default from criteria, 1 = 1 Layer only, 2 = allow 2 layers

Page 331: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 331/450

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 belowplNumShearLegs 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

peStirrupType0 = use global criteria, 1 = use open stirrups, 2 = use closedstirrups, 3 = use 135 Hook stirrups, 4 = use Hoop stirrups

GetConcColBarGroups ([in] long lMemberID, [out] long* plGroup1, [out] long* plGroup2, [out] long* plGroup3, [out] long* plGroup4, [out] long*plGroup5);

PurposeFor the given member, get the indices into the array of bar pattern groups of theassigned bar patterns.

Parameters lMemberID Unique member id

plGroup1 Index #1plGroup2 Index #2plGroup3 Index #3plGroup4 Index #4plGroup5 Index #5

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 ofshear legs along the major axis.

plNumMinor If the user selected to “use” this is the user designated number ofshear legs along the minor axis.

plUseGlobalMajor 0 = use the global setting, 1 = use the user valueplUseGlobalMinor   0 = use the global setting, 1 = use the user value

GetConcreteBeamSectionDimProps ([in] long lBeamID, [out] ECONC_OTHER_SEC* peShape, [out] double* pdWebDepth, [out] double*pdWebWidthT, [out] double* pdWebWidthB, [out] double* pdFLWidthL, [out] double* pdFLWidthR, [out] double* pdFLthickL, [out] double*

pdFLthickR, [out] long* pbLeftIsEdge, [out] long* pbRightIsEdge, [out] long * pbUserSpecified);  Purpose 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 l b thi k i diff t h id f b th th di t

Page 332: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 332/450

If slab thickness is different each side of beam then the distancefrom bottom of section to the bottom of the thickest slab is provided

pdWebWidthT Web width at top of webpdWebWidthB Web width at bottom of webpdFLWidthL Left flange width from center of spanpdFLWidthR Right flange width from center of spanpdFLthickL Left flange thickness

pdFLthickR Right flange thickness

pbLeftIsEdgeTrue (1) = left side is an edge of slab, False (0) = left side is not anedge

pbRightIsEdgeTrue (1) = right side is an edge of slab, False (0) = right side is notan edge

pbUserSpecified True if the user specified the design properties directly. False if userwants RAM SS to calculate the design properties

Comments Note: Total section depth is pdWebDepth + maximum thickness between pdFLthickL andpdFLthickR

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 circularpdWebWidthT Section Width / minor dimensionpdWebWidthB (Same number for top and bottom)pdArea Section area

GetConcreteMemberMatlProps ([in] long IMemberID, [out] double * pdfpc, [out] double * pdfct, [out] double * pdE, [out] BSTR * pbstrAggType,

[out] double * pdLongFy, [out] double * pdShearFy, [out] double * pdPoissonsRatio, [out] double * pdMatDensity, [out] double *pdSelfWeight);

Purpose Get concrete material property for member. An error is returned if the member is notconcrete.

Parameters IMemberID Member’s Unique ID pdfpc Concrete Compression stress capacitypdfct Concrete crack section stress capacity f ct. Value is 0 if Normal

weight concrete is used or if user does not choose to enter a valuepdE Concrete modulus of elasticity Ec. If the value is -1 then the user

has selected for Ec to be calculated automatically and it must becalculated based on the concrete code being used

pbstrAggType Concrete Aggregate type NWC = normal weight concrete, LWC =

light weight concretepdLongFy Longitudinal reinforcement stress capacity fypdShearFy Transverse reinforcement stress capacity fypdPoissonsRatio Poisson’s ratio pdMatDensity Concrete material densitypdSelfWeight Concrete self weight used for self weight calculations

Page 333: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 333/450

pdSelfWeight Concrete self weight used for self weight calculations

GetDispInterfacePointerByEnum ();Purpose Internal use only.

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 labelComments This is used when the section name is built out of different size pans on either side of

beam

GetFootingSectionDimProps ( [in] long IFootID, [out] double* pdThickness, [out] double* pdCrackSectFactor );Purpose Get concrete material property for member. An error is returned if the member is not

concrete.Parameters IFootID Footing unique ID

pdThickness ThicknesspdCrackSectFactor Concrete cracked section factor

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 globalcoordinates 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.08333bstrUnit String of unit label for final value. If the final units need to bein 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

lBeamID.Parameters lBeamID Unique Beam ID

plIEndBeamID Beam ID at start of lBeamID

GetInterfacePointer();

Purpose Internal use only.

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.

Page 334: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 334/450

Parameters lBeamID Beam’s Unique ID plJEndBeamID Beam ID at end of lBeamID

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetMemberEndReleases ([in] long lMemberID, [out] long * plMajorMomFixedI, [out] long * plMinorMomFixedI, [out] long * plTorFixedI, [out] long *plMajorMomFixedJ, [out] long * plMinorMomFixedJ, [out] long * plTorFixedJ);

Purpose 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 IplMinorMomFixedI True (1) if fixed for bending about minor axis end IplTorFixedI True (1) if fixed for bending about torsion axis end IplMajorMomFixedJ True (1) if fixed for bending about major axis end JplMinorMomFixedJ True (1) if fixed for bending about minor axis end JplTorFixedJ True (1) if fixed for bending about torsion axis end J

Note: Returns error if member is gravity member

GetMemberFrameNumber ([in] long lMemberID, [out] long* plFrameNum);

Purpose Get frame number for given member.Parameters lMemberID Member unique IDplFrameNum Frame number that the member belongs to. A number < 0 indicates

a gravity member.

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

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 memberplLabel The members “member number” 

GetMemberMatlLatType ([in] long IMemberID, [out] EMATERIALTYPES * peMat, [out] EFRAMETYPE * peFrameType); Purpose Get member material type and frame type.P t lM b ID M b i ID

Page 335: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 335/450

Parameters lMemberID Member unique IDpeMat Material typepeFrameType Frame number that the member belongs to. A number < 0 indicates

a gravity member.

GetMemberRigidEndZones ([in] long lMemberID, [out] double * pdREZMajorI, [out] double * pdREZMinorI, [out] double * pdREZMajorJ, [out]

double * pdREZMinorJ);Purpose Get a member’s rigid end zone length (full length) due to members that frame in at itsends. Applies to beams and columns only. All calls to this function should be precededwith one call to CalcRigidEndZones(). It is only necessary to call CalcRigidEndZones()once. Gravity concrete beams (with beam lines) are assumed continuous. Gravityconcrete columns are assumed continuous.

Parameters lMemberID The unique member IDpdREZMajorI The rigid end zone length at end I in major axis (0 if pinned)pdREZMinorI The rigid end zone length at end I in minor axis (0 if pinned)pdREZMajorJ The rigid end zone length at end J in major axis (0 if pinned)pdREZMinorJ The rigid end zone length at end J in minor axis (0 if pinned)

GetMemberSectionPropInfo ([in] long IMemberID, [out] double* pdIMajGross, [out] double* pdIMinGross, [out] double* pdArea, [out] double*pdAvMaj, [out] double* pdAvMin, [out] double* pdJ, [out] double* pdCrackSectFactor );

Purpose Member analytical section properties.Parameters IMemberID Member’s Unique ID 

pdIMajGross Major axis bending moment of inertiapdIMinGross Minor axis bending moment of inertiapdArea Section areapdAvMaj Effective shear area for shear in major axis

  pdAvMin Effective shear area for shear in major axis

pdJ Torsional constant of the sectionpdCrackSectFactor Cracked section factor used to reduce moment of inertia valuesComments 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 andoverhangs on either side of the web are explicitly defined. For all other T sections the useshould call GetConcreteBeamSectionDimProps and then adjust the flange widths basedon the applicable concrete code effective width calculation then use the sectiondimensions to calculate the analytical section properties.

GetMemberSectionPropInfo2 ( [in] long IMemberID, [out] double* pdIMajGross, [out] double* pdIMinGross, [out] double* pdArea, [out] double*pdAvMaj, [out] double* pdAvMin, [out] double* pdJ, [out] double* pdCrackSectFlexureFactor, [out] double* pdCrackSectAxialFactor, [out]double* pdCrackSectTorsionFactor );

PurposeMember analytical sectionproperties.

Parameters IMemberID Member’s Unique ID pdIMajGross Major axis bending moment of inertiapdIMinGross Minor axis bending moment of inertiapdArea Section area

Page 336: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 336/450

pdArea Section areapdAvMaj Effective shear area for shear in major axispdAvMin Effective shear area for shear in major axispdJ Torsional constant of the sectionpdCrackSectFlexureFactor Cracked section factor used to reduce flexural valuespdCrackSectAxialFactor Cracked section factor used to reduce axial valuespdCrackSectTorsionFactor Cracked section factor used to reduce torsional values

Comments This method can be called for all steel sections and for Rectangular and Circular sections. It can becalled for concrete T sections where the flange thickness and overhangs on either side of the web areexplicitly defined. For all other T sections the use should call GetConcreteBeamSectionDimProps andthen adjust the flange widths based on the applicable concrete code effective width calculation thenuse the section dimensions to calculate the analytical section properties.

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

GetMemberSize ([in] long lMemberID, [out] BSTR* pbstrSize);Purpose Get section label assigned to member.Parameters lMemberID Member Unique ID

pbstrSize Section label

GetMemberType ([in] long lMemberID, [out] EUniqueMemberTypeID* peMemType); 

Purpose Get member type as beam, column, wall etc.Parameters lMemberID Member unique IDpeMemType Member type as column, beam, wall etc.

GetOtherMemberMatlProps ([in] long IMemberID, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double* pdMatDensity, [out] double*pdSelfWeight);

Purpose Get other member material properties.Parameters IMemberID Member’s Unique ID 

pdE Steel modulus of elasticitypdPoissonsRatio Poisson’s ratio pdMatDensity Material densitypdSelfWeight Weight used for self weight calculations

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 = cellularpbstrSize Size as a string

Page 337: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 337/450

pbstrSize Size as a string

GetSteelMemberMatlProps ([in] long IMemberID, [out] double* pdFy, [out] double* pdE, [out] double* pdPoissonsRatio, [out] double * pdDensity,[out] long* plComposite);

Purpose Get steel member material properties.Parameters IMemberID Member’s Unique ID 

pdFy Steel stress capacitypdE Steel modulus of elasticitypdPoissonsRatio Poisson’s ratio pdDensity Steel material densityplComposite True (1) = member is a steel composite beam.

GetSteelMemberSectionDimProps ([in] long IMemberID, [out] ESTEEL_SEC* peShape, [out] BSTR * pbstrSize, [out] double* pdBfTop, [out]double* pdBFBot, [out] double* pdTfTop, [out] double* pdTFBot, [out] double* pdkTop, [out] double* pdkBot, [out] double* pdDepth, [out]double* pdWebT, [out] double* pdCw, [out] double* pdJ, [out] ESTEEL_ROLLED_FLAG * peRolledFlag, [out] double* pdZx, [out] double*pdZy, [out] double* pdSxtop, [out] double* pdSxbot, [out] double* pdSy, [out] double* pdImaj, [out] double* pdImin, [out] double* pdArea); 

Purpose Steel section dimension properties from steel table.Parameters IMemberID Member’s Unique ID 

peShape Section shapepstrSize Section labelpdBfTop Top Flange Width (breadth)pdBFBot Bottom Flange Width (breadth)pdTfTop Thickness of top flangepdTFBot Thickness of bottom flangepdkTop 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 sectionpdWebT Thickness of the web of the sectionpdCw Warping torsion constant of sectionpdJ Torsional modulus of sectionpeRolledFlag True if this is a rolled sectionpdZx Plastic modulus major axispdZy Plastic modulus minor axispdSxtop Section Modulus ToppdSxbot Section Modulus BottompdSy Section Modulus Minor AxispdImaj Major axis moment of inertiapdImin Minor axis moment of inertiapadArea Area of cross section

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

Page 338: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 338/450

IsColumnAHanger ([in] long lMemberID, [out] BOOL* pbHanger);Purpose Get whether a column is a hanger or not.Parameters lMemberID The unique member ID

pbHanger 1 if Hanger, 0 if standard column

IsItAnOffsetColumn ( [in] long lColID, [out] BOOL* pbOffsetCol );

Purpose Get whether a column is a hanger or not.Parameters lColID The unique column ID

pbOffsetCol True if offset column

Reset ( );Purpose Internal use only.

SetBeamLineNo ([in] long lBeamID, [in] long lBeamLineNo);Purpose Set 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 

lBeamLineNo Beam line number assigned to member, 0 indicates no assignment

SetConcBeamCCBBotBars ([in] long lBeamID, [in] E_COVER_OPTION p=eUseDefBotBars, [in] double dBotBars1, [in] double dBotBars2);Purpose Set whether the beam should use the global criteria for cover to center of bars for bottom

bars, or whether to use User defined data for this beam.Parameters lBeamID The unique member ID

eUseDefBotBars 0 = use global criteria, 1 = use user defined values belowdBotBars1 Assigned longitudinal bottom reinforcement cover to bar center for 1

layer (if user defined)dBotBars2 Assigned longitudinal bottom reinforcement cover to bar center for 2

layer (if user defined)

SetConcBeamCCBTopBars ([in] long lBeamID, [in] E_COVER_OPTION eUseDefTopBars, [in] double dTopBars1, [in] double dTopBars2);Purpose Set whether the beam should use the global criteria for cover to center of bars for top

bars, or whether to use User defined data for this beam.Parameters lBeamID The unique member ID

eUseDefTopBars 0 = use global criteria, 1 = use user defined values belowdTopBars1 Assigned longitudinal top reinforcement cover to bar center for 1

layer (if user defined)dTopBars2 Assigned longitudinal top reinforcement cover to bar center for 2

layer (if user defined)

SetConcBeamDesignAsBeam ([in] long lBeamID, [in] long lDsnAsBeam);Purpose Set beam design assignment as beam or joist.Parameters lBeamID Beam’s Unique ID 

lDsnAsBeam Convert to BOOL True = design as beam, False = design as joist

Page 339: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 339/450

SetConcBeamMaxBarLayers ([in] long lBeamID, [in] E_BARLAYERS_OPTION eBarLayers);Purpose Set whether the beam should use the global bar layer criteria or whether to use User

defined data for this beam.Parameters lBeamID The unique member ID

eBarLayers 0 = use default from criteria, 1 = 1 Layer only, 2 = allow 2 layers

SetConcBeamShearLegs ([in] long lBeamID, [in] E_SHEARLEGS_OPTION eUserDefault, [in] long lNumShearLegs);Purpose Set whether to use the global stirrup legs criteria or whether to use a user defined value.Parameters lBeamID The unique member ID

eUserDefault 0 = use global criteria, 1 = use user defined value belowlNumShearLegs 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

peStirrupType0 = use global criteria, 1 = use open stirrups, 2 = use closedstirrups, 3 = use 135 Hook stirrups, 4 = use Hoop stirrups

SetConcColBarGroups ([in] long lMemberID, [in] long lGroup1, [in] long lGroup2, [in] long lGroup3, [in] long lGroup4, [in] long lGroup5);

PurposeFor the given member, set the indices into the array of bar pattern groups of theassigned bar patterns.

Parameters lMemberID Unique member idlGroup1 Index #1lGroup2 Index #2lGroup3 Index #3

  lGroup4 Index #4lGroup5 Index #5

SetConcColShearLegs ([in] long lMemberID, [in] long lNumMajor, [in] long lNumMinor, [in] long lUseGlobalMajor, [in] long lUseGlobalMinor);Purpose To set the number of shear legs assigned to a given column along each axis.Parameters lMemberID Unique member id

lNumMajor If the user selected to “use” this is the user designated number ofshear legs along the major axis.

lNumMinor If the user selected to “use” this is the user designated number ofshear legs along the minor axis.

lUseGlobalMajor 0 = use the global setting, 1 = use the user valuelUseGlobalMinor   0 = use the global setting, 1 = use the user value

SetConcreteMemberMatlProps ([in] long IMemberID, [in] double dfpc, [in] double dfct, [in] double dE, [in] BSTR bstrAggType, [in] doubledLongFy, [in] double dShearFy, [in] double dPoissonsRatio, [in] double dMatDensity, [in] double dSelfWeight);Purpose Set concrete material property for member. An error is returned if the member is not

concrete.Parameters IMemberID Member’s Unique ID 

dfpc Concrete Compression stress capacityf C f f

Page 340: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 340/450

dfct Concrete crack section stress capacity f ct. Value is 0 if Normalweight concrete is used or if user does not choose to enter a value

dE Concrete modulus of elasticity Ec. If the value is -1 then the userhas selected for Ec to be calculated automatically and it must becalculated based on the concrete code being used

bstrAggType Concrete Aggregate type NWC = normal weight concrete, LWC =

light weight concretedLongFy Longitudinal reinforcement stress capacity fydShearFy Transverse reinforcement stress capacity fydPoissonsRatio Poisson’s ratio dMatDensity Concrete material densitydSelfWeight Concrete self weight used for self weight calculations

SetIEndBeamID ( [in] long lBeamID, [out] long* plIEndBeamID);Purpose Internal use only.

SetJEndBeamID ( [in] long lBeamID, [out] long* plJEndBeamID);Purpose Internal use only.

SetMemberKFactor ([in] long lMemberID, [in] EKFAC_ASSIGN eMajor, [in] EKFAC_ASSIGN eMinor, [in] double dMajorValue, [in] doubledMinorValue );

Purpose Set the member K factor.Parameters lMemberID The member ID to get the sidesway setting for

eMajor Major axis K factor typeeMinor Minor axis K factor typ

  dMajorValue Major axis K factordMinorValue Minor axis K factor

SetMemberSidesway ([in] long lMemberID, [in] ESIDESWAY_ASSIGN eMajor, [in] ESIDESWAY_ASSIGN eMinor);Purpose Sets 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

eMajor Major axis sidesway value (Braced/unbraced)eMinor Minor axis sidesway value (Braced/unbraced)

Note: braced = nonsway unbraced = sway

SetMemberSize ([in] long lMemberID, [in] BSTR bstrSize);Purpose Set section label assigned to member.

Parameters lMemberID Member Unique IDbstrSize Section label

IMemberData2

Page 341: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 341/450

IMemberData2

Philosophy:  (see MemberData1 above)

GetBraceDoubleAngleInfo([in] long lBraceID, [in,out] BOOL* pbIsDoubleAngle ,

[in,out] BOOL* pbLongLegsBack2Back, [in,out] double* pdBackSpacing,[out, retval] long* plRetVal)Purpose Get double angle info for brace sections.Parameters lBraceID Brace ID

pblsDoubleAngle TRUE = section is a double angle. If FALSE then ignoreremaining values

pbLongLegsBack2Back TRUE = long legs are back to backbdBackSpacing Spacing between double angle backsplRetVal Error code.

-1 = unspecified error, -2 = Section not a double angleIf value is non zero then check GetLastError

GetConcBeamCBC ( [in] long lBeamID, [out] E_COVER_OPTION* peCBCOption, [out] double* pdCBCTop, [out] double* pdCBCBot, [out]double* pdCBCSide, [out, retval] long* plRetVal );

Purpose Get the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

peCBCOption Cover optionpdCBCTop Top coverpdCBCBot Bottom coverpdCBCSide Side cover

  plRetVal Error code. If value is non zero then check GetLastError. 

GetConcGapData ( [in] long lBeamID, [out] E_GAP_OPTION* peGapOption, [out] double* pdGapUpper, [out] double* pdGapLower, [out, retval]long* plRetVal );

Purpose Get the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

peGapOption Gap optionpdGapUpper Upper gappdGapLower Lower gapplRetVal Error code. If value is non zero then check GetLastError. 

GetConcBeamLinkSpacing ( [in] long lBeamID, [out] E_LINKSPC_OPTION* peLinkSpacingOption, [out] double* pdLinkSpacing, [out, retval]long* plRetVal );

Purpose Get the concrete beam link spacing for the Chinese design code.Parameters lBeamID The unique beam ID

peLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION. pdLinkSpacing Link spacingplRetVal Error code. If value is non zero then check GetLastError. 

Page 342: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 342/450

GetConcBeamLinkSpacingChinese ([in] long lBeamID, [out] E_LINKSPC_OPTION* peLinkSpacingOption, [out] double* pdLinkSpacing, [out]double* pdLinkSpacingMin, [out, retval] long* plRetVal);

Purpose Get the concrete beam link spacing for the Chinese design code.Parameters lBeamID The unique beam ID

peLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION. pdLinkSpacing Link spacingpdLinkSpacingMin Minimum link spacingplRetVal Error code. If value is non zero then check GetLastError. 

GetConcBeamMainBarSize ( [in] long lBeamID, [out] E_BARSIZE_OPTION* eMainBarSizeOption, [out] long* plMinMainBarSizeInd, [out] long*plMaxMainBarSizeInd, [out, retval] long* plRetVal );

Purpose Get the concrete main bar sizes assigned to the beam for the Chinese design code. .Parameters lBeamID The unique beam ID

eMainBarSizeOption Bar size option. See E_BARSIZE_OPTION. plMinMainBarSizeInd Index to the minimum bar sizeplMaxMainBarSizeInd Index to the maximum bar sizeplRetVal Error code. If value is non zero then check GetLastError. 

GetConcBeamMainBarSizeChinese ([in] long lBeamID, [out] E_BARSIZE_OPTION* eShearBarSizeOption, [out] long* pldwSelectedBarSizes,[out, retval] long* plRetVal);

Purpose Get the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION. pldwSelectedBarSizes Selected bar sizes.plRetVal Error code. If value is non zero then check GetLastError. 

 

GetConcBeamShearBarSize ( [in] long lBeamID, [out] E_BARSIZE_OPTION* eShearBarSizeOption, [out] long* plMinMainBarSizeInd, [out,retval] long* plRetVal );Purpose Get the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION. plMinMainBarSizeInd Index to the bar sizeplRetVal Error code. If value is non zero then check GetLastError. 

GetDeflectionCriteria ([in] long lBeamID, [out] long *plDeflCritIID);Purpose Determine the deflection criteria assigned to a beam.Parameters lBeamID The unique beam ID

plDeflCritID Prior to version 14 this returned 0 for the default deflection criteria

or 1 for the alternate deflection criteria. After v14, it returns theunique ID of the deflection criteria since multiple alternate deflectioncriteria can exist.

GetDispInterfacePointerByEnum ();Purpose Internal use only.

Page 343: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 343/450

Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

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

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.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 theGetNumPenetratedBeams method above).

palBeamIDs Pointer to an array longs that will contain the beam ID’s of beamscontaining penetrations. Memory must be allocated before thepointer 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 beampdDistFromIEnd Distance of web pen from i-end of beampdDistFromTop Distance of web pen from top of beam, or 0.0 if centeredplType Shape of opening: Rectangular (0) or Circular (1)pdHDiam Height of rectangular or diameter of circular openingpdB Width of rectangular opening (or diameter or circular opening)

Page 344: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 344/450

p g p g ( p g)plNumStiffeners 0, 1, or 2 stiffenerspdLength Length of stiffenerspdWidth Width of stiffenerspdThick Thickness of stiffeners

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 theGetNumPensForBeamID method above).

palPenIDs Pointer to an array of longs that will contain penetration ids.Memory must be allocated before the pointer is sent intoDataAccess

plRetVal Error code. If value is non zero then check GetLastError

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 IDpeTensionCompressionType Defines type as tension only/ compression only or bothplRetVal 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 designatedTension-Only at this time. All other member types will automatically have FALSE returned

Reset ( );

Purpose Internal use only.

SetBeamCamber ( );Purpose Internal use only

SetConcGapData ( [in] long lBeamID, [in] E_GAP_OPTION eGapOption, [in] double dGapUpper, [in] double dGapLower, [out, retval] long*plRetVal );

Purpose Set the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

eGapOption Gap optiondGapUpper Upper gapdGapLower Lower gapplRetVal Error code. If value is non zero then check GetLastError. 

SetConcBeamLinkSpacing ( [in] long lBeamID, [in] E_LINKSPC_OPTION eLinkSpacingOption, [in] double dLinkSpacing, [out, retval] long*plRetVal );

Purpose Set the concrete beam link spacing for the Chinese design code.Parameters lBeamID The unique beam ID

eLinkSpacingOption Link spacing option. See E LINKSPC OPTION.

Page 345: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 345/450

eLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION. dLinkSpacing Link spacingplRetVal Error code. If value is non zero then check GetLastError. 

SetConcBeamLinkSpacingChinese ([in] long lBeamID, [in] E_LINKSPC_OPTION eLinkSpacingOption, [in] double dLinkSpacing, [in] doubledLinkSpacingMin, [out, retval] long* plRetVal);

Purpose Set the concrete beam link spacing for the Chinese design code.Parameters lBeamID The unique beam IDeLinkSpacingOption Link spacing option. See E_LINKSPC_OPTION. dLinkSpacing Link spacingdLinkSpacingMin Minimum link spacingplRetVal Error code. If value is non zero then check GetLastError. 

SetConcBeamMainBarSize ( [in] long lBeamID, [in] E_BARSIZE_OPTION eMainBarSizeOption, [in] long lMinMainBarSizeInd, [in] longlMaxMainBarSizeInd, [out, retval] long* plRetVal );

Purpose Set the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

eMainBarSizeOption Bar size option. See E_BARSIZE_OPTION. 

lMinMainBarSizeInd Index to the minimum bar sizelMaxMainBarSizeInd Index to the maximum bar sizeplRetVal Error code. If value is non zero then check GetLastError. 

SetConcBeamMainBarSizeChinese ([in] long lBeamID, [in] E_BARSIZE_OPTION eShearBarSizeOption, [in] long pldwSelectedBarSizes, [out,retval] long* plRetVal);

Purpose Set the concrete main bar sizes assigned to the beam for the Chinese design code.Parameters lBeamID The unique beam ID

  eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION. pldwSelectedBarSizes Selected bar sizes.plRetVal Error code. If value is non zero then check GetLastError. 

SetConcBeamShearBarSize ( [in] long lBeamID, [in] E_BARSIZE_OPTION eShearBarSizeOption, [in] long lMinMainBarSizeInd, [out, retval]long* plRetVal );

Purpose Set the concrete main bar sizes assigned to the beam for the Chinese design code. .Parameters lBeamID The unique beam ID

eShearBarSizeOption Bar size option. See E_BARSIZE_OPTION. lMinMainBarSizeInd Index to the bar sizeplRetVal Error code. If value is non zero then check GetLastError. 

SetDeflectionCriteria ([in] long lBeamID, [in] long lDeflCritID);

Purpose Set the deflection criteria for the concrete beam.Parameters lBeamID The unique beam ID

lDeflCritID The unique ID of the deflection criteria assigned to the beam

SetMemberEndReleases ( [in] long lMemberID, [in] long lMajorMomFixedI, [in] long lMinormOmeFixedI, [in] long lTorFixedI, [in] longlMajorMomFixedJ, [in] long lMinormOmeFixedJ, [in] long lTorFixedJ, [out, retval] long* plRetVal );

Page 346: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 346/450

j [ ] g [ ] g [ ] g p )Purpose Set the deflection criteria for the concrete beam.Parameters lMemberID The unique member ID

lMajorMomFixedI I end major moment (1 = fixed, 0 = released)lMinorMomFixedI I end minor moment (1 = fixed, 0 = released)lTorFixedI I end torsion (1 = fixed, 0 = released)lMajorMomFixedJ J end major moment (1 = fixed, 0 = released)

lMinorMomFixedJ J end minor moment (1 = fixed, 0 = released)lTorFixedJ J end torsion (1 = fixed, 0 = released)plRetVal Error code. If value is non zero then check GetLastError. 

IModelData1

Philosophy: This interface is for accessing and setting model specific information. This includes model name and paths, tables or informationabout tables, units, live load reduction and other general model data.

GetBuildingCodeAsString (BSTR *pbstrCode);Purpose Gets the LL Reduction code selected in the RAM Manager.Parameters pbstrCode  String representation of the selected code

GetCompanyName([out] BSTR* pbstrCompanyName);Purpose Returns the company name entered in the Defaults Utility and associated with this model.Parameters pbstrCompanyName The Company Name

 

GetConcAnalysisState ( [out] long* plAnalysisState );Purpose Returns the concrete analysis state of the model.Parameters plAnalysisState Concrete analysis state

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 thesemethods provide all the required information.

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 theseth d id ll th i d i f ti

Page 347: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 347/450

methods provide all the required information.

GetConcreteBeamState ( [out] long* plBeamState );Purpose Returns the concrete beam state of the model.Parameters plBeamState Concrete beam state

GetConcreteCodeAsString ([out] BSTR* pbstrConcCode);Purpose To find out what concrete code is being used.Parameters pbstrConcCode String representation of the selected concrete code

GetConcreteColumnState ( [out] long* plColumnState );Purpose Returns the concrete column state of the model.Parameters plColumnState Concrete column state

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 directorypbstrData Path to the data directorypbstrDXF Path to the dxf directorypbstrReports Path to the reports directorypbstrError Path to the error directorypbstrProg Path to the prog directory

GetDispInterfacePointerByEnum ();

Purpose Internal use only.

GetFrameType ();

Purpose Internal use only.

GetINIFileName ([out] BSTR* pbstrIniFileName);Purpose Gets the name of the ini file.Parameters pbstrIniFileName  Ini file name

GetInterfacePointer();

Purpose Internal use only.

GetJobName([out] BSTR* pbstrJobName);Purpose Returns the job name entered when the model was created.Parameters pbstrJobName The Job Name

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Page 348: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 348/450

Purpose To get information about why a method failed.Parameters pbstrShortError Short message about the failure

pbstrLongError Longer message about the failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

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.

GetMDFDrawingColor ([in] EDRAWINGCOLOR eColor, [out] DWORD* pdwColor);Purpose Gets the drawing color for the specified member type (specified by EDRAWINGCOLOR).Parameters eColor   Enum of member type.

pdwColor   RGB(red,green,blue) value for color

GetModelNameWithOutPath ([out] BSTR* pbstrModelName);Purpose Get the model name without its directory path.Parameters pbstrModelName  Model name with path

GetModelNameWithPath ([out] BSTR* pbstrModelName);Purpose Get the model name including its directory path.

Parameters pbstrModelName  The model name.

GetNumConcColSections ([out] long* pnNum);Purpose Gets the number of concrete column sections defined in the model.Parameters pnNum Number of sections

GetNumInRebarTable ([out] long* pnNum);Purpose To retrieve the number of bars in the reinforcement table.Parameters pnNum Number of bars in the table

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. 

GetPathToDataDirectory ([out] BSTR* pbstrDir);Purpose Gets the path to the data directory from the ini file.Parameters pbstrDir   Path to the data directory

Page 349: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 349/450

p y

GetPathToDXFDirectory ([out] BSTR* pbstrDir);Purpose Gets the path to the dxf directory from the ini file.Parameters pbstrDir   Path to the dxf directory

GetPathToErrorDirectory ([out] BSTR* pbstrDir);Purpose Gets the path to the error directory from the ini file.Parameters pbstrDir   Path to the error directory

GetPathToProgDirectory ([out] BSTR* pbstrDir);Purpose Gets the path to the prog directory from the ini file.Parameters pbstrDir   Path to the prog directory

GetPathToReportsDirectory ([out] BSTR* pbstrDir);Purpose Gets the path to the reports directory from the ini file.Parameters pbstrDir   Path to the reports directory

GetPathToTableDirectory ([out] BSTR* pbstrDir);Purpose To obtain the path to the directory where tables are stored.Parameters pbstrDir Directory path (as a string)

GetRebarTable_ConcBeam([out] long* pnNum, [out] SREIN_PROP** ppaReinProp); Purpose To get the concrete beam reinforcement information and identify which bars are used in

the concrete beam program.

Parameters 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 bythe beam program. TRUE means the program is considering that size.

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.

GetReinforcementTableName([out] BSTR* pbstrReinTable);Purpose To retrieve the reinforcement table name.Parameters pbstrReinTable Reinforcement table name

GetReportDefaultColor ( [out] EWhichFontAndColor  eWhich, [out] long plTitleColor );Purpose To retrieve the reinforcement table name.Parameters eWhich EWhichFontAndColor

Page 350: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 350/450

Parameters eWhich EWhichFontAndColor  plTitleColor Title color index

GetReportDefaultDestination ( [out] long plDestination );Purpose To retrieve the report desitnationParameters plDestination 0 = Printer, 1 = Screen, 2 = Text File, 3 = Viewer

FIle

GetReportDefaultFont ( [out] EWhichFontAndColor  eWhich, [out] long plfHeight, [out] long plfWidth, [out] long plfEscapement, [out] longplfOrientation, [out] long plfWeight, [out] Byte pbyteItalic, [out] Byte pbyteUnderline, [out] Byte pbyteSrikeOut, [out] Byte pbyteCharSet,[out] Byte pbyteOutPrecision, [out] Byte pbyteClipPrecision, [out] Byte pbyteQuality, [out] Byte pbyte PitchAndFamily, [out] BSRTpbstrFontName );

Purpose To retrieve the report default font.Parameters eWhich EWhichFontAndColor  

plfHeight HeightplfWidth WidthplfEscapement Escapement

plfOrientation OrientationplfWeight WeightpbyteItallic ItallicpbyteUnderline UnderlinpbyteSrikeOut Strike outpbyteCharSet Char SetpbyteOutPrecison Out PrecisionpbyteClipPrecision Clip Precision

  pbyteQuality QualitypbytePitchAndFamily Pitch and FamilypbstrFontName Font Name

GetReportDefaultMargins ( [out] double pdTopMar, [out] double pdBottomMar, [out] double pdLeftMar, [out] double pdRightMar );Purpose To retrieve the report default margins.Parameters pdTopMar Top margin

pdBottomMar Bottom marginpdLeftMar Left marginpdRightMar Right margin

GetReportDefaultPaperSize ( [out] double pdPageWidth, [out] double pdPageHeight, [out] long plPaperSize );Purpose To retrieve the report default page size.

Parameters pdPageWidth Page WidthpdPageHeight Page HeightplPaperSize Paper Size Index

GetReportDefaultUseLogo ( [out] long plLogo );Purpose To retrieve the report default page size.Parameters plLogo 1 = Use logo 0 = No logo

Page 351: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 351/450

Parameters plLogo 1 = Use logo, 0 = No logo

GetSelectedTables ([out] BSTR* pbstrMasterTable, [out] BSTR* pbstrDeckTable, [out] BSTR* pbstrColumnTable, [out] BSTR*pbstrDefBeamTable, [out] BSTR* pbstrAltBeamTable, [out] BSTR* pbstrDefSmartTable, [out] BSTR* pbstrAltSmartTable, [out] BSTR*pbstrPanFormTable, [out] BSTR* pbstrReinforcement Table);

Purpose Get the names of the selected tables.Parameters pbstrMasterTable Master table namepbstrDeckTable Deck table namepbstrColumnTable Column table namepbstrDefBeamTable Default Beam table namepbstrAltBeamTable Alternate Beam table namepbstrDefSmartTable Default Smartbeam table namepbstrAltSmartTable Alternate Smartbeam table namepbstrPanFormTable Pan Form table namepbstrReinforcement Reinforcement table name

GetTimeDateStamp ([out] BSTR* pbstrTimeDateStamp);

Purpose Returns, as a string, the last time the model was modified.Parameters pbstrTimeDateStamp String representation of the time date stampComments This method can be used to check when the model data was changed.

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 willbe entering values and the units that data will be displayed in RAM SS.

Reset ();Purpose Internal use only.

SetConcAnalysisState ();Purpose Internal use only.

SetConcreteBeamState ();Purpose Internal use only.

SetConcreteColumnState ();Purpose Internal use only.

SetINIFileName ();Purpose Internal use only.

SetMDFDrawingColor ();

Page 352: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 352/450

SetMDFDrawingColor ();Purpose Internal use only.

SetRebarTable_ConcBeam ();Purpose Internal use only.

SetRebarTable_ConcCol ();Purpose Internal use only.

SetTimeDateStamp ();Purpose Internal use only.

IModelData2

Philosophy:  (see ModelData1 above)

GetCanadaMatInfo ( [out] long* plRolledWCol,[out] long* plRolledWBeam,[out] long* plRolledWBrace, [out] long* plWWFCol,[out] long*lWWFBeam,[out] long* plWWFBrace, [out] long* plHSSRectCol,[out] long* plHSSRectBeam,[out] long* plHSSRectBrace, [out] long*plHSSRoundCol,[out] long* plHSSRoundBrace, [out] long* plChannelBeam,[out] long* plDoubleAngleBrace,[out] long* plClassHSS);

Purpose Get Canada steel material grade to be used for each member type (e.g. use W grade forbeams, WT for built up beams etc).

Parameters plRolledWCol Rolled W gradeplRolledWBeam Rolled W grade

plRolledWBrace Rolled W gradeplWWFCol Built up column gradeplWWFBeam Built up beam gradeplWWFBrace Built up brace gradeplHSSRectCol HSS Rect gradeplHSSRectBeam HSS Rect gradeplHSSRectBrace HSS Rect gradeplHSSRoundCol HSS Round gradeplHSSRoundBrace HSS Round gradeplChannelBeam Channel beam gradeplDoubleAngleBrace Double Angle gradeplClassHSS 0 = Class C, 1 = Class H : Refer to CISC for definition of

difference between Class C and H, Hollow Sections

GetCanadaMatInfo2 ( [out] long* plRolledWCol,[out] long* plRolledWBeam,[out] long* plRolledWBrace, [out] long* plWWFCol,[out] long*lWWFBeam,[out] long* plWWFBrace, [out] long* plHSSRectCol,[out] long* plHSSRectBeam,[out] long* plHSSRectBrace, [out] long*plHSSRoundCol,[out] long* plHSSRoundBrace, [out] long* plChannelCol, [out] long* plChannelBeam, [out] long* plChannelBrace, [out]long* plDoubleAngleCol, [out] long* plDoubleAngleBrace, [out] long* plTeeCol, [out] long* plTeeBrace, [out] long* plRodBarCol, [out] long*

Page 353: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 353/450

g p g , [ ] g p g , [ ] g p , [ ] g p , [ ] g p , [ ] gplRodBarBrace, [out] long* plClassHSS);

Purpose Get Canada steel material grade to be used for each member type (e.g. use W grade forbeams, WT for built up beams etc).

Parameters plRolledWCol Rolled W gradeplRolledWBeam Rolled W grade

plRolledWBrace Rolled W gradeplWWFCol Built up column gradeplWWFBeam Built up beam gradeplWWFBrace Built up brace gradeplHSSRectCol HSS Rect column gradeplHSSRectBeam HSS Rect beam gradeplHSSRectBrace HSS Rect brace gradeplHSSRoundCol HSS Round column gradeplHSSRoundBrace HSS Round brace gradeplChannelCol Channel column gradeplChannelBeam Channel beam gradeplChannelBrace Channel brace grade

plDoubleAngleCol Double Angle column gradeplDoubleAngleBrace Double Angle brace gradeplTeeCol Tee column gradeplTeeBrace Tee brace gradeplRodBarCol Round or Rectangular bar column gradeplRodBarBrace Round or Rectangular bar brace gradeplClassHSS 0 = Class C, 1 = Class H : Refer to CISC for definition of

difference between Class C and H, Hollow Sections

 GetCodeSelection ([out] BSTR* pbstr);

Purpose Get Current Code Selection.Parameters pbstr Code label

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 designplBeamDesStatus Status of the steel beam design

0 = Not designed, 1 = Valid design, 2 = invalid design

GetConcSlabPropInfo ([in] long lConcSlabOrPropID, [in, out] SSlabProp* pSlabProp, [out,retval] long* plRetVal);

Purpose Get concrete slab properties.Parameters lConcSlabOrPropID conc slab Prop ID or concrete slab polygon ID

pSlabProp conc slab Prop pointerplRetVal Error code. If value is non zero then check GetLastError

GetDBandLatStatus ([in] long lConcSlabOrPropID, [in, out] SSlabProp* pSlabProp, [out,retval] long* plRetVal);Purpose Get the database and lateral status

Page 354: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 354/450

Purpose Get the database and lateral status.Parameters plDB_Status Database status

plLatStatus Lateral status

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

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

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetEHotColdFormed ([out] long* plVal);Purpose Get BS 5950 Hollow Sections setting.Parameters plVal  0 = Cold Formed, 1 = Hot Finished

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

*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

VectorComposite Beam Design Group:*ppdEuroCodeFactor[9] - Shear Studs, Gamma v*ppdEuroCodeFactor[10] - Structural Steel, Fundamental, Gamma a

*ppdEuroCodeFactor[11] – Concrete, Fundamental, Gamma cplMax  Number values returned

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

* bE R dF [1] B

Page 355: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 355/450

*ppbEuroRedFys[1] – Beam*ppbEuroRedFys[2] – Brace value:

0 = do not reduce 1 = reduceplMax  Number values returned

GetFndForcesFromFlag ( [out] long* plForcesFrom );Purpose Flag for foundation forces source.Parameters plForcesFrom  0 = RAM Steel, 1 = RAM Concrete, 2 = steel from Steel,

concrete from Concrete

GetFoundationDesignValid ([out] BOOL* pbValid);Purpose To get the flag that indicates if the foundation design is current and valid.Parameters pbValid  The design flag.

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

 

GetLLRMethodChoices ([out] long* plLLRMethod,[out] long* plIBCLLRMethod);Purpose Get IBC or UBC Reduction Method.Parameters plLLRMethod For UBC code:

1 = Method 1, 2 = Method 2plIBCLLRMethod For IBC code:

0 = General Method, 1 = Alternate Method

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 returnedplRetVal Error code. If value is non zero then check GetLastError

GetMemberIDArray ([in] EUniqueMemberTypeID eMemberType, [in] EMATERIALTYPES eMatType, [in] EFRAMETYPE eGravOrLat, [in] longlArraySize, [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 applicableeGravOrLat Gravity or lateral - use MemberIsNone when not applicable

Page 356: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 356/450

eGravOrLat Gravity or lateral - use MemberIsNone when not applicablelArraySize palMemberIDs array size used for verification checkpalMemberIDs 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 applicableeGravOrLat Gravity or lateral - use MemberIsNone when not applicablelArraySize palMemberIDs array size used for verification checkpalMemberIDs Pre-dimensioned array used to return the member ID’s plRetVal Error code. If value is non zero then check GetLastError

GetMembersInPolygonIDArray ([in] long lPolygonID, [in] EUniqueMemberTypeID eMemberType, [in] EMemberInPolyCategory 

eMemberCategory, [in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in] long lArraySize, [in, out] long*palMemberIDs, [out,retval] long* plRetVal);

Purpose 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 etcbAcceptMembOnPolyEdge true = Consider members that are on the edge of polygon

as inside polygonbExcludeIfInOpeningOrPenet Ignore members that are inside an opening or penetration

lArraySize palMemberIDs array size used for verification checkpalMemberIDs Array that will be filled with ID's of all Members meeting

the criteria aboveplRetVal 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 listNOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat andeAboveMemPolyCat

GetMembersInPolygonIDArrayAtStory ([in] long lPolygonID, [in] long lStoryID, [in] EUniqueMemberTypeID eMemberType, [in]EMemberInPolyCategory eMemberCategory, [in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in] longlArraySize, [in, out] long* palMemberIDs, [out,retval] long* plRetVal);

Purpose Get list of members inside a polygon.Parameters lPolygonID Polygon Unique IDlStoryID Story unique IDeMemberType Member type (Must be specified)eMemberCategory Category to consider. Members that pass through

polygon, end at polygon etcbAcceptMembOnPolyEdge true = Consider members that are on the edge of polygon

i id l

Page 357: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 357/450

as inside polygonbExcludeIfInOpeningOrPenet Ignore members that are inside an opening or penetrationlArraySize palMemberIDs array size used for verification checkpalMemberIDs 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 GetLastErrorComments If either the beam or wall start or end is in the polygon, it will be added to the listNOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat andeAboveMemPolyCat

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 beams1 = the model has steel beams, 0 = it does not

plModelHasJoists 1 = the model has steel joists, 0 = it does not

plModelHasSmartbeams 1 = the model has smartbeams, 0 = it does not

GetnCut ([out] long* plVal);Purpose Get Canada parameters ‘Built Up’ setting.

See “Criteria – Canada Parameters” in RAM Manager  Parameters plVal  0 = Flame Cut edges, 1 = MIL Cut edges

 GetNumAnalyzedLoadCases ( [out] long* plNum );

Purpose Get the number of analyzed load cases.Parameters plNum  Number of cases

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 applicableeGravOrLat Gravity or lateral - use MemberIsNone when not applicableplNumMembers Return total number of member typeplRetVal Error code. If value is non zero then check GetLastError

GetNumMembersInPolygon ([in] long lPolygonID, [in] EUniqueMemberTypeID eMemberType, [in] EMemberInPolyCategory eMemberCategory,[in] BOOL bAcceptMembOnPolyEdge, [in] BOOL bExcludeIfInOpeningOrPenet, [in, out] long* plNumMembers, [out,retval] long*plRetVal);

Purpose Get total number of members that fall inside of a given polygon.Parameters lPolygonID Polygon ID

eMemberType Member type (Must be specified)

Page 358: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 358/450

eMemberType Member type (Must be specified)eMemberCategory Category to consider. Members that pass through

polygon, end at polygon etcbAcceptMembOnPolyEdge true = Consider members that are on the edge of polygon

as inside polygonbExcludeIfInOpeningOrPenet Ignore members that are inside an opening or

penetrationplNumMembers Number of members in polygonplRetVal 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 listNOTE1: Only implemented for eEndMemPolyCat, eBelowMemPolyCat andeAboveMemPolyCat

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

Parameters lPolygonID Polygon Unique IDlStoryID Unique ID of story to get members oneMemberType Member type (Must be specified)eMemberCategory Category to consider. Members that pass through

polygon, end at polygon etcbAcceptMembOnPolyEdge true = Consider members that are on the edge of polygon

as inside polygonbExcludeIfInOpeningOrPenet Ignore members that are inside an opening or

penetrationplNumMembers Number of members in polygon

plRetVal Error code. If value is non zero then check GetLastErrorComments 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 andeAboveMemPolyCat

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 applicableeGravOrLat Gravity or lateral - use MemberIsNone when not applicableplNumMembers Return total number of member typeplRetVal 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, eTypeDeckOrSlabIf an eMemberTypes is not supported the fundtion will return an error code and theGetLastError will indicate that the Member Type is invalid

Page 359: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 359/450

GetLastError will indicate that the Member Type is invalid.

GetNumSections ([out] long* plConcCol,[out] long* plOtherCol, [out] long* plConcBm,[out] long* plOtherBm, [out] long* plConcBrc,[out] long*plOtherBrc);

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

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 matperimeter

GetPDelta ([out] BOOL* pbPDelta );Purpose Determine if P Delta is selected in Frame.Parameters pbPDelta True if PDelta is selected

GetSelectedSteelJoistTables ([in, out] BSTR* pbstrDefStandardTableName, [in, out] BSTR* pbstrAltStandardTableName, [in, out] BSTR*pbstrDefConstShearTableName, [in, out] BSTR* pbstrAltConstShearTableName, [out, retval] long* plRetVal);

Purpose Get the steel joist table names.Parameters pbstrDefStandardTableName Default standard table name

pbstrAltStandardTableName Alternate standard table namepbstrDefConstShearTableName Default Constant Shear table namepbstrAltConstShearTableName Alternate Constant Shear table nameplRetVal Error code. If value is non zero then check

GetLastError

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

plIncBeamSelfWeight 1 = include self-weight for beams, 0 = do not include self-weightplIncWallSelfWeight 1 = include self-weight for walls, 0 = do not include self-weight

GetSlabsInSlabPerimeterIDArray ([in] long lMatID, [in, out] long* palSlabIDs);Purpose Get a list of Slab prop IDs that overlap a given mat perimeter.Parameters lMatID Mat perimeter unique ID

palSlabIDs List of IDs of type eTypeFoundationMatSlab

ModelIsTensionOnly ([in, out] BOOL* pbTensionOnly, [out, retval] long* plRetVal)

Page 360: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 360/450

Purpose Find out if any tension only members exist. If they do, this is considered a tension onlymodel.

Parameters pbTensionOnly TRUE = there exists at least one member that is tension only thusthe model is a tension only model.

plRetVal Error code. If value is non zero then check GetLastError

Reset ();Purpose Internal use only.

SetColBeamDsgnStatus ();Purpose Internal use only.

SetDBandLatStatus ();Purpose Internal use only.

SetEHotColdFormed ([in] long lVal);

Purpose Set BS 5950 Hollow Sections setting.Parameters lVal  0 = Cold Formed, 1 = Hot Finished

SetEuroCodeFactor ();Purpose Internal use only

SetFoundationDesignValid ();

Purpose Internal use only

SetGravityLoadFramingFlag ();Purpose Internal use only

SetnCut ();Purpose Internal use only

SetNumAnalyzedLoadCases ();Purpose Internal use only

IModelGeometry1

Philosophy: This interface is for accessing and setting information about the geometry of the model. This includes dimensions of members,framing, story and floor type data. While information can be obtained on a member-by-member basis, all of the information relates to thephysicality of the model (rather than specific information about a member, such as material properties). The Member Data Interface is wherespecific information about members can be found

Page 361: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 361/450

specific information about members can be found.

Comment 1: In the sections the Start of a member refers the end of the member that is closest to the bottom left corner of the model whenlooking 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 currentlybut 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 inexisiting code but new code should be written with the more current methods.

GetAllMemberIDsFor ([in] EUniqueMemberTypeID eMemType, [in] EMATERIALTYPES eMaterial, [out] long* lNumIDs, [out] long** ppalIDs); Purpose 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 memberslNumIDs Number of members found.

ppalIDs Array of IDs. Size of array is lNumIDs

GetBeamDepthFramingIntoColumn ([in] long lColID, [out] double* pdMaxMajorDepth, [out] double* pdMinMajorDepth, [out] double*pdMaxMinorDepth, [out] double* pdMinMinorDepth);

Purpose Get the max and minimum beam depths that are framing into a column. Note: The maxand min depths will be on opposite sides. So if a column has two beams of differentdepths 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 columnpdMinMajorDepth Min beam depth framing into the major face of the columnpdMaxMinorDepth Max beam depth framing into the minor face of the columnpdMinMinorDepth Min beam depth framing into the minor face of the column

GetBeamGeomInfo ([in] long lBeamID, [out] long* plBeamLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]double* pdXStart, [out] double* pdYStart, [out] double* pdZStart, [out] double* pdXEnd, [out] double* pdYEnd, [out] double* pdZEnd, [out]double* pdStartSupportX, [out] double* pdStartSupportY, [out] double* pdStartSupportZ, [out] double* pdEndSupportX, [out] double*pdEndSupportY, [out] double* pdEndSupportZ, [out] double* pdStartCantLength, [out] double* pdMidSpanLength, [out] double*pdEndCantLength); 

Purpose Get beam Geometry information including its location in the 3D model.

Parameters lBeamID Unique Beam IDplBeamLabel Beam Label as seen in modelpeGravOrLat Gravity or Lateral memberpeMaterial Material TypepdXStart 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 endpdYStart Global Y coordinate location at start of BeampdZStart Global Z coordinate location at start of Beam

Page 362: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 362/450

pdZStart Global Z coordinate location at start of BeampdXEnd Global X coordinate location at end of Beam - These values are at

the end of the cantilever if the beam has one at the endpdYEnd Global Y coordinate location at end of BeampdZEnd Global Z coordinate location at end of Beam

pdStartSupportX Global X coordinate location of Support at start of Beam – Thesevalues are the same as pdXStart if beam does not have a cantileverat its start

pdStartSupportY Global Y coordinate location of Support at start of BeampdStartSupportZ Global Z coordinate location of Support at start of BeampdEndSupportX Global X coordinate location of Support at end of Beam - These

values are the same as pdX2 if beam does not have a cantilever atits end

pdEndSupportY Global Y coordinate location of Support at end of BeampdEndSupportZ Global Z coordinate location of Support at end of beampdStartCantLength Cantilever length at start of BeampdMidSpanLength Middle span length

pdEndCantLength Cantilever length at end of Beam

GetBeamRigidLinkInfo ([in] long lBeamID, [out] double* dIX, [out] double* dIY, [out] double* dIZ, [out] double* dJX, [out] double* dJY, [out]double* dJZ, [out] long* lIMemberID, [out] long* lJMemberID);

Purpose Determine rigid link end coordinates and supporting member IDs.Parameters lBeamID Unique ID of the beam

dIX X coordinate at the supported end of the rigid link at the Iend of the beam

 dIY Y coordinate at the supported end of the rigid link at the I

end of the beam

dIZ Z coordinate at the supported end of the rigid link at the Iend of the beam

dJX X coordinate at the supported end of the rigid link at the Jend of the beam

dJY Y coordinate at the supported end of the rigid link at the Jend of the beam

dJZ Z coordinate at the supported end of the rigid link at the Jend of the beam

lIMemberID Unique ID of the member supporting the rigid link at the Iend of the beam

lJMemberID Unique ID of the member supporting the rigid link at the Jend of the beam

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 beampdSuppWidthStart Support width perpendicular to beam span at start of beam

Page 363: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 363/450

pdSuppWidthStart Support width perpendicular to beam span at start of beampdSuppLengthEnd Support Length parallel to beam span at end of beampdSuppWidthEnd Support width perpendicular to beam span at end of beam

GetBeamSupportInfo ([in] long IBeamID, [out] EUniqueMemberTypeID* peSupportTypeStart, [out] long* plSupportIDStart, [out] 

EUniqueMemberTypeID* peSupportTypeEnd, [out] long* plSupportIDEnd);Purpose Get information on the end supports of a beam.Parameters IBeamID Beam ID

peSupportTypeStart Support Type at start of Beam (i.e. Column, Beam, Wall)plSupportIDStart Member ID of support at start of beampeSupportTypeEnd Support Type at end of Beam (i.e. Column, Beam, Wall)plSupportIDEnd Member ID of support at end of beam

GetBraceGeomInfo ([in] long lBraceID, [out] long* plBraceLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]double* pdXTop, [out] double* pdYTop, [out] double* pdZTop, [out] double* pdXBottom, [out] double* pdYBottom, [out] double*pdZBottom); 

Purpose Get Brace Geometry information including its location in the 3D model.Parameters lBraceID Unique Brace ID

plBraceLabel Brace Label as seen in modelpeGravOrLat Gravity or Lateral memberpeMaterial Material TypepdXTop Global X coordinate location at top of BracepdYTop Global Y coordinate location at top of BracepdZTop Global Z coordinate location at top of Brace

  pdXBottom Global X coordinate location at bottom of BracepdYBottom Global Y coordinate location at bottom of Brace

pdZBottom Global Z coordinate location at bottom of Brace

GetColIDAtBracedLevel ([in] long nStartColID, [in] EAXIS eAxis, [out] long* plTopStoryColID, [out] long* plBotStoryColID, [out] long*plTopStoryNo, [out] long* plBotStoryNo);

Purpose Determine at which level up a column stack a beam (or slab) frames into the column axisin question. Column is braced in axis by beam, wall, and/or slab. The angle at which abeam is considered bracing a column (and if the deck/slab braces the column) is set bythe 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 beingconsidered braced.

Parameters nStartColID Col ID for a column in the stack to look ateAxis Column local Axis to retrieve braced info aboutplTopStoryColID 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 columnplBotStoryNo Story number of the bottom column

Page 364: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 364/450

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 modelpeGravOrLat Gravity or Lateral memberpeMaterial Material TypepdXBottom Bottom of column global X coordinate locationpdYBottom Bottom of column global Y coordinate locationpdZBottom Bottom of column global Z coordinate locationpdXTop Top of column global X coordinate locationpdYTop Top of column global Y coordinate locationpdZTop Top of column global Z coordinate locationpdOrientation Major axis orientation in degrees. 0 degrees indicates that major

axis is parallel to global X-axis. Positive angle rotates column

counter-clockwise.plAtFnd 0 – Indicates column is not at a foundation level, 1 = Indicates

column is at foundation level

GetColumnLoadSharing ([in] long lColumnID, [out] long* plLoadSharing);Purpose Indicates the type of deck the member is under. 2Parameters lColumnID Unique ID of the column

plLoadSharing -1 = no deck

0 = the column is entirely under a two-way deck1 = the columns ie entirely under a one-way deck

2 = the column is under both a two-way and a one-way deck.

GetColumnRigidLinkInfo ([in] long lColumnID, [out] double* dJX, [out] double* dJY, [out] double* dJZ, [out] long* lIMemberID, [out] long*lJMemberID);

Purpose Determine rigid link end coordinates and supporting member IDs.Parameters lColumnID Unique ID of the column

dJX X coordinate at the supported end of the rigid link at the Jend of the column

dJY Y coordinate at the supported end of the rigid link at the Jend of the column

dJZ Z coordinate at the supported end of the rigid link at the Jend of the column

lIMemberID Unique ID of the member supporting the rigid link at the Iend of the column

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

Page 365: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 365/450

plNumInStack Number of columns in column stackppalStackIDs  Array of unique ID’s. Size of array is plNumInStack

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 IDplNumInStack Number of columns in listppalColIDs  Array of column unique ID’s 

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 stackppalStackIDs  Array of unique ID’s. Size of array is plNumInStack 

Comments This function is similar to GetColumnStack which does not check for material properties.

GetDeckInfo ([in] long lStory, [in] long lDeck, [out] BSTR* pbstrSize, [out] double* pdThickness, [out] long* plNumDeckPoints, [out] double**ppadXpts, [out] double** ppadYpts, [out] double** ppadZpts, [out] long* plNumOpenings);

Purpose to get information about each deck.Parameters lStory Story number

lDeck Deck number (on that specific story)pbstrSize Deck name

  pdThickness Thickness of the deckplNumDeckPoints Number of points in the deck polygon

ppadXpts Array of doubles containing the X coordinates of the deck polygonppadYpts Array of doubles containing the Y coordinates of the deck polygonppadZpts Array of doubles containing the Z coordinates of the deck polygonplNumOpenings Number of openings in the deck

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetFloorTypeInfo ([in] long lFlrTypeNo, [out] BSTR * pbstrFlrTypeID, [out] long* plNumBeams, [out] long* plNumColumns, [out] long*plNumWalls, [out] long * plNumFootings);

Purpose Get information for a given floor type.

Parameters lFlrTypeNo Floor type index starting with 0pbstrFlrTypeID Floor type labelplNumBeams Total number of beams in storyplNumColumns Total number of columns in storyplNumWalls Total number of walls in storyplNumFootings Total number of Footings in story. Footings will only be used if there

are no columns, beams or walls below the footing

Page 366: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 366/450

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 IDplFootLabel The label number in the RAM SSpeMaterial Material TypepdXStart Start global X coordinate locationpdYStart Start global Y coordinate locationpdZStart Start global Z coordinate locationpdXEnd End global X coordinate locationpdYEnd End global Y coordinate locationpdZEnd End global Z coordinate location

pdLeft Assuming footing is parallel to the global X axis - Distance to footingleft 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 centerlinepdBottom Distance to footing bottom edge from centerlinepdZ Footing top of slab (TOS) elevationpdThick Footing thickness

pdAngleFooting angle of rotation wrt global axis - Mostly required for spreadfootings

Comments Note1: For spread footings pdXStart, pdYStart, pdZStart and pdXEnd, pdYEnd, pdZEndwill be identical.

Note2: As of 6/10/03 the footing dimensions are the default values and do not reflect thefooting final design dimensions

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 informationpYCircular Y or Circular grid information

GetGridSysInfo ([in] long lGridSysID, [out] BSTR* pbstrLabel, [out] SGridSysType* peType, [out] double* pdXOffset, [out] double* pdYOffset,[out] double* pdRotation, [out] long* plNumXRadialGrids, [out] long* plNumYCircularGrids);

Purpose Grid system information.Parameters lGridSysID Grid System index number

pbstrLabel Grid system labelpeType Grid System type as eGridOrthogonal, eGridSkewed oreGridRadial

pdXOffset Global x offset of grid systempdYOffset Global Y offset of grid systempdRotation Global rotation of grid systemplNumXRadialGrids Number of X or Radial GridsplNumYCircularGrids Number of Y or Circular Grids

Page 367: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 367/450

plNumYCircularGrids Number of Y or Circular Grids

GetGridSysLabelsAtStory ([in] long lStoryNoOrID, [in] double dXLoc, [in] double dYLoc, [out] long* plGrydSysID, [out] BSTR* pbstrXGridLabel,[out] BSTR* pbstrYGridLabel);

Purpose Get the labels of the grid system intersection at a given story. If no grids are at the given

location the global location of the point is returned.Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique ID

(unique ID is preferred)dXLoc Global X location of pointdYLoc Global Y location of pointplGrydSysID Grid system index numberpbstrXGridLabel X or Radial Grid label at locationpbstrYGridLabel Y or Circular grid label at location

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 storyeMemType Member TypeeMatType Material TypeppalUniqueIDs 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 astory. For more information, see Getting Member Information. 

 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 membersppalUniqueIDs Array of IDs. Size of array is plListSizeplListSize Number of members found.

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

Page 368: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 368/450

GetLatWallGroupGeom ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [out] double *pdXCentroid, [out] double *pdYCentroid, [out] double*pdZCentroid, [out] double *pdAngle, [out] long *plNumWallsColsInGroup, [out] long *palWallsColsListInGroup);

Purpose 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 numberpdXCentroid Global X-coordinate location of wall group centroidpdYCentroid Global Y-coordinate location of wall group centroidpdZCentroid Global Z-coordinate location of wall group centroidpdAngle Angle defining major direction of wallplNumWallsColsInGroup Total number of walls and columns assigned to wall grouppalWallsColsListInGroup List of member Unique ID’s for all walls and columns that

are part of the wall group at the given story. NOTE – Thisarray must be dimensioned to a size of 99 before thefunction is called. The function will then set the unique ID’sin the array and fill the unused spaces with a value of -1

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 upto (plNumFloorTypes – 1) for the last floor type

ppalGridSysID   Array of grid indexes – Array size is plNumGridSysFloorTyp

GetMemberID ([in] long lStoryNo, [in] long lMemNo, [in] EUniqueMemberTypeID eMemType, [out] long* plUniqueID);Purpose 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 typeplUniqueID Member’s Unique ID 

Comments VB/VBA users will need to use this method to get a member ID before they can get anyother information for that member because all the other Get ID methods dimension anarray inside DA and so are not supported by VB/VBA. C++ users can use any one of theGet 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 moreinformation, see Getting Member Information. 

Page 369: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 369/450

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

plMemNoMember index number. This would be the value lMemNo that wouldbe sent into the method GetMemberID. 

peMemType Member type used to find members

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

GetNumBeamsOnStory ([in] long lStoryNo, [out] long * plNumBeams);Purpose Get total number of beams on a storyParameters lStoryNo Story number starting with 0 for the first level

plNumBeams Total number of beams in storyComments Starting with v9.0 use GetNumMembersOnStory( ). For more information see Get

Member Information.

GetNumDecksOnStory ([in] long lStory, [out] long* plNumDecks);Purpose to get the number of decks on a given story.

Parameters lStory  Story numberplNumDecks  Number of decks on the given story.

GetNumFloorTypes ([out] long* plNumFloorTypes); Purpose Total number of floor types defined in RAM Modeler  Parameters plNumFloorTypes  Total number of floor typeComments Starting with v9.0 use GetNumMembers( ) 

GetNumGridSysInModel ([out] long* plNumGridSys);Purpose Total number of grid systems defined in model.Parameters plNumGridSys  Total number of grid systems defined in model

GetNumGridSysOn_InFloorTyp ([in] long lFlrTypeNo, [out] long* plNumGridSysFloorTyp);Purpose Total number of grid systems that are visible (on) for a given floor type.

ParameterslFlrTypeNo  Floor type number starting with 0 for the first one and going

up to (plNumFloorTypes – 1) for the last floor typeplNumGridSysFloorTyp  Total number of grid systems that are on given floor type

GetNumGridSysOn InStory ([in] long lStoryNoOrID [out] long* plNumGridSysStory);

Page 370: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 370/450

GetNumGridSysOn_InStory ([in] long lStoryNoOrID, [out] long* plNumGridSysStory);Purpose Total number of grid systems that are visible (on) for a given story.

ParameterslStoryNoOrID Story index starting with 0 for the first level or Story unique

ID (unique ID is preferred)plNumGridSysStory  Total number of grid systems that are on a given story

GetNumStories ([out] long* plNumStories);Purpose Get number of story levels in modelParameters plNumStories Number of storiesComments Starting with v9.0 use GetNumMembers( ) to get the number of stories in the

model. 

GetNumStoryPerimeters ( [in] long lStoryNoOrID, [out] long* plNumPerimeters );Purpose Total number of grid systems that are visible (on) for a given story.

ParameterslStoryNoOrID Story index starting with 0 for the first level or Story unique

ID (unique ID is preferred)

plNumPerimeters  Total number of slab edge perimeters on a given story

GetStoryConcSlabThicknessArea ([in] long lStoryNoOrID, [out] long* plNumSlabAreas, [out] double** ppadThickness, [out] double**ppadArea,[in] BSTR** ppbstrLabels);

Purpose 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 thicknessppadArea List of slab areas

ppbstrLabels List of slab labels

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)pdStoryElev Story elevation from the ground level

GetStoryInfo ([in] long lStoryNo, [out] BSTR * pbstrStoryID, [out] BSTR * pbstrFloorID, [out] double* pdFlrHeight, [out] long* plNumBeams, [out]long* plNumColumns, [out] long * plNumWalls, [out] long * plNumBraces, [out] long * plNumFootings);

Purpose 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 LabelpbstrFloorID Floor type labelpdFlrHeight Story heightplNumBeams Total number of beams in storyplNumColumns Total number of columns in story

Page 371: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 371/450

p yplNumWalls Total number of walls in storyplNumBraces Total number of braces in storyplNumFootings 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.

GetStoryLabel ([in] long lStoryNum, [out] BSTR* pbstrStoryLabel);Purpose Get story labelParameters lStoryNum Story number starting with 0 for the first level and going up to

(plNumStories – 1) for the top (roof) levelpbstrStoryLabel Story Label

GetStoryPerimeter ( [in] long lStoryNoOrID, [in] long lPerimeter, [out] long* pplXpts, [out] long* pplYpts, [out] long* pplZpts );Purpose Total number of grid systems that are visible (on) for a given story.Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique

ID (unique ID is preferred)lPerimeters  Perimter indexpplXpts Array of X coordinates for the perimeter indiciespplYpts Array of Y coordinates for the perimeter indiciespplZpts Array of Z coordinates for the perimeter indicies

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 splice0 = FALSE, there is not a splice

GetWallGeomInfo ([in] long lWallID, [out] long* plWallLabel, [out] EFRAMETYPE* peGravOrLat, [out] EMATERIALTYPES* peMaterial, [out]double* pdXTopStart, [out] double* pdYTopStart, [out] double* pdZTopStart, [out] double* pdXTopEnd, [out] double* pdYTopEnd, [out]double* pdZTopEnd, [out] double* pdZBottomStart, [out] double* pdZBottomEnd, [out] long* plStartAtFnd, [out] long* plEndAtFnd); 

Purpose Get wall geometry information.Parameters lWallID The unique Wall ID

plWallLabel The label number in the RAM SSpeGravOrLat Gravity or Lateral memberpeMaterial Material TypepdXTopStart Top start corner global X coordinate locationpdYTopStart Top start corner global Y coordinate locationpdZTopStart Top start corner global Z coordinate locationpdXTopEnd Top end corner global X coordinate locationpdYTopEnd Top end corner global Y coordinate locationpdZTopEnd Top end corner global Z coordinate locationpdZBottomStart Wall lower coordinate elevation corresponding to start corner

dZB tt E d W ll l di t l ti di t d

Page 372: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 372/450

pdZBottomEnd Wall lower coordinate elevation corresponding to end cornerplStartAtFnd 1= start of wall specified is at a foundation levelplEndAtFnd 1= end of wall specified is at a foundation level

GetWallLoadSharing ([in] long lWallID, [out] long* plLoadSharing);Purpose Indicates the type of deck the member is under.Parameters lWallID Unique ID of the column

plLoadSharing -1 = no deck0 = the column is entirely under a two-way deck1 = the columns ie entirely under a one-way deck2 = the column is under both a two-way and a one-way deck.

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

IsColumnAHanger ([in] long lColID, [out] BOOL* bHanger);Purpose Determine if a column is a standard or hanging column.Parameters lColID Unique ID of the column

bHanger 1 if hanger, 0 if standard column

IsItAnOffsetColumn ([in] long lColID, [out] BOOL* pbOffsetCol);Purpose Determine if a column is offset.

Parameters lColID Unique ID of the columnpbOffsetCol 1 if it is offset, 0 if it is not offset

PointIsExposed ([in] long lStoryNoOrID, [in] double dX, [in] double dY, [retval, out] long * plPtExposed);Purpose 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 exposed3. the point is inside the diaphragm but not inside any opening and therefore NOTexposed.

Parameters lStoryNoOrID Story index starting with 0 for the first level or Story unique ID(unique ID is preferred)

dX X-coorddY Y-coordplPtExposed 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 apoint is “not exposed” it is attached to the diaphragm.

Page 373: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 373/450

Reset ();;Purpose Internal use only.

IModelGeometry2

Philosophy:  (see ModelGeometry1 above)

GetBeamSpanInformation ([in] long lBeamID, [out] double * pdLeftCantlLen, [out] double * pdMidSpanLength, [out] double *pdRightCantlLength, [out, retval] long* plResult);

Purpose Get span lengths for beam.Parameters lBeamID The unique beam ID

pdLeftCantlLen Length of left cantilever

pdMidSpanLength Length of mid spanpdRightCantlLength Length of right cantileverplResult 0 = success, greater than 0 = an error occurred.

GetColumnSupportInfo ([in] long lColumnID, [in, out] long *plMemberID, [in, out] EUniqueMemberTypeID *peSupportType, [in, out] BOOL*pbAtFoundation, [out,retval] long* plRetVal);

Purpose Get the column's controlling support member. If there is more than one member

supporting the column, the order of priority is Column, Wall and then beam.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 typepbAtFoundation Indicates that the bottom of lColumnID is at the foundation

levelIf a foundation is assigned to the bottom of the column thenthe foundation ID and type will be returned

plRetVal Error code. If value is non zero then check GetLastError

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetFinalPolygonPointsArray ( [in] long lPolygonID,[out] long lPolygonIndex,[out] long lArraySize, [out] SCoordinate paLoc, [out] double, pdArea,[out] double pdPerimeter, [out,retval] long* plRetVal );

Purpose Get the column's controlling support member. If there is more than one membersupporting the column, the order of priority is Column, Wall and then beam.

Parameters lPolygonID Polygon unique IDlPolygonIndex Polygon indexlArraySize Size of the array of indices

Page 374: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 374/450

paLoc Array of indicespdArea Polygon areapdPerimeter Perimeter lengthplRetVal 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

GetInterfacePointer();

Purpose Internal use only.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetLatWallGroupGeom ([in] long lStoryNoOrID, [in] long lWallGroupIndex, [out] long* plWallGroupLabel, [out] double *pdXCentroid, [out] double*pdYCentroid, [out] double *pdZCentroid, [out] double *pdAngle, [out] long *plNumWallsInGroup, [out] long *plWallListInGroup, [out,

retval] long* plResult);Purpose 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 storyplWallGroupLabel Wall group labelpdXCentroid Wall group Centroid location in the global X-axispdYCentroid Wall group Centroid location in the global Y-axispdZCentroid Wall group Centroid location in the global Z-axispdAngle Wall group rotation angle with 0.0 degrees parallel to X-axisplNumWallsInGroup Total number of walls and columns in groupplWallListInGroup List of unique ID’s for all walls and columns in group. Array must

be dimensioned to be of size 100plResult Return error code.

GetMemberInfoAtColumn ([in] long lColumnID, [in] EDA_MEMBER_LOC eColumnEnd, [in] double dBeamToMajorFaceAngle, [out] long*plColumnAboveID, [in] long lNumBeams, [out] BEAM_INFO_AT_COLUMN* paBeamAtColumn, [in] long lNumBraces, [out]BRACE_INFO_AT_COLUMN* paBraceAtColumn);

Purpose Get information on members that are framing into column.

Page 375: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 375/450

Parameters lColumnID Column unique IDeColumnEnd 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 axisplColumnAboveID Unique ID of column framing into top of lColumnIDlNumBeams Size of paBeamAtColumnpaBeamAtColumn Array of information for beams framing into columnlNumBraces Size of paBraceAtColumnpaBraceAtColumn Array of information for braces framing into column

GetMemberInfoAtPointOnStory ( [in] double dx, [in] double dy, [in] long lStoryID, [in, out] EUniqueMemberTypeID* peSupportType, [in, out] long*plSupportID, [out, retval] long* plRetval );

Purpose To determine the member that is located at a point in space on a story. 3.Parameters dx, dy Point in plan to locate member under

lStoryID The story Unique ID

peSupportTypeThe type of member that is at this point in space on the storyprovided (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.

GetNumFinalPolygonPoints ( [in] long lPolygonID, [out] long lPolygonIndex, [out] long plNumPoints, [out, retval] long* plRetval );Purpose To determine the member that is located at a point in space on a story. 3.

Parameters lPolygonID Polygon unique IDlPolygonIndex Polygon indexplNumPoints Number of polygon indicesplRetval

GetNumFinalPolygons ( [in] long lPolygonID, [in] long lMaxNumEdges, [in] BOOL bAllowDuplicatePoints, [out] long plNumPolygons, [out, retval]long* plRetval );

Purpose To determine the member that is located at a point in space on a story. 3.Parameters lPolygonID Polygon unique ID

lMaxNumEdges Maximum number of edgesbAllowDuplicatePoints True if duplicate points are allowedplNumPolygons Number of polygonsplRetval

GettNumMembersAtColumn ( [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

Page 376: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 376/450

dBeamToMajorFaceAngle If angle between column major axis and beam is less than orequal to this angle, the beam is assumed to be framing intocolumn major axis

plNumBeams Total number of beams framing into column

plNumBraces Total number of braces framing into column

GetNumPolygonRawPoints ([in] long lPolygonID, [in] BOOL bClipToPerimeter, [in, out] long* plNumPoints, [out,retval] long* plRetVal);Purpose Get the number of points that made of a polygon.Parameters lPolygonID Polygon ID

bClipToPerimeter True = clip the raw polygon to the slab edge perimiterplNumPoints Number of Points that make up the polygonplRetVal Error code. If value is non zero then check GetLastError

GetPolygonPropID ([in] long lPolygonID, [in, out] long* plPropID, [in, out] EUniqueMemberTypeID* pePropertyType, [out,retval] long* plRetVal);Purpose 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 IDplPropID Return Property ID. Set to -1 if the polygon does not have a propertypePropertyType Return Property TypeplRetVal Error code. If value is non zero then check GetLastError

Comment Used for eTypeDeckOrSlab, eTypeSurfaceLoading, eTypeFoundationMatSlab.Must check plPropID to make sure it is not -1 before using plPropID for any otherfunction calls 

 GetPolygonRawPointsArray ([in] long lPolygonID, [in] BOOL bClipToPerimeter, [in] long lArraySize, [in, out] SCoordinate* paLoc, [in, out]

double* pdArea, [in, out] double* pdPerimeter, [out,retval] long* plRetVal);Purpose Get array of points defining the polygon.Parameters lPolygonID Polyon Unique ID

bClipToPerimeter True = clip the raw polygon to the slab edge perimiterlArraySize Expected Size of paLocpaLoc Polygon corner coordinatespdArea Area of polygonpdPerimeter Perimiter length of polygonplRetVal Error code. If value is non zero then check GetLastError

GetWallSupportInfo ( [in] long lWallID, [out] EUniqueMemberTypeID peSupportTypeStart, [out] long plSupportIDStart, [out]

EUniqueMemberTypeID peSupportTypeEnd, [out] long plSupportIDEnd, [out,retval] long* plRetVal);Purpose Get array of points defining the polygon.Parameters lWallID Wall unique ID

peSupportTypeStart EUniqueMemberTypeID plSupportIDStart Start support unique IDpeSupportTypeEnd EUniqueMemberTypeID plSupportIDEnd End support unique IDplRetVal Error code. If value is non zero then check GetLastError

Page 377: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 377/450

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 changedby another module.

 ActionOccurred ();Purpose Internal use only.

 ActionWithCountOccurred ();Purpose Internal use only.

DesignIsValid ( [in] WhichModule eWhich, [out] BOOL bDesignIsValid );Purpose To find out the status of a module.Parameters eWhich Which module to get the status of.

bDesignIsValid True if design is valid

GetDispInterfacePointerByEnum ();

Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Purpose To get information about why a method failed.Parameters pbstrShortError Short message about the failure

pbstrLongError Longer message about the failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

GetNumOpeningChanges ();Purpose Internal use only.

GetNumWallChanges ();Purpose Internal use only.

GetOpeningChanges ();

Page 378: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 378/450

GetOpeningChanges ();Purpose Internal use only.

GetWallChanges ();

Purpose Internal use only.

InitializeModelStatus ();Purpose Internal use only.

IsModelDirty ();Purpose Internal use only.

KillModelStatus ();Purpose Internal use only.

RedesignMe ();Purpose Internal use only.

ReinTableChanged ();Purpose Internal use only.

Reset ();

Purpose Internal use only.

ResetOpeningChanges ();Purpose Internal use only.

ResetWallChanges ();Purpose Internal use only.

ShowModStatDialogFor ();Purpose Internal use only.

WhatsMyStatus ( [in] WhichModule eWhich, [out] model_status* peStatus );Purpose To find out the status of a module.

Parameters eWhich Which module to get the status of.peStatus Status of the requested module.

IRamDataAccess2

Page 379: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 379/450

Philosophy: To provide access to the version info for DataAccess.

IsModelInUse ([out, retval] long);

Purpose Determine if the model is in use by another application. 1.reval 1 if model is in use, 0 if not.

GetVersion ([out, retval] double *pdVersion);Purpose Gets the versions of DataAccess being accessed. 1.Parameters pdVersion Version number, i.e. 9.01

ISteelColumnState

Philosophy: To provide information on the state of Steel Column

GetColAISCSelection ( [out] string *pbstrSection, [out] long *plStlColBS5950_2000, [out, retval] long *plRetVal );Purpose Get the steel column code selection.Parameters pbstrSection Code selection label

plStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

 GetColPlateInfo ( [out] double *pdPlateFPC, [out] double *pdPlateFy, [out] double *pdPlateMinFaceDim, [out] double *pdPlateMinSideDim, [out]

double *pdPlateIncDim, [out] double *pdPlateIncThick, [out] double *pdPlateMinFootPar, [out] double *pdPlateMinFootPerp, [out] double*pdMinPlateFootDepth, [out, retval] long *plRetVal );

Purpose Get the baseplate criteria.Parameters pdPlateFPC Concrete compressive strength

pdPlateFy Plate yield strengthpdPlateMinFaceDim Minimum dimension from face of columnpdPlateMinSideDim Minimum dimension from side of columnpdPlateIncDim Plate dimension incrementpdPlateIncThick Plate thickness incrementpdPlateMinFootPar Minimum footing width parallel to the columnpdPlateMinFootPerp Minimum footing width perpendicular to the columnpdMinPlateFootDepth Minimum footing depth

plRetVal Error code. If value is non zero then check GetLastError

GetColumnSkipLoaded ( [out] BOOL *pbSkipLoaded, [out, retval] long *plRetVal );Purpose Get the skip loading criteria.Parameters pbSkipLoaded True if skip loading is selected

plRetVal Error code. If value is non zero then check GetLastError

G tD kB C l ( [ t] l * lD kB C l [ t t l] l * lR tV l )

Page 380: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 380/450

GetDeckBracesColumn ( [out] long *plDeckBracesColumn, [out, retval] long *plRetVal );Purpose Get the skip loading criteria.Parameters plDeckBracesColumn 1 if deck braces column is selected, 0 if not

plRetVal Error code. If value is non zero then check GetLastError

GetDispInterfacePointerByEnum ();Purpose Internal use only.

GetInterfacePointer();

Purpose Internal use only.

GetLastError([out] BSTR* pbstrShortError, [out] BSTR* pbstrLongError, [out] long* plErrorID);

Purpose To get information about why a method failed.Parameters pbstrShortError Short message about the failure

pbstrLongError Longer message about the failureplErrorID Error codeComments This method is implemented in each interface. Calling it from any interface will

return the last error regardless of which interface generated the error.

GetMaxBraceAngle ( [out] double *pdVal, [out, retval] long *plRetVal );Purpose Maximum angle from column axis for which beam braces the column.

Parameters pdVal Maximum angleplRetVal Error code. If value is non zero then check GetLastError

GetMaxSplitReactionAngle ( [out] double *pdVal, [out, retval] long *plRetVal );Purpose Maximum angle from column axis at which beam reaction is not split between column

sides.Parameters pdVal Maximum angle

plRetVal Error code. If value is non zero then check GetLastError

GetNumColLines ( [out] long *plNumColLines, [out, retval] long *plRetVal );Purpose The number of steel column lines.Parameters plNumColLines Number of steel column lines

plRetVal Error code. If value is non zero then check GetLastError

GetPlateAISCSelection ( [out] string *pbstrSection, [out] long *plStlColBS5950_2000, [out, retval] long *plRetVal );Purpose Get the base plate code selection.Parameters pbstrSection Code selection label

plStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

GetStlColBS5950200 ( [out] long *plVal, [out, retval] long *plRetVal );

Page 381: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 381/450

Purpose Get the base plate code selection.plVal 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

GetTrialSizeData ( [out] long *plNumTrialSizes, [out] BSTR *pbstrWTrialSize1, [out] BSTR *pbstrWTrialSize2, [out] BSTR *pbstrWTrialSize3,[out] BSTR *pbstrTTrialSize1, [out] BSTR *pbstrTTrialSize2 , [out] BSTR *pbstrTTrialSize3, [out] BSTR *pbstrPTrialSize1, [out] BSTR*pbstrPTrialSize2, [out] BSTR *pbstrPTrialSize3, [out] BOOL *pbUseTG1, [out] BOOL *pbUseTG2 , [out] BOOL *pbUseTG3, [out, retval] long*plRetVal );

Purpose Trial group criteria.Parameters plNumTrialSizes Number of trial sizes

pbstrWTrialSize1 I Section trial group 1 labelpbstrWTrialSize2 I Section trial group 2 labelpbstrWTrialSize3 I Section trial group 3 labelpbstrTTrialSize1 Rectangular HSS trial group 1 labelpbstrTTrialSize2 Rectangular HSS trial group 2 labelpbstrTTrialSize3 Rectangular HSS trial group 3 labelpbstrPTrialSize1 Round HSS trial group 1 labelpbstrPTrialSize2 Round HSS trial group 2 labelpbstrPTrialSize3 Round HSS trial group 3 labelpbUseTG1 True if trial group 1 is selectedpbUseTG2 True if trial group 2 is selectedpbUseTG3 True if trial group 3 is selectedplRetVal Error code. If value is non zero then check GetLastError

 Reset ( );

Purpose Internal use only.

SetColAISCSelection ( [in] string bstrSection, [in] long lStlColBS5950_2000, [out, retval] long *plRetVal );Purpose Set the steel column code selection.Parameters bstrSection Code selection label

lStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

SetColPlateInfo ( [in] double dPlateFPC, [in] double dPlateFy, [in] double dPlateMinFaceDim, [in] double dPlateMinSideDim, [in] doubledPlateIncDim, [in] double dPlateIncThick, [in] double dPlateMinFootPar, [in] double dPlateMinFootPerp, [in] double dMinPlateFootDepth, [out,retval] long *plRetVal );

Purpose Set the baseplate criteria.Parameters dPlateFPC Concrete compressive strength

dPlateFy Plate yield strengthdPlateMinFaceDim Minimum dimension from face of columndPlateMinSideDim Minimum dimension from side of columndPlateIncDim Plate dimension incrementdPlateIncThick Plate thickness incrementdPlateMinFootPar Minimum footing width parallel to the columndPl t Mi F tP Mi i f ti idth di l t th l

Page 382: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 382/450

dPlateMinFootPerp Minimum footing width perpendicular to the columndMinPlateFootDepth Minimum footing depthplRetVal Error code. If value is non zero then check GetLastError

SetColumnSkipLoaded ( [in] BOOL bSkipLoaded, [out, retval] long *plRetVal );Purpose Set the skip loading criteria.Parameters bSkipLoaded True if skip loading is selected

plRetVal Error code. If value is non zero then check GetLastError

SetDeckBracesColumn ( [in] long lDeckBracesColumn, [out, retval] long *plRetVal );Purpose Set the skip loading criteria.Parameters lDeckBracesColumn 1 if deck braces column is selected, 0 if not

plRetVal Error code. If value is non zero then check GetLastError

SetMaxBraceAngle ( [in] double dVal, [out, retval] long *plRetVal );

Purpose Maximum angle from column axis for which beam braces the column.Parameters dVal Maximum angleplRetVal Error code. If value is non zero then check GetLastError

SetMaxSplitReactionAngle ( [in] double dVal, [out, retval] long *plRetVal );Purpose Maximum angle from column axis at which beam reaction is not split between column

sides.Parameters dVal Maximum angle

  plRetVal Error code. If value is non zero then check GetLastError

SetPlateAISCSelection ( [in] string bstrSection, [in] long lStlColBS5950_2000, [out, retval] long *plRetVal );Purpose Set the base plate code selection.Parameters bstrSection Code selection label

lStlColBS5950_2000 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

SetStlColBS5950200 ( [in] long lVal, [out, retval] long *plRetVal );Purpose Set the base plate code selection.

lVal 1 if BS 5950 2000, 0 if BS 5950 1990plRetVal Error code. If value is non zero then check GetLastError

SetTrialSizeData ( [in] long lNumTrialSizes, [in] BSTR bstrWTrialSize1, [in] BSTR bstrWTrialSize2, [in] BSTR bstrWTrialSize3, [in] BSTRbstrTTrialSize1, [in] BSTR bstrTTrialSize2 , [in] BSTR bstrTTrialSize3, [in] BSTR bstrPTrialSize1, [in] BSTR bstrPTrialSize2, [in] BSTRbstrPTrialSize3, [in] BOOL bUseTG1, [in] BOOL bUseTG2 , [in] BOOL bUseTG3, [out, retval] long *plRetVal );

Purpose Trial group criteria.Parameters lNumTrialSizes Number of trial sizes

bstrWTrialSize1 I Section trial group 1 labelbstrWTrialSize2 I Section trial group 2 labelbstrWTrialSize3 I Section trial group 3 labelbstrTTrialSize1 Rectangular HSS trial group 1 label

Page 383: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 383/450

bstrTTrialSize1 Rectangular HSS trial group 1 labelbstrTTrialSize2 Rectangular HSS trial group 2 labelbstrTTrialSize3 Rectangular HSS trial group 3 labelbstrPTrialSize1 Round HSS trial group 1 label

bstrPTrialSize2 Round HSS trial group 2 labelbstrPTrialSize3 Round HSS trial group 3 labelbUseTG1 True if trial group 1 is selectedbUseTG2 True if trial group 2 is selectedbUseTG3 True if trial group 3 is selectedplRetVal Error code. If value is non zero then check GetLastError

ISteelColumnState2

Philosophy: To provide information on the state of Steel Column

BOOL bMakeBasePlateSquarePurpose Get/set square baseplate criterionParameters bMakeBasePlateSquare Boolean input/output

 

RamDataAccess1

Philosophy: This interface is used exclusively for obtaining pointers to other interfaces.

GetInterfacePointer([in] REFIID riid, [out, retval] LPUNKNOWN* pVal);

Purpose Returns the pointer to a specific interface.Parameters riid Interface ID

pVal Interface pointer is returned via this pointerComments 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 interfaceComments This should not be used for VB/VBA or macro languages 

GetDispInterfacePointer ([in] REFIID riid, [out, retval] LPDISPATCH* pVal);Purpose Get a DA interface pointer that can be used in automation compatible languages

Page 384: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 384/450

using the EINTERFACES enumerator.Parameters riid Interface ID

pVal Automation Compatible Interface pointer is returned via this pointerComments 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.

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 failureplErrorID Error code

Comments This method is implemented in each interface. Calling it from any interface willreturn the last error regardless of which interface generated the error.

 

Common Structure Definitions

BAR_SPACING

Reinforcement spacing information for concrete column 

Type Variable Name Commentsdouble dClearCover Reinforcement clear cover. User entered value. If set to zero, code value will be used.

double dFlexMax Flexural reinforcement maximum spacing. User entered value. If set to zero, code value will be used.

double dFlexMin Flexural reinforcement minimum spacing. User entered value. If set to zero, code value will be used.

double dReinMax Flexural reinforcement ratio maximum limit. User entered value. If set to zero, code value will be used.

double dReinMin Flexural reinforcement ratio minimum limit. User entered value. If set to zero, code value will be used.double dSpiralMax Spiral maximum spacing. User entered value. If set to zero, code value will be used.

double dSpiralMin Spiral minimum spacing. User entered value. If set to zero, code value will be used.

double dTiesMax Tie maximum spacing. User entered value. If set to zero, code value will be used.

double dTiesMin Tie 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

int nFlexMax Flexural reinforcement maximum spacing. 0 = use code, 1 = use user value

int nFlexMin Flexural reinforcement minimum spacing. 0 = use code, 1 = use user value

Page 385: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 385/450

int nReinMax Flexural reinforcement ratio maximum limit. 0 = use code, 1 = use user value

int nReinMin Flexural reinforcement ratio minimum limit. 0 = use code, 1 = use user value

int nSpiralMax Spiral maximum spacing. 0 = use code, 1 = use user value

int nSpiralMin Spiral minimum spacing. 0 = use code, 1 = use user value

int nTiesMax Tie maximum spacing. 0 = use code, 1 = use user value

int nTiesMin Tie minimum spacing. 0 = use code, 1 = use user value

BEAM_INFO_AT_COLUMN

Information on beam framing into column

Type Variable Name Commentsdouble dBeamColumnAngle Angle in plan between beam and column relative to column major axis

double dVerticalSlopeAngle Angle in vertical plane - positive indicates that the far end of brace is above the column joint

EBeamSpanType  eSpan Left, middle, right of span. When there is a cantilever there will be two entries in joint data

EDA_MEMBER_LOC  eSupportEnd Left or right endlong lBeamID Beam’s Unique ID number  

long lColumnFace 1-Major top, 2-minor right, 3-major bottom, 4-minor left

long lMajorMomFixed 0 = released, 1 = fixed

long lMinorMomFixed 0 = released, 1 = fixed

long lTorFixed 0 = released, 1 = fixed

BRACE_INFO_AT_COLUMN

Information on brace framing into column

Type Variable Name Commentsdouble dBraceColumnAngle Angle in plan between brace and column relative to column major axis

double dVerticalSlopeAngle Angle in vertical plane positive indicates that the far end of brace is above the column joint

EDA_MEMBER_LOC  eBraceEnd Bottom, Top

long lBraceID Brace Unique ID number

long lColumnFace 1-Major top, 2-minor right, 3-major bottom, 4-minor left

long lMajorMomFixed 0 = released, 1 = fixed

long lMinorMomFixed 0 = released, 1 = fixed

long lTorFixed 0 = released, 1 = fixed

EDA_REIN_PLACE_SET

Bar set information

Type Variable Name Commentsdouble dAs_prv Provided area of reinforcement

double dAs_Req Required area of reinforcement

Page 386: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 386/450

_ q q

double dBarSpacing Reinforcement spacing provided

double dCapacity Capacity of provided rebar

EDA_SEG_SET_INFO

Bar set placement location information

Type Variable Name CommentsBOOL bEndSup TRUE = There is a support at end of segment

BOOL bStartSup TRUE = There is a support at start of segment

double dEndSeg End segment location

double dMaxVal Maximum value in segment

double dMinVal Minimum value in segment

double dStartSeg Start segment location

SAnalysisCaseInfo

 Analysis case information. Each load case will generate one or more analysis cases.

Type Variable Name Comments

BOOL bAnalyzed True = Member Forces are available for this Analysis Case. In some situations, an analysis case can beanalyzed by one module but not another.

BOOL bGenerated True = generated Analysis case. For positive, negative and Sum live load cases this would not be true.BSTR bstrLabel Analysis load case label

ELoadCaseType  eLoadType Load case type for this analysis load case

EAnalysisSubType  eSubType Indicates the analysis sub type as positive, negative or sum

long lLoadCaseID Load Case UID that the analysis load case originated from

long lUniqueID Analysis Load Case UID.

SBAR_PATTERN

Bar Pattern definition

Type Variable Name CommentsBOOL bValid TRUE if both bars appear in the Rein_prop table and they are both selected

char cPatternLabel Bar pattern label

long lGroupNumber Reference back to the pattern group to which this pattern belongs

long lUniqueID Unique to each pattern – this id number is never reused.

SREIN_PROP  rpLongBarReinProp Longitudinal reinforcement properties

SREIN_PROP  rpTieBarReinProp Transverse reinforcement properties

Page 387: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 387/450

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 CommentsBOOL bSetPassed TRUE = bar set has passed design checks from start to end of bar set.

long eBarLayerLoc Cast to EBAR_PLACEMENT

long eBarPlacement Indicates if bar set is for top or bottom reinforcement . Cast to EBAR_PLACEMENT

long eEndCondition Cast to EBAR_END_CONDITION

long eStartCondition Cast to EBAR_END_CONDITION

float fAs_prv Provided area of steel

float fAs_Req Required area of steel

float fBarDepth Reinforcement bar effective depth

float fBarSpacing Reinforcement spacing provided

float fCapacity Capacity of provided reinforcementfloat fDevelLength Bar development length

float fDevelLengthEnd Development length for end of bar set

float fDevelLengthStart Development length for start of bar set

float fEndLoc Same as fStartLoc

float fStartLoc

float fTrueBarDepth If value is different from dBarDepth then it is part of two layer set

long lMaxBarsInLayer Maximum number of bars in any layer if lNumLayersOrLegs = 2 and bar set is not transverse

long lNumBars Number of bars in bar set

long lNumLayersOrLegs Number of layers for multi layer reinforcement in beams Or number of shear legs if bar set is for transversereinforcement

long lReinIndexNum Reinforcement bar index number used to find bar properties. lReinIndexNum can be used to directly indexinto the array that is returned by GetRebarTable_ConcBeam

long lSetID Bar set ID

SBM_BAR_SET_BSTR

Bar Set information string. A bar set is a set of reinforcement bars that all have the same properties and are located in the sameplace. Note there may be more than one bar set in a given location for longitudinal bars.

Type Variable Name CommentsBSTR bstrBarLabel Bar set label

long lSetID Bar set ID

SBM_RES

Individual concrete beam span design results

Page 388: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 388/450

Type Variable Name Commentslong eDeflectionResultsState State of deflection results

float fBarSpacingBotLong Bottom longitudinal bar spacing

float fBarSpacingSide Side reinforcement spacing (not used in v8.0.2 or 8.1)float fBarSpacingTopLong Top longitudinal bar spacing

float fBarSpacingTrans Transverse bar spacing

float fBotReinRatio Bottom reinforcement ratio

float fBotReinRatioLoc Location where fBotReinRatio was calculated

float fClearCoverBottom Clear cover to bottom bars

float fClearCoverSide Clear cover to side bars

float fClearCoverTop Clear cover to top bars

float fDeflectionValueError Deflection value error

float fdShearCheckLocFromFace Location of shear check from face of support

float fTopReinRatio Top reinforcement ratio

float fTopReinRatioLoc Location where fTopReinRatio was calculated

float fTorsionCapPrv Provided torsional capacityfloat fTorsionCapReq Required torsional capacity

float fTrueBarCoverBot Same as fTrueBarCoverTop for bottom bars

float fTrueBarCoverTop True bar cover to top reinforcement calculated from actual clear cover, transverse reinforcement , longitudinaltop bar diameters and number of layers

long lBeamLineID Beam line ID

long lBeamUniqueID Unique Beam ID

float lBotLongBarSpacingError Design warning code associated with bottom bars spacing

long lBotReinRatioComboID Combo ID for max rein ratio

long lBotReinRatioError Similar to lTopReinRatioError for bottom barslong lDeflectionErrror Deflection error code

long lFlexBarBotError Design warning code for bottom flexural reinforcement

long lFlexBarTopError Design warning code for top flexural reinforcement

long lSideLongBarSpacingError Design warning code for Side reinforcement spacing (not used in v8.0.2 or 8.1)

long lSpanIndex Order of this beam in beam line starting with 0 for first beam

long lStory Story where beam line is located

long lTopLongBarSpacingError Design warning code associated with top bars spacing

long lTopReinRatioComboID Combo ID for maximum reininforcement ratio

long lTopReinRatioError Design warning code associated with reinforcement ratio check

long lTorsionError Design warning code for torsional capacity check

long lTransBarError Design warning code associated with transverse bars

long lTransBarSpacingError Design warning code associated with transverse bars spacinglong lTrueBarCoverBotError Same as lTrueBarCoverTopError for bottom bars

long lTrueBarCoverTopError Design warning code for fTrueBarCoverTop verses actual user defined bar cover

SBM_RES_BSTR

Beam design message strings.

Page 389: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 389/450

Type Variable Name CommentsBSTR bstrBotCoveMsg Bottom cover message

BSTR bstrBotLongBarSpacingMsg Bottom longitudinal bar spacing message

BSTR bstrBotReinRatioMsg Bottom reinforcement ratio messageBSTR bstrDeflectionMsg Deflection message

BSTR bstrDesignMark Design Mark

BSTR bstrFlexBarBotMsg Bottom flexural bar message

BSTR bstrFlexBarTopMsg Top flexural bar message

BSTR bstrSectionErrors Section error message

BSTR bstrSideLongBarSpacingMsg Side longitudinal bar spacing message

BSTR bstrTopCoverMsg Top Cover spacing message

BSTR bstrTopLongBarSpacingMsg Top longitudinal bar spacing message

BSTR bstrTopReinRatioMsg Top reinforcement ratio message

BSTR bstrTorsionMsg Torsion message

BSTR bstrTransBarMsg Transverse bar messageBSTR bstrTransBarSpacingMsg Transvers bar spacing message

long lBeamUniqueID Beam unique ID

SBML_RES

Concrete beam line design result which relate to all the beams in the beam line

Type Variable Name CommentsBOOL bLongBarCheckBot Similar to bTransBarCheck for longitudinal bottom reinforcement

BOOL bLongBarCheckTop Similar to bTransBarCheck for longitudinal top reinforcement

BOOL bReqFlxReinOnly TRUE = Only flexure required reinforcement data is available. There is no reinforcement avalable

BOOL bTransBarCheck TRUE = Transverse Reinforcement was checked but not optimized.FALSE = Transverse Reinforcement was both optimized and checked

double dVersion Data version number only to be used by RAM

long eResultState Map to ERESULTS_STATE

long eUserSpecState EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design

long lBeamLineID Beam line number

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 lStory Story number starting with 0 for the first story

SCOL_PATRES

Concrete column bar pattern results

Page 390: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 390/450

p

Type Variable Name CommentsBOOL 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 dBarSpacingMaj Longitudinal Bar spacing parallel to major direction

double dBarSpacingMin Longitudinal Bar spacing parallel to 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 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

double dCapRatioReqAxial Required axial capacity for controlling combo

double dCapRatioReqMMajorBot Required Major moment at bottom capacity for controlling combo

double dCapRatioReqMMajorTop Required Major moment at top capacity for Controlling combodouble dCapRatioReqMMinorBot Required Minor moment at bottom capacity for controlling combo

double dCapRatioReqMMinorTop Required Minor moment at top axial capacity for controlling combo

double dClearCover Bar clear cover to transverse reinforcement

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 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 dKlr_Major KL/r ratio for major axis bending

double dKlr_Minor KL/r ratio for minor axis bendingdouble 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 dMaxTensionStressRatio Max bar tension stress ratio used for splice selection

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 dPu_Major Factored Axial load for controlling slenderness case in major direction

double dPu_Minor Factored Axial load for controlling slenderness case in minor direction

double dReinRatio Pattern reinforcement ratio

double dReinRatioMax Max reinforcement ratio limit

double dReinRatioMin Min reinforcement ratio limit

double dSPBeamCapMinMajor Controlling minimum total nominal capacity of concrete beams framing into the major axis faces of

the columndouble dSPBeamCapMinMinor Same as above for minor face

double dSPBMnBotMajorCCWDir Counter Clockwise Orientation

double dSPBMnBotMajorCWDir Clockwise Orientation

double dSPBMnBotMinorCCWDir Counter Clockwise Orientation

double dSPBMnBotMinorCWDir Clockwise Orientation

double dSPBMnTopMajorCCWDir Counter Clockwise Orientation

double dSPBMnTopMajorCWDir Clockwise Orientation

Page 391: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 391/450

double dSPBMnTopMinorCCWDir Counter Clockwise Orientation

double dSPBMnTopMinorCWDir Clockwise Orientation

double dSPBMprBotMajorCCWDir Counter Clockwise Orientation

double dSPBMprBotMajorCWDir Clockwise Orientationdouble dSPBMprBotMinorCCWDir Counter Clockwise Orientation

double dSPBMprBotMinorCWDir Clockwise Orientation

double dSPBMprTopMajorCCWDir Counter Clockwise Orientation

double dSPBMprTopMajorCWDir Clockwise Orientation

double dSPBMprTopMinorCCWDir Counter Clockwise Orientation

double dSPBMprTopMinorCWDir Clockwise Orientation

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 dSPMnColAboveMaj Nominal Major bending capacity at bottom of column above

double dSPMnColAboveMin Nominal Minor bending capacity at bottom of column above

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 directiondouble dSPMprBottomMaj Probable unfactored flexural capacity of column bottom in major direction

double dSPMprBottomMin Probable unfactored flexural capacity of column bottom in minor direction

double dSPMprColAboveMaj Probable Major bending capacity at bottom of column above

double dSPMprColAboveMin Probable Minor bending capacity at bottom of column above

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 dSPVSeismicMaj Calculated minimum shear capacity of column for special provisions

double dSPVSeismicMin Calculated minimum shear capacity of column for special provisions

double dTorsionPhi Torsion capacity reduction factordouble dTorsionPrvCap Torsional provided section capacity

double dTorsionReqCap Torsional required capacity

EDA_COL_COMBO_LOC   eCapRatioComboLoc Location along column where dCapRatioMax was calculated

EDA_CONC_CODE  eDsnCode Concrete design code used – ACI318_99

ECONC_FRAME_TYPE  eFrameType Design frame type

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 lBarPatternID Bar Pattern Unique ID

long lBarSpacingError Bar spacing error code

long lCapRatioComboID Load combination ID producing dCapRatioMax

long lCapRatioError Design warnings code encountered in capacity ratio calculation

long lCapRatioPatternID Column pattern loading producing dCapRatioMaxlong lColumnID Column’s Unique ID 

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 lErrorColumnVBeamMajor Design warning codes for Column v. Beam capacity check

long lErrorColumnVBeamMinor Design warning codes for Column v. Beam capacity check

long lNumShearSegments Number of transverse reinforcement bar sets SCOL_TRANSRES 

long lPatternDsnID Bar pattern design ID

Page 392: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 392/450

long lReinRatioMaxComboID ID of load combination producing dReinRatioMax

long lReinRatioMaxError Design warnings encountered in max reinforcement ratio limit check

long lReinRatioMaxPatternID Column pattern loading producing dReinRatioMax

long lReinRatioMinComboID ID of load combination producing dReinRatioMinlong lReinRatioMinError Design warnings encountered in min reinforcement ratio limit check

long lReinRatioMinPatternID Column pattern loading producing dReinRatioMin

long lShearLegsParalellMaj Number of shear legs parallel to major axis

long lShearLegsParalellMin Number of shear legs parallel to 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

long lSPSurfaceID Interaction surface used for special provisions

long lSurfaceID Interaction surface Unique ID

long lTorsionComboID Load combination producing dTorsionReqCap

long lTorsionError Design warnings related to Torsional capacity check

long lTorsionPatternID Column pattern loading producing dTorsionReqCap

SCOL_PATRES_BSTR

Type Variable Name Commentsbstr bstrBarSpacingMsg Bar spacing design warning

bstr bstrCapRatioMsg Capacity ratio design warning

bstr bstrErrorColumnVBeamMajor Error strings for Column v. Beam capacity check in column major direction

bstr bstrErrorColumnVBeamMinor Error strings for Column v. Beam capacity check in column minor direction

bstr bstrReinRatioMaxMsg Reinforcement ratio max limit design warningbstr bstrReinRatioMinMsg Reinforcement ratio min limit design warning

bstr bstrSlenderness_ klrErrorMsg Slenderness kl/r check design warning

bstr bstrSlenderness_PuPcErrorMsg Slenderness Pu/Pc check design warning

bstr bstrSurfaceFile Name of file containing interaction surface diagrams

bstr bstrTorsionMsg Torsion capacity check design warning

long lColumnID Column’s Unique ID 

long lPatternDsnID Bar pattern design ID

SCOL_RES

Concrete column result basic information

Type Variable Name Commentsdouble dConcElasticMod Concrete modulus of elasticity

long eCode Maps to CODE. if eCode == NoCodeDefined, there is no final design

long eResultState Maps to ERESULTS_STATE

long eUserSpecState EUSER_SPECIFIED_STATE - 0 = Not user defined, 1 = User defined/frozen design

long lColumnID Column’s Unique ID 

long lNumPatterns Indicates number of bar pattern results (SCOL PATRES) available for column

Page 393: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 393/450

long lNumPatterns Indicates number of bar pattern results (SCOL_PATRES) available for column

SCOL_TRANSRESType Variable Name CommentsBOOL bShearBarControlDirMaj TRUE = design controlled by major direction shear, FALSE = controlled by minor direction

shear

double dShearConcCapMaj Major direction concrete capacity

double dShearConcCapMin Minor direction concrete capacity

double dShearPhiReducFactor Shear capacity reduction factor

double dShearReqCapMaj Major direction shear forces

double dShearReqCapMin Minor direction shear forces

double dShearStlCapMaj Major direction shear reinforcement capacity

double dShearStlCapMin Minor direction shear reinforcement capacity

long eTransBarType Type of transverse reinforcing

long lColumnID Column’s Unique ID 

long lCombo Load combo used to design this segment

long lPattern Column pattern loading used to design this segment

long lPatternDsnID Bar pattern design ID

long lSegNumber This bar pattern’s segment number in column 

long lShearError Shear check design warning

EDA_REIN_PLACE_SET  ReinPlaceSet Reinforcement placement info.

EDA_SEG_SET_INFO  SegSetInfo Segment set information

SCOL_TRANSRES_BSTR

Type Variable Name CommentsBSTR bstrShearMsg Shear check design warnings.

long lColumnID Column’s Unique ID 

long lPatternDsnID Bar pattern design ID

long lSegNumber This bar pattern’s segment number in column 

SComboParams_DA

Code specific input parameters used in load combination generator.Type Variable Name CommentsBOOL bCheckBoxArray These are the settings for control 3 – the table of check box values. There can be up to 9 check boxes.

BOOL bLCaseSpcSetting This is used with control 4. A value of TRUE indicates that load case specific values are available.

BOOL bUseOnly This is used with control 4. A value of TRUE disables the “Use Code” option. 

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.

float fValues These are the values associated with control 1 in the load combo generator. There can be up to 10 control 1 values.

Page 394: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 394/450

g p

int nComboBox5Index This is the setting for control 5 – the drop down combo box for code for combinationsint nComboBoxIndex This is the setting for control 2 – the drop down combo box for template

int nNumVarsFor2 Number of entries for control 2

int nNumVarsFor5 Number of entries for control 5

SConcScheduleMark

Concrete beam or column schedule mark for a member. Only available after the DXF schedule for the member type has begenerated 

Type Variable Name CommentsBSTR bstrScheduleMark Concrete Schedule mark

BSTR bstrScheduleMarkPrevious Concrete Schedule previous mark

EDXFMarkAssignedBy  eMarkChangedBy Mark assigned by

long lMemberID Member unique IDlong 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

 

SCoordinate

Concrete beam or column schedule mark for a member. Only available after the DXF schedule for the member type has begenerated 

Type Variable Name Commentsdouble dXLoc X coordinate

double dYLoc Y coordinate

double dZLoc Z coordinate

SDeckProp

Composite one way steel deck properties

Type Variable Name CommentsBOOL bShoredConstruction Shored Construction TRUE = shored

BSTR bstrDeckLabel Label user provided for this individual Deck Property

double dAngle This is the deck orientation angle. It is only filled if  SSlabProp is filled using the DeckSlab polygonUID. Otherwise it will be set to -1 to indicate that the value is unknown.

double dAreaOfConcInRibPerUnitLength Area Of Conc In Rib Per Unit Length for ASD design only

Page 395: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 395/450

double dAreaOfConcInRibPerUnitLength Area Of Conc In Rib Per Unit Length for ASD design only

double dAvgConcRibWidth Average Concrete Rib Width

double dConcStressCap Concrete Stress Capacity

double dConcThickAboveFlute Conc Thickness Above Flute/rib

double dDistBotDeckToConcCentroid Dist Bot Deck To Conc Centroid for ASD design onlydouble dNominalRibHeight Nominal Rib Height

double dRibSpacing Rib Spacing

double dSelfWeight Steel deck self weight (units pcf)

double dStudDiameter Stud Diameter

double dStudLength Stud Length

double dStudStressCapacity Stud Stress Capacity

double dUnitWeight Deck system self weight (units psf)

long lCounter Number of times where property is assigned

long lDeckType Deck Table Index

long lFibreType Fibre Type

long lUniqueID Property Unique IDint nFibreType Fibre Type

SDIAGRAM

 Analysis or design information used to generate a diagram. This data is similar to an envelope but only holds one value at alocation 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 Commentsfloat fLocation Distance or location along member for values below

float fValue Value at fLocation

long lValueLC Load combination number (or other) that produced fValue. -1 indicates that load combo index number is not available.

SENVELOPE

 Analysis and design data that is represented as a maximum and minimum envelope. This data is usually in an array of SEnvelopestructures which would represent the data along the member’s length. 

Type Variable Name Commentsfloat fLocation Distance or location along member for values below

float fMax Max. value at fLocation

float fMin Min. value at fLocation

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.

Page 396: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 396/450

SFND_CONT_REINF

Continuous foundation reinforcement information. 

Type Variable Name Commentsdouble m_dSecReinDepthBotX Depth to the bottom bars in the X direction

double m_dSecReinDepthBotY Depth to the bottom bars in the Y direction

double m_dSecReinDepthTopX Depth to the top bars in the X direction

double m_dSecReinDepthTopY Depth to the top bars in the Y direction

SFND_DATA

Foundation information for spread and continuous foundations 

Type Variable Name CommentsBOOL bDesignDimensions TRUE = dimensions returned are from the design results

BOOL bUserDefined TRUE = the footing is user defined

double dAngle angle of the footing w.r.t the global axis

double dBottom distance from bottom edge of fnd to last supported member

double dLeft distance from left edge of fnd to center line

double dLength length of footing. For spreads, this is top + bottom

double dRight distance from right edge of fnd to center line

double dThick thickness of the footing

double dTop distance from top edge of fnd to first supported memberdouble dX1 Foundation location in plan

double dX2 Foundation location in plan

double dY1 Foundation location in plan

double dY2 Foundation location in plan

double dZ z location of fnd in the global axis

EMATERIALTYPES  eMaterial Material type

long lLabel Footing Number as displayed in RAM Foundation

Page 397: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 397/450

SFND_ISO_REINF

Isolated foundation reinforcement information. 

Type Variable Name CommentsBOOL bSetResistsTension Flag for resists tension

double dAs_prv Provided area of steel

double dAs_Req Required are of steel

double dBarSpacing Bar spacing

double dCapacity Capacity

double dLength Length

long lMaxBarsInLayer Maximum number of bars in a layer

long lNumBars Number of bars

long lNumLayersOrLegs Number of layers or shear legs

long lReinIndexNum Reinforcing index number

SFND_REINF_OTHER_DATA

Isolated foundation reinforcement information. 

Type Variable Name CommentsBOOL bHooked 1 if bars are hooked, 0 if not

double dCoverBottom Bar cover to bottom concrete face

double dCoverSide Bar cover to side concrete face

double dCoverTop bar cover to top concrete face

SForce

Internal member forces and moments. See IForces1 for sign convention Type Variable Name Commentsdouble dLocation Location

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

double dVx_maj Shear parallel to member major direction

double dVy_min Shear parallel to member minor direction

d bl dV A i l A i l f h C i i i i

Page 398: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 398/450

double dVz_Axial Axial force where Compression is positive

long lAnalysisCaseID Analysis load case UID for this member forc results

SForce3D

3D force location 

Type Variable Name Commentsdouble dX X coordinate

double dY Y coordinate

double dZ Z coordinate

SFoundationMatInfo

Mat foundation information 

Type Variable Name Commentsdouble dTopOfSlabOffset Mat foundation datum from base of story

SGridLineInfo

Grid line information

Type Variable Name CommentsBOOL bExtMax TRUE = Limit grid line to maximum extent

BOOL bExtMin TRUE = Limit grid line to minimum extent

BOOL bLabelI TRUE = Add label at start of grid line

BOOL bLabelJ TRUE = Add label at end of grid line

BOOL bSnapTo TRUE = A snap point is provided for this grid if it intersects another grid with bSnapTo also set to true

BSTR bstrLabel Grid Label

double dCoordinate Grid location from the grid system origin

double dExtMax Grid line maximum value

double dExtMin Grid line minimum value

long lID Grid index number

SLoad

 A single load associated with a load case. The units are based on the type of load. Point loads are in kips, line loads in kip/inand surface loads in kip/in2 

Type Variable Name Comments

Page 399: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 399/450

Type Variable Name Commentsdouble  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 axisdouble  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)

long  lLoadCaseID  Load case UID for this load

SLoadCase_CmbGen_DA

Load case information for generated load combinations

Type Variable Name Comments

BOOL bUseFlag Flag indicating if this case has been selected for use in combination generationunsigned char cLabel String label that identifies the load case. This label CANNOT be used to uniquely identify a load case.

unsigned char cSymbol Symbol used to represent this load case in the load combinations (D, Lp, W1, W2, E1, E2…). This symboluniquely identifies the load case. 

unsigned char cTmpleCaseCode Symbol used to represent this category of load case in the template file (D, Lp, W, E…) 

unsigned char cType String that indicates the type of load.

float fLCaseSpecific Used for “Use Calculated” for Rho for appropriate codes 

float fLCaseSpecificX Parameter applied to load in the X direction as indicated by the combo generator

float fLCaseSpecificY Parameter applied to load in the Y direction as indicated by the combo generator

float fLoadCaseAngle Angle that resultant force acts on the structure w.r.t the global axes.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.

int nDirOfLoadInX Direction indicator 0 = no load in X, 1 = pos X, -1 = Neg X

int nDirOfLoadInY Direction indicator 0 = no load in Y, 1 = pos Y, -1 = Neg Y

int nLCaseIndex Load Case index

SLoadCaseInfo

Load case properties 

Type Variable Name CommentsBOOL bGenerated True = generated load case

BSTR bstrLabel Load case string label

EFRAMETYPE  eFrameType EFRAMETYPE Load case to be used on lateral, gravity or either frame type

ELoadCaseType  eLoadType Load Case type

long lUniqueID Load Case UID.

SLoadCombos CmbGen DA

Page 400: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 400/450

SLoadCombos_CmbGen_DA

Generated load combination data

Type Variable Name CommentsBOOL bTensionOnly Currently not used

BOOL bUseFlag Flag that indicates if this load combo is to be used.

unsigned char cComboIncludes String of symbols separated by commas. This can be used to quickly see which cases are included in acombination.

unsigned char cComboString String representation of the load combination

float Factors Array of up to 5 factors

int LoadCase array of up to 5 load case indices. The load case from this array combines with the factor in the Factors array tocreate a load combo term.

int nComboNum Load combo number

int nStatus 0 = Unavailable, 1 = Available

int NumTerms Number of terms in the load combination

SNodalLoadData

Nodal load information 

Type Variable Name Comments

BSTR bstrLabel Label user provided for this individual nodal load

double dFx Nodal Force in the global X directions

double dFy Nodal Force in the global Y directionsdouble dFz Nodal Force in the global Z directions

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

SREIN_PROP

Concrete Reinforcement bar properties

Type Variable Name Comments

BOOL bFlex TRUE = Bar used for flexureBOOL bShear TRUE = Bar used for shear/torsion

char cLabel Reinforcement bar label

double dArea Bar nominal area

double dDiameter Bar nominal diameter

SSECTIONS

Concrete Section properties

Page 401: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 401/450

Concrete Section properties 

Type Variable Name Commentschar achPanLabelLeft Pan joist label used to create left side of section

char achPanLabelRight Pan joist label used to create right side of section

float Area Section area. (Value is not defined for T’s with missing flange dimensions and all pan joists)

BOOL bUseFlangeThick TRUE = user defined Flange Thickness, FALSE = use calculated Flange Thickness based on member location andconnectivity in model

BOOL bUseWidth TRUE = user defined Width(s), FALSE = use calculated flange width based on member location and connectivity inmodel. This is true for all Rectangular and circular section. It is false for all pan joists and T sections where the user hasnot explicitly defined the flange overhangs.

int Counter Counter indicates how many members are using this section.

float Depth Depth of rectangular section, Total depth of T section, do not use this value if the section is a Pan section

double dPanDepth Web depth from bottom of flange to bottom of web.

float fCrackedAxialFactor Cracked section factor used to reduce area

float fCrackedFlexureFactor Cracked section factor used to reduce flexural moment of inertia valuesfloat fCrackedTorsionFactor Cracked section factor used to reduce torsional moment of inertia values

float FlangeThickness Flange thickness for T sections where flange is defined

float fRightOH Right Overhang, used only for Beam T-Sections where the user has defined the flange overhangs.

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)

long lUniqueID Section property unique ID

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)char SectionName Section label. Can be a total of 15 characters

int Shape Variable maps to ECONC_OTHER_SEC 

float WebThickness Web thickness for T sections

float Width Width of rectangular section, Diameter of circular section, Left overhang if T Section

SSlabProp

Concrete slab properties assigned to elevated floors and mat foundations 

Type Variable Name Comments

BSTR bstrLabel Label user provided for this individual Slab Propertydouble dAngle Deck angle for one way deck span

double dOffsetFromTOS Slab offset from story or mat foundation top of slab

double dSelfWeight Slab self wight in lb/sf

double dThickness Slab thickness

long lUniqueID Slab Property unique ID

int nCounter Number of times where property is assigned

Page 402: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 402/450

Common Enumerator Definitions

COMBO_MATERIAL_TYPE

Type of load combination.

Value Description  ANALYSIS_CUSTOM RAM Frame custom combosCONC_SHEAR_WALL_CUSTOM RAM Concrete Shear Wall custom combosCONC_SHEAR_WALL_GEN RAM Concrete Shear Wall generated combos

FND_CONCRETE RAM Foundation generated concrete combosFND_CUSTOM_CONC RAM Foundation custom concrete combosFND_CUSTOM_SOIL RAM Foundation custom soil combosFND_SOIL RAM Foundation generated soil combosNONE_DEFINED No combinations definedRAM_CONCRETE RAM Concrete generated combosRAM_CONCRETE_CUSTOM RAM Concrete custom combosSTEEL_CUSTOM RAM Frame Steel custom combosSTEEL GRAV RAM S l i l d bi i

Page 403: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 403/450

STEEL_GRAV RAM Steel gravity load combinations.STEEL_SPEC RAM Frame Steel Special provisions generated combosSTEEL_SPEC_CUSTOM RAM Frame Steel Special provisions custom combos

STEEL_STAND RAM Frame Steel Standard provisions generated combos

E_BARLAYERS_OPTION

Bar layers option for concrete members.

Value Description BarLayers1Only Use only one layer of barsBarLayers2Allowed Allow up to 2 layers of barsBarLayersUseDefault Use global default for number of layers of bars

E_BARSIZE_OPTION

Bar size option for concrete members.

Value Description 

BarSizeUseDefault Use global default for bar sizeBarSizeUseDefined Use assigned bar size

E_COVER_OPTION

Clear cover option for concrete members.

Value Description CoverUseDefault Use global default for clear coverCoverUserDefined Use user defined clear cover

E_GAP_OPTIONGap option for space between longitudinal bar layers

Value Description GapUseDefault DefinitionGapUserDefined Definition

E LINKSPC OPTION

Page 404: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 404/450

E_LINKSPC_OPTION

Link spacing option for Chinese concrete members.

Value Description LinkSpacingUseDefault Use global default for link spacingLinkSpacingUserDefined Use user defined link spacing

E_SHEARLEGS_OPTION

Shear legs option for concrete members.

Value Description ShearLegsUseDefault Use global default for number of shear legsShearLegsUserDefined Use user defined number of shear legs

E_STIRRUPS_OPTION

Stirrup option for concrete members.

Value Description Stirrups135Hook Design with 135 Hook stirrups

StirrupsClose Design with Closed stirrupsStirrupsHoop Design with Hoop stirrupsStirrupsOpen Design with Open stirrupsStirrupsUseDefault Use global default

EAggregateType

Concrete aggregate type.

Value Description eConcAggLWC Light weight concreteeConcAggNWC Normal weight concreteeConcAggOther Normal weight concrete

EAnalysisResultType

Module analysis results to be used for member internal forces.

Value Description

Page 405: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 405/450

Value Description DefaultResultType Results taken from most appropriate source based on member’s framing and material type.OtherResultType (not yet implemented)

RAMConceptResultType Results from RAM Concept Analysis (not yet implemented)RAMConcreteResultType Results from RAM Concrete AnalysisRAMFoundationResultType Results from RAM Foundation Analysis (not yet implemented)RAMFrameResultType Results from RAM Frame AnalysisRAMGravityResultType Results from RAM Steel Analysis

EAnalysisSubType

The load case sub type.

Value Description  AnalysisSum Sum caseNegative Negative caseNoSubType No sub typePositive Positive case

EAnalyzeFlag

Indicates if the corresponding member is to be optimized by RAM Structural System, or simply analyzed

Value Description eAnalyze Design will be analyzedeOptimize Design will be optimizedeOptimizeStuds Size will be analyzed, studs will be optimized (used only for beams)

EAxis

Used to indicate axis.

Value Description EMajorAxis Specifies the major axisEMinorAxis Specifies the minor axis

EBarEndCondition

Reinforcement bar end condition or shape. Note this enum is not defined in DA it will need to be defined manually by user.

Page 406: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 406/450

Value Description eBarEndClosed Closed stirrup

eBarEndContinuous ContinuouseBarEndHook135 135 Deg. hookeBarEndHook90 90 Deg. hookeBarEndHoop Seismic Hoop StirrupeBarEndLapSpliced Lap spliced bareBarEndMechanical Mechanical connectoreBarEndStraight StraighteBarEndU U Stirrup

EBeamConnectionType

Type of connection at the end of the beam in RAM Frame.

Value Description eBCTCustom Custom connection stiffness settingseBCTNone No connection assignedeBCTRBS Reduced beam section

eBCTSidePlate SidePlate connectioneBCTSpring Spring connection

EBeamCoordLoc

Coordinate locations for the beam.

Value Description eBeamEnds End location of the beam. Tip of cantilever if one exists. Otherwise

the end is the support location.eBeamSupports Support location of the beam.

EBeamFilter

Filter the for the collection of beams

Value Description eBeamFilter_BeamLineNo Concrete beam line numbereBeamFilter_FrameType EFRAMETYPEeBeamFilter_Material EMATERIALTYPESeBeamFilter NoFilter Remove previous filters

Page 407: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 407/450

eBeamFilter_NoFilter Remove previous filters

EBeamSpanBeam condition at a face of a column

Value Description eBackspanBeam Backspan of beam at column faceeCantileverBeam Cantilevered beam at column faceeNoBeam No beam at column faceeStubCantileverBeam Stub cantilever at column face

EBeamSpanTypeDefines Part of beam span type.

Value Description eLeftCantl Left cantilever of beameMidSpan Beam mid span

eNoSpanDefined No span part defined – An error could have been encounteredeRightCantl Right cantilever of beam

EBoundaryFlags

How the zone is to be handled in respect to concrete shear wall boundary element design.

Value Description EBFMaybe No boundary but checkEBFNo No boundary and do not checkEBFYes Check boundary

EBuildingCode

List of building codes that can be used during design.

Value Description eCodeAustraliaeCodeBOCA BOCAeCodeBritish BS 6399eCodeCanada NBC of Canada

Page 408: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 408/450

eCodeCanada NBC of CanadaeCodeChina GB 50009eCodeEurocode Eurocode

eCodeHongKong HongKongeCodeIBC_Alternate IBC Roof Live Load Reduction AlternateeCodeIBC_General IBC Roof Live Load Reduction GeneraleCodeSBC SBCeCodeUBC_Method1 UBC Roof Live Load Reduction Method 1eCodeUBC_Method2 UBC Roof Live Load Reduction Method 2

ECANImportanceCategory

Importance Category for Live Load Reduction when NBC of Canada is selected as the Live Load Reduction code in the list of buildingcodes that can be used during design.

Value Description eCANHigh HigheCANLow LoweCANNormal NormaleCANPostDisaster Post-Disaster

 

EColumnFilterFilter for the collection of columns.

Value Description eColFilter_ColStack Column stackeColFilter_FrameType EFRAMETYPEeColFilter_Material EMATERIALTYPESeColFilter_NoFilter Remove previous filters

ECombinationSourceTypeIndicates whether the combination is custom or generated.

Value Description eCustomCombo Custom or user-defined load combinationeCustomInternal Interanally defined custom load combinationeGeneratedCombo Generated load combinationeGeneratedInternal Internally defined generated combination

Page 409: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 409/450

ECOMBOTYPES

Enumerates the RAM Frame combination types.

Value Description EFrameAnalysisCustomCombos Custom combos in Analysis Load Combinations modeEFrameSteelSeismicCustomCombos Custom combos in Steel Seismic modeEFrameSteelSeismicGenCombos Generated combos in Steel Seismic modeEFrameSteelStdCustomCombos Custom combos in Steel Standard modeEFrameSteelStdGenCombos Generated combos in Steel Standard mode

ECompDeckPropsFilterFilter by composite deck properties.

Value Description eCDPFilter_DeckType Composite deckeCDPFilter_NoFilter Removes previous filters

 

ECompoundLoadCaseStateIndicates what the compound state of the load case.

Value Description eCompoundLoadCase Compound load caseeMergedLoadCase Merged load caseePrimaryLoadCase Load cannot be broken down into sub loads

ECONC_FRAME_TYPE

Concrete lateral frame type.

Value Description ConcFrameType_Intermediate Intermediate moment frame designConcFrameType_Ordinary Ordinary moment frame designConcFrameType_Special Special moment frame design

ECONC OTHER SEC

Page 410: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 410/450

ECONC_OTHER_SEC

Concrete and ‘Other’ section shapes. 

Value Description ECircle Circular sectionENone No sectionEOther Other type not definedEPanJoist Pan joist section (calculated by RAM Structural System)ERect Rectangular sectionET Tee section

EConceptConcSkipCase

Skip load cases from RAM Concept.

Value Description eCCSkipFull Full loadingeCCSkipMaxMomMajor Maximum major momenteCCSkipMaxMomMinor Maximum minor moment

eCCSkipMinMomMajor Minimum major momenteCCSkipMinMomMinor Minimum minor moment

EConcSectPropsFilter

Concrete section property filter.

Value Description eCSPFilter_MemType EUniqueMemberTypeID (beam, column, vertical brace)eCSPFilter_NoFilter Remove previous filterseCSPFilter_Shape ECONC_OTHER_SEC

ECoreBraceType

CoreBrace connection type.

Value Description eCoreBraceTypeBoltedLug Bolted LugeCoreBraceTypeCustom CustomeCoreBraceTypePinned PinnedeCoreBraceTypeSplicePlate Splice Plate

Page 411: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 411/450

yp p peCoreBraceTypeUnkown UnkowneCoreBraceTypeWelded Welded

ECptCksumStatusBits

Concept integration options for the story.

Value Description eCCSDirectGravLoads Direct gravity loads optionseCCSStructAboveStory Structure above story optionseCCSStructOnStory Structure on story optionseCCSTransferGravLoads Transfer gravity loads options

eCCSTransferlatLoads Transfer lateral loads options

ECptStyTimeStampType

Concept integration time stamp options.

Value Description eTSConceptMajorRead Major read from Concept

eTSConceptMinorRead Minor read from ConcepteTSConceptWrite Write to ConcepteTSMajorChange1 Major changeeTSMinorChange1 Minor change

EDA_COL_COMBO_LOC

Column evaluated combination results location along column length.

Value Description COMBO_AT_BOTTOM Combo value at bottom of columnCOMBO_AT_END Combo value at end of beamCOMBO_AT_SPAN Combo value along column spanCOMBO_AT_START Combo value at start of beamCOMBO_AT_TOP Combo value at top of column

EDA_CONC_CODE

Concrete design code.

Page 412: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 412/450

Value Description 

eACI318_02 ACI 318-02eACI318_05 ACI 318-05eACI318_08 ACI 318-08eACI318_11 ACI 318-11eACI318_95 ACI 318-95eACI318_99 ACI 318-99eAS3600 AS3600-01eAS3600_09 AS3600-09eBS8110_97 BS 8110-97eCanadian CanadianeCP_65 CP 65

eEuroCode EurocodeeGB50010 GB 500010eNoCodeDefined No code selected

EDA_MEMBER_LOC

Location relative to a member. Some locations are not relevant to all members.

Value Description eBottom Bottom of column or braceeBottomEnd Bottom end of walleBottomStart Bottom start of walleEnd End of membereEndSupportCantilever Cantiliver end reaction at end supporteEndSupportMidSpan Mid span reaction at end supporteStart Start of membereStartSupportCantilever Cantiliver end reaction at start supporteStartSupportMidSpan Mid span reaction at start support

eTop Top of column or braceeTopEnd Top end of walleTopStart Top start of wall

EDBFieldType

Data types.

Value Description E DB FIELD BOOL B l

Page 413: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 413/450

E_DB_FIELD_BOOL BooleanE_DB_FIELD_DATE Date

E_DB_FIELD_DOUBLE DoubleE_DB_FIELD_LONG LongE_DB_FIELD_STRING String

EDBRelationRule

Relation rule.

Value Description E_DB_RELATION_CASCADE CascadeE_DB_RELATION_DEFUALT DefaultE_DB_RELATION_NONE NoneE_DB_RELATION_NULL Null

EDeckFilter

Filter by deck property.

 Value Description 

eDeckFilter_NoFilter Remove previous filterseDeckFilter_Type EDeckType

EDeckType

Type of deck.

Value Description eDeckType_Composite Composite DeckeDeckType_Concrete Concrete SlabeDeckType_NonComposite Non-composite Deck

EDefaultOrAlternate

Whether the default table directory is used (Tables) or the alternate directory is used (Working)

Value Description eAlternate1 Use alternate 1 directoryeDefault Use default directory

Page 414: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 414/450

y

EDiaphragmType of diaphragm.

Value Description eNoDiaphragm No diaphragmeRigidDiaphragm Rigid diaphragm

EDiaphragmDeckDirTypes

Type of decks contained in diaphragm.

Value Description eDDDirTypeOneAndTwoWay Diaphragm contains one way and two way deckseDDDirTypeOnlyOneWay Diaphragm only has one way deckseDDDirTypeOnlyTwoWay Diaphragm only has two way deckseDDDirTypeUndefined Diaphragm has undefined deck type

 

EDiaphragmSourceSource of diaphragm information

Value Description eDSFrameAnalysis Diaphragm information comes from RAM FrameeDSModelData Diaphragm information comes from model geometry

EDRAWINGCOLOR

Color that a member type is displayed in.

Value Description eConcBraceColor Concrete braceeConcGravBeamColor Concrete gravity beameConcGravColColor Concrete gravity columneConcGravWallColor Concrete gravity walleConcJoistBeamColor Concrete joist beameConcLatBeamColor Concrete lateral beameConcLatColColor Concrete lateral column

Page 415: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 415/450

eConcLatWallColor Concrete lateral walleDeckColor Deck

eDiagramsColor DiagrameFoundationColorColor FoundationeGridLabelColor Grid labeleGridLineColor Grid lineeJoistColor Steel JoisteLoadsColor LoadseOtherBraceColor Other braceeOtherGravBeamColor Other gravity beameOtherGravColColor Other gravity columneOtherGravWallColor Other gravity walleOtherLatBeamColor Other lateral beam

eOtherLatColColor Other lateral columneOtherLatWallColor Other lateral walleSlabEdgeColor Slab edgeeSlabOpenColor Slab openingeSmartbeamColor SmartbeameSteelBraceColor Steel brace

eSteelGravBeamColor Steel gravity beameSteelGravColColor Steel gravity column

eSteelLatBeamColor Steel lateral beameSteelLatColColor Steel lateral columneTextColor TexteWebOpeningColor Web openingeWestokCELLBEAMColor Westok cellular beam

EDXFMarkAssignedBy

Member DXF schedule mark assigned by category.

Value Description DXFMarkGenRAMSS Mark generated by RAM SSDXFMarkother Mark assigend by otherDXFMarkUser Mark assigned by user

EEdge

Edges of a wall.

V l D i ti

Page 416: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 416/450

Value Description eTopEdge Top edge of wall

eBottomEdge Bottom edge of wall

EFieldType

Data type for field.

Value Description eFTBool DefineeFTDouble DefineeFTLong Define

eFTString Define

EFloorTypeElements

Various elements modeled on a floor type.

Value Description eFTEAll Combination of all of the above (except eFTENone).

eFTEBeamsJoists Beams and joistseFTEColumns ColumnseFTEDecks DeckseFTEGrids Grids.eFTELoads LoadseFTENone None: do not useeFTEWalls Walls

EFloorTypeFilter

Filter for floor type.

Value Description eFTFilter_NoFilter Remove previous filterseFTFilter_UsedInStory Filter for floor type used in story

EFndReinfLoc

Foundation reinforcement locations.

Page 417: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 417/450

Value Description 

eFRLLengthBottom Bottom LengtheFRLLengthTop Top LengtheFRLSide SideeFRLWidthBottom Bottom WidtheFRLWidthTop Top Width

EFrameMemberForceSource

Concrete frame members gravity force source.

Value Description eFMFSFrameAnalysis Gravity forces come from Frame analysiseFMFSGravityAnalysis Gravity forces come from Concrete analysis

EFRAMETYPE

Frame type.

Value Description MemberIsEither Either type (cannot be used for assigning to a member)MemberIsGravity Gravity memberMemberIsLateral Lateral memberMemberIsNone Neither assigned (do not use)

EGRAVLOADTYPE

Gravity live load type.

Value Description EFloorLoad Reducible live loadENonRedLoad Non-reducible live loadERoofLoad Roof live loadEStorageLoad Storage live load

EGRAVPTLOADSOURCE

Page 418: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 418/450

Source of point load on member.

Value Description EPtLoadFrameColTransferThruOneWaySlab Frame column transfer through one way deckEPtLoadFromFrameBeamReact Point load from frame beam reactionEPtLoadFromFrameColReact Point load from frame column reactionEPtLoadFromGravBmReact Point load from gravity beam reactionEPtLoadFromGravColReact Point load from gravity column reactionEPtLoadGravColTransferThruOneWaySlab Gravity column transfer through one way deckEPtLoadPassedThruFrameWall Pt load passed down through a frame wallEPtLoadPassedThruGravWall Pt load was passed down through a gravity wallEPtLoadSourceUndefined Unknown source for point loadEPtLoadSSGhostBeamGeneratedInRG Point load from ghost beam generated in RAM GravityEPtLoadUserApplied User applied point load

EGridAxis

Type of grid.

 Value Description 

eGridXorRadialAxis X grid if in orthogonal grid system; Radial grid if in radial grid systemeGridYorCircularAxis Y grid if in orthogonal grid system; Circular grid if in radial grid system

EGridFilter

Grid filter.

Value Description eGFilter_GridAxis EGridAxiseGFilter_NoFilter Removes previous filter

EGridSystemFilter

Grid system filter.

Value Description eGSFilter_NoFilter Removes previous filtereGSFilter_OrientationType SGridSysType

Page 419: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 419/450

EHorizBraceFilter

Horizontal brace filter.

Value Description eHBFilter_Material EMATERIALTYPESeHBFilter_NoFilter Removes previous filter

EINTERFACES

Enumerator used to get pointers to specific DA interfaces.

Value Description IConcAnalysis1 _INT IConcAnalysis1 IConcAnalysisState_INT IConcAnalysisState1 IConcBeamState_INT IConcBeamState1 IConcBeamState2 _INT IConcBeamState2 

IConcCntlrCommon1 _INT IConcCntlrCommon1 IConcColModState2 _INT IConColModeState2

IConcept _INT IConcept IConcreteModule_INT IConcColModState1 IDatabase_INT IDatabaseIDBIO1 _INT IDBIO1 IForces_INT IForces1 IForces2 _INT IForces2 IGravityLoads_INT IGravityLoads1 IGravitySteelDesign_INT IGravitySteelDesign1 ILoading_INT ILoading1 IMemberData_INT IMemberData1 

IMemberData2 _INT IMemberData2 IModel _INT IModel IModelData_INT IModelData1 IModelData2 _INT IModelData2 IModelGeometry_INT IModelGeometry1 IModelGeometry2 _INT IModelGeometry2 IModelStatus_INT IModelStatus1 IRamDataAccess2 _INT IRAMDataAccess2ISteelColumnState INT ISteelColumnState1

Page 420: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 420/450

ISteelColumnState _INT ISteelColumnState1ISteelColumnState2 _INT ISteelColumnState2 

EIsolatedFndFilter

Isolated foundation filter.

Value Description eIFFilter_NoFilter Spread footingeIFFilter_Type EIsolatedFndType

EIsolatedFndType

Type of foundation.

Value Description elFndContinuous Continuous footingeIFndSpread Spread footing

eIFndPileCap Pile cap footing

EJoistType

Type of steel joist.

Value Description eJstCloseUniform “Close enough” to uniform load eJstCustom Custom label, Uniform Load 

eJstGirderClosePtLoads Joist Girder, “Close Enough” to Equal Point Loads 

eJstGirderEqualPtLoads Joist Girder, Equal Point Loads 

eJstKCS KCS JoisteJstREquivalent Equivalent Uniform Load, Ed Ryan (Vulcraft) method 

eJstSJIEquivalent Equivalent Uniform Load, SJI method eJstSpecial Special Joist 

eJstStandard Standard joist with uniform load 

eNotAJst Not a steel joist

EJstNonUniformLoadOption

Joist criteria option for joists with non-uniform loads.

Page 421: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 421/450

Value Description 

eStlJstNonUniSelectFromCSTable Select joist sizes from Constant Shear tableeStlJstNonUniUseEquivalentMethod Use Uniform Equivalent Method to pick joist sizeseStlJstNonUniUsexxGSP Use xxGSP label

EJstUniformLoadOption

Joist criteria option for joists with uniform loads.

Value Description eStlJstUniSelectFromCSTable Select joist sizes from Constant Shear tableeStlJstUniSelectFromStandardTable Select joist sizes from standard tableeStlJstUniUseCustomLabel 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)

ELINELOADSOURCE

Identifies the source of the gravity line load on the member.

Value Description ELineLoadFromEdge From slab edgeELineLoadFromSurfaceLoad From surface loadELineLoadPassedThruFrameWall From frame wall aboveELineLoadPassedThruGravityWall From gravity wall aboveELineLoadSelfWeight From self weight. Only includes for the member in question. Does not

include deck or supported wall self weight.ELineLoadSourceUndefined From unidentified sourceELineLoadUserApplied From applied line load

Page 422: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 422/450

ELoadCaseFilterLoad case type filter.

Value Description eLoadCaseFilter_FrameType EFrameTypeeLoadCaseFilter_GeneratesDesignForces Load case produces member forces (no Eigen, center of rigidity, etc.)eLoadCaseFilter_NoFilter Removes previous filters

ELoadCaseType

Type of load case 

Value Description BalancedLCa Balanced LoadConstructionDeadLCa Construction Dead LoadConstructionLiveLCa Construction Live

DeadLCa Dead LoadDynamicLCa Dynamic Load

LiveLCa Live LoadLiveReducibleLCa Live ReducibleLiveRoofLCa Live Roof LoadLiveStorageLCa Live StorageLiveUnReducibleLCa Live UnreducibleMassDeadLCa Mass Dead LoadNotionalDeadLCa Notional Dead LoadNotionalLiveLCa Notional Live LoadNotionalRoofLCa Notional Roof LoadOtherLCa Other LoadPartitionLCa Partition Load

SeismicLCa Seismic LoadSnowLCa Snow LoadVirtualLCa Virtual LoadWindLCa Wind Load

ELoadCombinationFilter

Load combination filter.

Val e Description

Page 423: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 423/450

Value Description eLoadComboFilter_InclGravityOnly Combos that only contain gravity terms

eLoadComboFilter_InclLateral Combos that contain lateral termseLoadComboFilter_NoFilter Removes previous filters

EMATERIALTYPES

Type of material.

Value Description EAnyMaterial Any (cannot be used for assigning to a member)EConcreteMat Concrete

ENoneMaterial None or N/A (cannot be used for assigning to a member)EOtherMat ‘Other’ ESmartbeamBeamMat SmartbeamESteelJoistMat Steel JoistESteelMat SteelEWallPropConcreteMat Concrete Wall

EWallPropOtherMat Other WallEWestokCELLBEAMMat Westok cellular beam

EMemberInPolyCategory

Category of members to look for in polygon.

Value Description eAboveMemPolyCat Members that are in the story above polygoneBelowMemPolyCat Members that have thier start end inside the polygoneEndMemPolyCat Members that end inside polygonePassThroughMemPolyCat Members that pass through the level - Not implemented / future item eStartMemPolyCat Members that start inside the given polygon (Not Implemented)

EMemberOrientation

Member orientation

Value Description eOrientHorizontal Horizontal orientationeOrientUnknown Unknown orientationeOrientVertical Vertical orientation

Page 424: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 424/450

eOrientVertical Vertical orientation

EMemberSide

Side of a member something is associated with

Value Description eMemBothSides Both sides of membereMemLeftSide Left side of membereMemNoSide Center of membereMemRightSide Right side of member

EMergeState

Flag that indicates if the load case is single, merged or included in a merge.

Value Description eLoadCaseUsedInAMerge Load case that is included in a merged load case.

eMergedLdCase Merged load case.eSingleLoadCase Single load case

EOtherSectPropsFilter

Filter for other type sections.

Value Description eOPSFilter_MemType EUniqueMemberTypeID (beams, columns, vertical braces).eOPSFilter_NoFilter Remove previous filters

EPartialReloadType

Partial reload of the database.

Value Description eReloadMDF DefineeReloadRAMFrameAnalysis Define

EPileConfiguration

Pil fi ti

Page 425: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 425/450

Pile group configuration.

Value Description ePileConfig2PileGroup Rectangular 2-pile Pile groupePileConfig5PileGroup Rectangular 5-pile Pile groupePileConfig5SqrPileGroup Square 5-pile Pile groupePileConfig7PileGroup Rectangular 7-pile Pile groupePileConfig8PileGroup Rectangular 8-pile Pile group (piles not arranged in rows/columns)ePileConfigRectangular Rectangular pile group (user defined number of piles)ePileConfigTriangular Triangular 3-pile pile group configuration

ERawWallSectionCutFilterRaw wall section cut filter.

Value Description eRWSCFilter_Module EWhichModule (Frame Shear Wall Forces or Concrete Shear Wall)eRWSCFilter_NoFilter Remove previous filter

 

EReactionNodeFilterReaction node filter.

Value Description eRNFilter_NoFilter Remove previous filtereRNFilterAtFoundation Foundation nodeseRNFilterNodeInSlabEdge Nodes within the slab edgeeRNFilterNodeSupportMember Nodes that support members above

ERoofLLType

Type of roof live load.

Value Description eRoofLoadsAreSnow Roof loads are snoweRoofLoadsAreReducible Roof loads are reducibleeRoofLoadsUnReducible Roof loads are unreducible

ESeismicProvFrameType

Page 426: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 426/450

ESeismicProvFrameType

Type of frame type for steel seismic provisions.

Value Description eSP_CBF Ordinary concentrically braced frameeSP_CBF_K Ordinary concentrically braced frame K typeeSP_CBF_V Ordinary concentrically braced frame V/Chevron typeeSP_EBF Eccentrically braced frameeSP_IMF Intermediate moment frameeSP_NoFrameType No frame type assignedeSP_OMF Ordinary moment frameeSP_SCBF Special concentrically braced frameeSP_SCBF_K Special concentrically braced frame K typeeSP_SCBF_V Special concentrically braced frame V/Chevron typeeSP_SMF Special moment frame

ESIDESWAY_ASSIGN

Identifies what the current setting assigned to the column is for sidesway.

Value Description ItIsBraced The column is braced for this column (in the specified axis)ItIsUnbraced The column is unbraced for this column (in the specified axis)UseGlobalSS Use the global criteria for this column (in specified axis)

ESlabActions

Identifies if the deck is one way or two way.

Value Description eDSAOneWay One way deckeDSATwoWay Two way deck

ESMARTBEAMTYPE

Castellated or Celular (Smartbeam) beam type.

Value Description SMARTBEAM CAST Castellated beam

Page 427: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 427/450

SMARTBEAM_CAST Castellated beamSMARTBEAM_CELL Cellular beam

ESnowLoadType

Snow load type.

Value Description eSLTConstant Constant Snow LoadeSLTDrift Drift Snow Load

EStateStatusStatus of an item’s state. 

Value Description eStateCurrent Item’s state is current eStateNotAvail State is unavailable

eStateNotCurrent Item’s state is not current 

ESTEEL_ROLLED_FLAG

Roll flag for steel member

Value Description EStlBuilt Built up shapeEStlRolled Rolled shape

ESTEEL_SEC

Steel section shapes

Value Description EStlChannel ChannelEStlDoubleL Double AngleEStlFlatBar Flat BarEStlLSection Single AngleEStlNone No sectionEStlPipe Round HSEStlRoundBar Round Bar

Page 428: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 428/450

EStlStar Star seismic

EStlTSection T SectionEStlTube Rectangular HSEStlWF I-Section (Wide Flange)

ESteelDesignCode

Design code for steel members.

Value Description eAISC36005ASD AISC 360-05 ASDeAISC36010ASD AISC 360-10 ASDeAISC36005LRFD AISC 360-05 LRFDeAISC36010LRFD AISC 360-10 LRFDeAS4100_99 AS4100-99eASD ASD 9

th Edition

eBS5950_1990 BS5950:1990eBS5950_2000 BS5950:2000

eCANCSA_1994 CAN/CSA-S16.1-94eEurocode3 EurocodeeLRFD LRFD 3

rd Edition

ESteelShapes

Steel section shapes.

Value Description ESSChannel ChannelESSDoubleAngle Double AngleESSFlatBar Flat Solid BarESSISection I-Section (wide flange)

ESSRectangularHS Rectuangular Hollow SectionESSRoundBar Round Solid BarESSRoundHS Round Hollow SectionESSSingleAngle Single AngleESSTee TeeESSUnknown Unknown

ESubLoadCaseType

S T f th EL dC T

Page 429: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 429/450

Source or Type of the ELoadCaseType 

Value Description eCenterOfRigidity Center of RigidityeEigen EigeneGeneratedStoryLoad Generated story loadeGravityLoad Gravity load typeeImportedLoad Imported loadeNodalLoad Nodal loadeNoSubType No sub load typeeResponseSpectra Response SpectraeUserDefinedStoryLoad User defined story load

ETensionCompressionMemType

Indicates whether members takes tension, compression, or both.

Value Description 

ECompressionOnlyMem Member takes compression onlyETensionCompressionMem Member takes both tension and compression 

ETensionOnlyMem Member takes tension only

ETimeStampAction

 Action for time stamp retrieval.

Value Description eTSAdd AddeTSDelete DeleteeTSChange Change

ETimeStampProperty

Property for time stamp retrieval.

Value Description eTSFloorType Floor typeeTSNoProp No particular propertyeTSReframeFlag Floor reframeeTSSize Member size

Page 430: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 430/450

EUniqueMemberTypeID

Member type.

Value Description eTypeAll All memberseTypeAnalysisCase Member is an analysis caseeTypeBeam Member is a beameTypeBrace Member is a vertical braceeTypeColumn Member is a columneTypeConcDeflCrit Member is a concrete deflection criteriaeTypeConcSectionProp Member is a concrete sectioneTypeCouplingBeam Meber is a coupling beameTypeDeckOrSlab Member is a deck or slabeTypeDeckProp Member is a composite deck property seteTypeFloorOpening Member is an opening in a floor (slab opening)eTypeFloorPenetrations Member is a floor penetration

eTypeFloorPerimeter Member is a floor perimeter (slab edge)eTypeFloorType Member is a floor typeeTypeFoundation Member is a foundationeTypeFoundationLineLoading Member is a foundation line loadeTypeFoundationMatPerimeter Member is a mat foundation perimetereTypeFoundationMatSlab Member is a mat foundation slab definitioneTypeFoundationPointLoading Member is a foundation point loadeTypeFoundationSurfaceLoading Member is a foundation surface loadeTypeGrid Member is a grideTypeGridSystem Member is a grid systemeTypeHorizontalBrace Member is a horizontal braceeTypeLastType Member is last typeeTypeLineLoading Member is a line loadeTypeLineLoadSetProp Member is a line load property seteTypeLoadCase Member is a gravity load caseeTypeMesh Member is a mesheTypeNodalLoad Member is a nodal loadeTypeNodalLoadProp Member is a nodal load property seteTypeNode Member is a nodeeTypeNonCompDeckProp Member is a noncomposite deck property seteTypeNonComposite Member is a noncomposite deck polygoneTypeNone No type, or not applicableeTypeOther Member is an Other sectioneTypeOtherSectionProp Member is an ‘Other’ section property

Page 431: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 431/450

eTypeOtherSectionProp Member is an ‘Other’ section propertyeTypePile Member is a pile definitioneTypePileConfiguration Member is a pile configurationeTypePointLoading Member is a point loadeTypePointLoadSetProp Member is a point load property seteTypeSectionCut Member is a section cuteTypeSidePlate Member is a SidePlateeTypeSlabProp Member is a concrete slab property seteTypeSnowLoad Member is a snow load polygoneTypeSnowLoadSetProp Member is a snow load property seteTypeSteelDeflCrit Member is a steel deflection criteriaeTypeStory Member is a storyeTypeSurfaceLoading Member is a surface load polygoneTypeSurfaceLoadSetProp Member is a surface load property seteTypeWall Member is a walleTypeWallOpening Member is a wall openingeTypeWallRebar Member is wall reinforcingeTypeWallSectionDsnCut Member is a wall design section cut

EUnits

Type of unit system.

Value Description eUnitsEnglish English unitseUnitsMetric  Metric UnitseUnitsSI SI Units

EUserOverride

Indicates if the corresponding value is user overridden

Value Description eUserNA Not ApplicableeUserNo Value is not overridden by usereUserYes Value is user defined or overridden

EVerticalBraceFilter

Vertical brace filter.

Value Description

Page 432: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 432/450

Value Description eVBFilter_Material EMATERIAL

eVBFilter_NoFilter Remove previous filters

EWallFilter

Wall filter.

Value Description eWallFilter_FrameType EFRAMETYPEeWallFilter_Material EMATERIALeWallFilter_NoFilter Remove previous filters

EWebOpenPosition

Position of web opening in beam web.

Value Description eWebOpenCentered Opening is centered in beam web 

eWebOpenOffsetToBot Opening position is offset from top of beam to bottom of openingeWebOpenOffsetToCenter Opening position is offset from top of beam to center of openingeWebOpenOffsetToTop Opening position is offset from top of beam to top of opening

EWebOpenShape

Shape of web opening.

Value Description eRectOpening Rectangular opening 

eCircularOpening Circular opening

EWhichFontAndColor

Font and color for reports.

Value Description BodyFontColor Report body 

HeaderFontColor Report headerHeadingFontColor Report heading

Page 433: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 433/450

TitleFontColor Report title

model_status 

Status of a module.

Value Description ModelFailedToLoad Model failed to loadModHadNO_CHANGE There has been no change that requires rerunning this module.ModIsINVALID The module status is invalidModIsNOTAVAIL The module status is not availableModIsNotRead Module is not readyModIsVALID The module status is validNoRelevantMembers No relevant members for the module

module_status_light 

Status color of a module.

Value Description LIGHT_IS_GREEN Status light is greenLIGHT_IS_GREY Status light is greyLIGHT_IS_LIGHTBLUE Status light is light blueLIGHT_IS_RED Status light is redLIGHT_IS_YELLOW  Status light is yellow NO_LIGHT_COLOR Status light has no color  

rein_change_type 

Reinforcement change

Value Description Rein_ContentsChange Reinforcement changedRein_NameChange Name changedRein_NoChange No changed

WhichModule

Page 434: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 434/450

RAM Structural System modules.

Value Description  AllModules  All RAM Structural System modules 

IAmFramingTables Framing TablesIAmRamConcreteAnalysis RAM Concrete AnalysisIAmRamConcreteBeam RAM Concrete BeamIAmRamConcreteColumn RAM Concrete ColumnIAmRamConcreteShearWall RAM Concrete Shear WallIAmRamFoundation RAM FoundationIAmRamFrameAnalysis RAM Frame Analysis Load CasesIAmRamFrameDrift RAM Frame Drift Control

IAmRamFrameLCombo RAM Frame Analysis Load CombinationsIAmRamFrameSpecial RAM Frame Seismic ProvisionsIAmRamFrameStandard RAM Frame Standard ProvisionsIAmRamManager RAM ManagerIAmRamModeler RAM ModelerIAmRamSteelBeam RAM Steel Beam

IAmRamSteelColumn RAM Steel Column

Page 435: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 435/450

Appendix A - RAM Object Model Diagram

Properties

GetCount()

Get( in long ) > pItemInterface

GetAt(long index) > pItemInterface

Filter(in Criteria)?

 Add() > pItemInterface()

Delete( in UID )

Collection Objects

UID

Properties

Standard Object

Model

FloorTypes

SlabPerimeters

SlabOpenings

SlabPerimeter 

SlabOpening

LayoutBeam

LayoutColumn

LayoutWall

WebOpenings WebOpening

FloorType

SlabEdges SlabEdge

LayoutIsolatedFnd

LayoutIContFnd

Decks Deck Points Point

LayoutMatPerim Points Point

LayoutBeams

LayoutColumns

LayoutWalls

LayoutIsolatedFnds

LayoutContFnds

LayoutMatPerims

LayoutHorizBraceLayoutHorizBraces

Can Get Here From Model

IConcreteCriteria

ISteelCriteria

Page 436: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 436/450

Stories Story

Beams

Columns

VerticalBraces

Walls

Beam

Column

VerticalBrace

Wall

GridSystems GridSystem Grids Grid

ConcSectProps

OtherSectProps

ConcSecProp

OtherSectProp

Iso la tedFnds Iso la tedFnd

ContFnds ContFnd

CompDeckProps CompDeckProp

MatFndPerims LayoutMatPerim

ClippedFndProps

ClippedFndProp

LayoutMatPropPoly Points PointLayoutMatPropPolys

ConcSlabProps ConcSlabProp

NonCompDeckProps NonCompDeckProp

HorizBrac es HorizBrac e

MatFndPropPolys MatPropPoly

Points

Point

PileConfigurations PileConfiguration

Piles Pile

SteelMaterials SteelMaterial

ConcreteMaterials ConcreteMaterial

OtherMaterials OtherMaterial

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 DataAccessfrom VB and includes information to help get you started

Limitat ions of DataAccess from VB/VBAVB and VBA do not support the full set of COM features that are used in RAM DataAccess. As a consequence there are some minordifferences in the method variable types, return values and error handling. Also a number of methods cannot be used in theseprogramming environments. Most, but not all, of the methods that cannot be used have equivalent methods in the new interfacesthat are compatible with VB/VBA. Also in most cases there are equivalent methods that will still let the user retrieve the required datawith 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

d L

Page 437: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 437/450

dw  Long

struct User Defined Data Type. These do not need to be defined in VB/VBA they should tobe 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 theDA method.

Return ValuesIf 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 usedby 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 aVB/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 tothe parameter list for the method, you can simply set that variable equal to that DA method.

Incompatible methodsIf 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 usingsuch a method you will get the following Compile Error:

Gett ing Started with DataAccess in VB/VBADA will already be installed on your computer if you have RAM Structural System v8.0 or later installed. Below you will findinstructions on getting started with DA. You will also find sample VB and Excel VBA projects in the DA Toolkit to give you anexample 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, theuser should be able to find the functions that they require.

Page 438: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 438/450

NOTE 2: You will want to install the RAM Common Control toolkit which is included with the RAM DataAccess toolkit before trying torun the VB or Excel VBA examples.

Adding RAM Data Access (DA) to your VBA Project  Open VBA. In MS Word select from the menu Tools-Macro-Visual Basic Editor

  In the VBA Editor menu select Tools-References

  In the References dialog box select the RAMDataAccess 2.0 Type Library

Adding RAM Data Access (DA) to your VB Project  Open a new project in VB

  Select References from the Project menu

  In the References dialog box select the RAMDataAccess 2.0 Type Library

Browsing through the DA functions  From the View menu in VB or VBA Editor select Object Browser or press the F2 key on your keyboard

  In the Object Browser select RAMDATAACCESSLib from the list of available libraries.

  You will see on the left side of the Object Browser a list of:

o  DA Structureso  DA Enumeratorso  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 thepanel below. For each function the information includes the function name, parameter list and return type as well as a shortdescription 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)

L d th d l b d fi i t i th t i l d th d l d l t th

Page 439: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 439/450

  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 nothingSet RAMDataAccIDBIO = Nothing

Error HandlingOne 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 tocheck 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 forerrors and respond to them. It is very important to trap errors and deal with them, otherwise the program will most likely crash. Youcan 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 CheckingIf Err.Number <> 0 Then

  InterfaceName.GetLastError strErrorShort, strErrorLong, lErrorNumIf lErrorNum <> 0 Then

MsgBox strErrorLong, Title:="Error!"End IfEnd 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 codethat 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 ifyou 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 440: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 440/450

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. Itis 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 theCOM 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 itselfis very simplistic, it does illustrate the use of the RAM DataAccess library as well as how to work with the geometric information inthe library.

General Instruc t ions for u sing RAM DataAccess

Using Interface PointersRegardless of the type of application you are going to create, the following pattern for using RAM DataAccess to access theStructural System database will be used.

Page 441: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 441/450

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 LoadDataBasemethod. First you must get the IRAMDataAccess1 interface pointer and then use it to create an IDBIO1 interface pointer. Once youhave that pointer, you can use the LoadDataBase method. Don’t forget to call IDBIO1::CloseDatabase when done with the model.

Strings and COMCOM 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.

Gett ing a Str ing FROM RAM DataAccess:

First declare a BSTR locally and use it to retrieve the string from DataAccess.

BSTR bstrJobName;m_pIModel-> get_strJobName(&bstrJobName);

The CString constructor will do the conversion from BSTR to CString

CString strJobName(bstrJobName);

Release the BSTR memory

::SysFreeString(bstrJobName);

Passing a Str ing 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:

Page 442: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 442/450

CString strName = “My String”;

 BSTR bstrName;bstrName = _bstr_t(strName);

ORchar 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 advantageto 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 itis a more complex method of memory management. When you find a method that has a double pointer  ‘pp’ in the parameter list,the following steps must be taken to manage the memory correctly.

The following method is used to get the entire rebar table for the concrete column program. Notice that an array of  SREIN_PROP’swill 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);

Page 443: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 443/450

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 methodof memory management.

The BasicsThese steps must be followed for any C++ application that will use RAM DataAccess. There is flexibility as to where in your code youchoose 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 cppfile. We recommend putting this code in the header file.

#import "C:\Ram10\prog\RamDataAccess.dll"using namespace RAMDATAACCESSLib;

Note that #import has a number of optional parameters that you can use. Their use or non-use controls how COM will throwerrors.

2. Declare an instance of the RAMDataAccess1 interface as follows. We recommend doing this in the header file and makingyour 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 cppfile), create the IRamDataAccess1Ptr. (If you will be using it as a local variable, this function call must appear at the beginningof each function with which you will be using RAM DataAccess.)

For a Conso le App:

CoInitialize(NULL);m_pDA.CreateInstance( _T("RAMDataAccess.RamDataAccess1.1") );

CoInitialize is a necessary step for a console app.

For MFC Apps that inc lude Autom at ion suppor t :

m_pDA.CreateInstance( _T("RAMDataAccess.RamDataAccess1.1") );

4. Use the m_pDA pointer created above to gain access to other interface pointers.

IM d lPt IM d l DA >G tI t f P i t B E (IM d l INT)

Page 444: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 444/450

IModelPtr pIModel = m_pDA->GetInterfacePointerByEnum(IModel_INT);

5. Use the newly created interface pointer to access the library methods.

IStoriesPtr pIStories = pIModel->GetStories();long lNumStories = pIStories->GetCount();

6. Be sure to close the database and release the pointers. The destructor is a good place to do that.

IDBIO1Ptr pDBIO = m_pDA->GetInterfacePointerByEnum(IDBIO1_INT);

if ((m_strModelName != "") && (pDBIO != NULL) ){

pDBIO->CloseDatabase();}

  pDBIO.Release();m_pDA.Release();

pDBIO = NULL;m_pDA = NULL;

SAMPLE PROGRAM: A Conso le AppThis is the simplest approach to a C++ project. Data will be entered through a Console Window (essentially a DOS window) or it canbe 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 makeprojects larger but it has several nice features that might make that worth it. For instance, strings are very easy to manipulate withthe CString class. Writing to a file is made very easy using the CFile class. These are not available without MFC support.

Programming

Page 445: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 445/450

g g

When the project was created, a file projectname .cpp was created and in it, a function called _tmain. The “else” section of theconditional statement is where you will write you code. You could write your entire program there but we recommend using classesand 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 areport 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. Followthrough the steps listed in “The Basics” to see how they are implemented in a Console App. 

Appendix D - Using RAMDataAccess in C++ with Smart Pointers

To include DA in a C++ project using smart pointers requires a few simple steps as follows:

1. Set up the MSVC++ project to include ActiveX Components and Automation.2. In the file or class that is going to need to call DA functions you will need to import the dll as follows:

#import “relative or exact path \RamDataAccess.dll” raw_interfaces_only  Note that raw_interfaces_only  is optional. When raw_interfaces_only is not used COM will throw a _com_error error whichneeds to be caught by using a catch (_com_error e ) statement. See example C++ project for more information on how thecode 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:

Page 446: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 446/450

5. Call functions from the interfaces and check the return error:

HRESULT hr = pDBIO->LoadDataBase(bstrName);if (SUCCEEDED(hr)){}else{

long lErrorCode;BSTR bstrErrorShort, bstrErrorLong;pDBIO->GetLastError(&bstrErrorShort, &bstrErrorLong, &lErrorCode);CString strErrorShort (bstrErrorShort);

CString strErrorLong (bstrErrorLong);::SysFreeString(bstrErrorShort); //Free the BSTR::SysFreeString(bstrErrorLong); //Free the BSTR

}

6. Note that before strings can be passed to a COM function they need to be converted to BSTR variable types as follows:

  To send a pointer to a string so it can be filled in DA

BSTR bstrStory;m_pIModelGeometry->GetStoryLabel(nStory, &bstrStory);strStory = bstrStory;::SysFreeString(bstrStory); //Free the BSTR memory

  To send a string into DA:BSTR bstrName;CString strName = _T("C:\\Ram80\\data\\Smallish");bstrName = strName.AllocSysString();pDBIO->LoadDataBase(bstrName);

7. When a parameter in a function starts with **pa this indicates that the array will be dimensioned in the DA function. It ishowever 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 anexample of the #include at the top of the f ile and the instantiation and use of the DA and its interfaces in CTestDADoc::OnTestDA method.

Page 447: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 447/450

Using smart pointers makes COM dlls act more like regular pointers to C++ classes and allows MS Dev Studio to provide the list ofmethods that are available for each interface as well as the list of parameters once you have selected the method. Getting interfacesis also significantly easier (it all acts more like VB). For more information on smart pointers look for the #import help topic inMSVC++.

To run the example place a break point in CTestDADoc::OnTestDA and select Open from the file menu.

Appendix E – Additional Load Case Information

Load Case Type labels:

Label MeaningRAMUSER Gravity load modeled in RAM ModelerRAMUSERNODAL_ type  Nodal load modeled in RAM Modeler where:

type W for wind, S for seismic, O for other, V for virtual

W_User User defined story force of type WindWind_code_ direction  Generated Wind force where:

code is the code selected to generate the forcesdirection indicates the direction of the force (X or Y)

EQ_User User defined story force of type Earthquake (seismic)EQ_ code_dir_eccentricity   Generated Earthquake force where:

code is the code selected to generate the forcesdir indicates the direction of the force (X or Y)eccentricity +E = positive eccentricity

-E = negative eccentricityDyn_ code_CQC_direction  Dynamic Load Case using Response Sprectra

code is the code selected to generate the forces

Page 448: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 448/450

code is the code selected to generate the forces

if code is not shown this indicates a general CQCsolution.

dir indicates the direction of the force (X or Y)Eigen Solution Dynamic Load Case using Eigen Solutions.Center of Rigidity Center of RigidityVirtual 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 ModelerNodalLateralLoadType =1 Nodal Lateral load modeled in RAM ModelerWindLoadType = 2 Wind defined in RAM FrameSeismicLoadType = 3 Seismic defined in RAM FrameDynamicLoadType = 4 Dynamic defined in RAM FrameOtherLoadType = 5 “Other” defined in RAM Frame

 

Load Case Sub-Load Types (as integers):

Load Type Sub-Load Type

RamSteelLoadType GRAVITY_LOAD 0x0001 Dead Load

POS_RED_LLPOS_STORAGE_LLPOS_NONRED_LL

0x00020x00080x0080

3 types of positiveLive Load

NEG_RED_LLNEG_STORAGE_LLNEG_NONRED_LL

0x00040x00100x0100

3 types ofnegative LiveLoad

POS_ROOF_LL 0x0020 Positive Roof Live

Load (can bereducible or snow)

NEG_ROOF_LL 0x0040 Negative RoofLive Load (can bereducible or snow)

NodalLateralLoadType WIND_NODAL2SEISMIC_NODAL2OTHER_NODAL2VIRTUAL_NODAL2

0123

4 types of nodallateral loads

WindLoadTypeSeismicLoadType

Page 449: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 449/450

SeismicLoadType

DynamicLoadType EIGEN_SOLUTION2RESPONSE_SPECTRA2RESPONSE_SPECTRA_UBC972RESPONSE_SPECTRA_IBC20002

0123

4 types ofDynamic loads

OtherLoadType USER_DEFINED_STORY2CENTER_RIGIDITY2VIRTUAL_LOADCASE2

012

3 types of “Other”loads.

 

Appendix F – Shear wall interface constants

IWallCodeResult Hint Flags 

0: No Hint1: Function not found (internal error)2: Other internal error3: All checks pass (no hint required)4: No hint possible6: Increase concrete area of cross-section7: Increase depth8: Increase breadth9: Increase concrete grade10: Increase number of curtains12: Increase area of tension reinforcement13: Increase area of compression reinforcement14: Increase bar spacing15: Increase reinforcement area and increase bar spacing16: Decrease bar spacing17: Increase longitudinal reinforcement area18: Increase reinforcement area and decrease bar spacing20: Increase transverse reinforcement area

Page 450: RAM DataAccess Developers Guide

7/18/2019 RAM DataAccess Developers Guide

http://slidepdf.com/reader/full/ram-dataaccess-developers-guide-5691bec8ced18 450/450

IWallLimitCheck General Classification Code

0: Axial1: Shear2: Flexural3: Axial Flexural4: Clear Cover5: Concrete Strength6: Bar Size7: Bar Spacing

8: Reinforcement Ratio9: Bar Placement10: Reinforcement Detailing11: Fire Limit State12: Confinement13: Member Dimensions

 IWallLimitCheck Specific Classification Code

14: Axial strength15: Flexural strength in design axis 116: Flexural strength in design axis 217: Shear strength in the design axis 118: Shear strength in the design axis 219: Positive flexural strength20: Negative flexural strength21: Minimum horizonal reinforcement ratio22: Minimum vertical reinforcement ratio23: Maximum horizonal reinforcement ratio24: Maximum vertical reinforcement ratio

25: Minimum horizontal bar spacing26: Minimum vertical bar spacing27: Maximum horizontal bar spacing28: Maximum vertical bar spacing29: Maximum tie reinforcement bar spacing