I'm using Ram SS v15.05, x64 on Windows 10. I'm writing a script using c# to output column forces for a ColumnStack. My current envisioned procedure is as follows:
- Get the defined load cases from the IModel interface:
RamModel = RamInterface.GetDispInterfacePointerByEnum(EINTERFACES.IModel_INT);
var loadCases = RamModel.GetLoadCases(EAnalysisResultType.RAMConcreteResultType);
Unfortunately, the GetLoadCases returns 0 load cases (even though the ram concrete module is run in that model). It only works if I specify an EAnalysisResultType.RAMFrameResultType. Is there another way to access the RamConcrete load case IDs to then be able to extract the forces?
Here are few RAM DataAccess methods related to forces in the RAM Concrete analysis.
IForces2.GetMemberForcesLeftAt() – Use to get at beam forces
IForces2.GetConcBeamLiveEnvLeftAt() – Use to get at skip live load envelopes
IForces2.GetMemberForces() – Use to get at column forces
IForces2.GetConcColumnLiveSkipCase() – Use to get at skip live load cases
A few enhancements were made in RAM Structural System 15.05 to expose RAM Concrete Analysis forces in RAM DataAccess, so some of the methods noted above may not have been available or hooked up in previous versions. Please note, the load case unique IDs do not change for the gravity cases and always exist in the Concrete analysis (even if there are no forces).
I've finally got around to implementing the column forces from Ram Concrete Analysis in a custom program. I'm writing the code in C# and when I try to first get the analysis case IDs I hit a snag. From the DataAccess documentation:
When I implement IForces2.GetAnalysisCasesIDArray() in c#, I get the following:
The function asks for a ref of an integer, and not an array. It returns a single value instead of a list of IDs. I'm not sure how to proceed.
Here's the relevant code in VBA:
Dim IForces2 As RAMDATAACCESSLib.IForces2 Set IForces2 = RAMDataAcc1.GetDispInterfacePointerByEnum(IForces2_INT) Dim lNumConcreteCases As Long Dim alConcreteAnalysisCaseIDs() As Long IForces2.GetNumAnalysisCases RAMConcreteResultType, lNumConcreteCases ReDim alConcreteAnalysisCaseIDs(lNumConcreteCases - 1) IForces2.GetAnalysisCasesIDArray RAMConcreteResultType, alConcreteAnalysisCaseIDs(0)