Esempio n. 1
0
        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);
        }