private List <Loadcase> ReadLoadcase(List <string> ids = null) { List <Loadcase> loadCases = new List <Loadcase>(); int err = 0; int loadCaseCount = 0; err = St7.St7GetNumLoadCase(1, ref loadCaseCount); if (!St7ErrorCustom(err, "Could not get loadcases")) { return(loadCases); } for (int ldCs = 1; ldCs <= loadCaseCount; ldCs++) { StringBuilder loadCaseName = new StringBuilder(St7.kMaxStrLen); err = St7.St7GetLoadCaseName(1, ldCs, loadCaseName, St7.kMaxStrLen); if (!St7ErrorCustom(err, "Could not get a name of loadcase " + ldCs)) { continue; } int caseType = 0; err = St7.St7GetLoadCaseType(1, ldCs, ref caseType); if (!St7ErrorCustom(err, "Could not get a type of loadcase " + ldCs)) { continue; } Loadcase ldcase = null; if (caseType == St7.lcNoInertia) { ldcase = BH.Engine.Structure.Create.Loadcase(loadCaseName.ToString(), ldCs); } else if (caseType == St7.lcAccelerations) { ldcase = BH.Engine.Structure.Create.Loadcase(loadCaseName.ToString(), ldCs, LoadNature.Notional); } else if (caseType == St7.lcSeismic) { ldcase = BH.Engine.Structure.Create.Loadcase(loadCaseName.ToString(), ldCs, LoadNature.Seismic); } else if (caseType == St7.lcGravity) { ldcase = BH.Engine.Structure.Create.Loadcase(loadCaseName.ToString(), ldCs, LoadNature.Dead); } else { BHError("Load Type is not supported"); } if (!(ldcase is null)) { SetAdapterId(ldcase, ldCs); ldcase.Number = ldCs; loadCases.Add(ldcase); } } return(loadCases); }