Пример #1
0
        /***************************************************/
        /**** Public Methods                            ****/
        /***************************************************/

        public static LoadCombination ToLoadCombination(
            this IFBasicCombination lusasLoadCombination,
            Dictionary <string, Loadcase> loadcases)
        {
            object[] loadcaseIDs     = lusasLoadCombination.getLoadcaseIDs();
            object[] loadcaseFactors = lusasLoadCombination.getFactors();

            List <Tuple <double, ICase> > factoredLoadcases = new List <Tuple <double, ICase> >();
            Loadcase loadcase = null;

            for (int i = 0; i < loadcaseIDs.Count(); i++)
            {
                int    loadcaseID     = (int)loadcaseIDs[i];
                double loadcaseFactor = (double)loadcaseFactors[i];
                loadcases.TryGetValue(loadcaseID.ToString(), out loadcase);
                Tuple <double, ICase> factoredLoadcase = new Tuple <double, ICase>(loadcaseFactor, loadcase);
                factoredLoadcases.Add(factoredLoadcase);
            }

            LoadCombination loadCombination = new LoadCombination
            {
                Name      = GetName(lusasLoadCombination),
                Number    = lusasLoadCombination.getID(),
                LoadCases = factoredLoadcases
            };

            int adapterNameId = lusasLoadCombination.getID();

            loadCombination.SetAdapterId(typeof(LusasId), adapterNameId);

            return(loadCombination);
        }
Пример #2
0
        private bool CreateCollection(IEnumerable <LoadCombination> loadcombinations)
        {
            foreach (LoadCombination loadcombination in loadcombinations)
            {
                IFBasicCombination lusasLoadCombination = CreateLoadCombination(loadcombination);

                if (lusasLoadCombination == null)
                {
                    return(false);
                }
            }

            return(true);
        }
Пример #3
0
        /***************************************************/

        internal static string GetName(IFBasicCombination lusasLoadCombination)
        {
            string loadcaseName = "";

            if (lusasLoadCombination.getName().Contains("/"))
            {
                loadcaseName = lusasLoadCombination.getName().Substring(
                    lusasLoadCombination.getName().LastIndexOf("/") + 1);
            }
            else
            {
                loadcaseName = lusasLoadCombination.getName();
            }

            return(loadcaseName);
        }
Пример #4
0
        /***************************************************/

        internal static int GetAdapterID(IFBasicCombination lusasLoadCombination, char lastCharacter)
        {
            int adapterID = 0;

            lusasLoadCombination.getName();

            if (lusasLoadCombination.getName().Contains("/"))
            {
                adapterID = int.Parse(lusasLoadCombination.getName().Split(lastCharacter, '/')[1]);
            }
            else
            {
                adapterID = lusasLoadCombination.getID();
            }

            return(adapterID);
        }
Пример #5
0
        /***************************************************/
        /**** Private Methods                           ****/
        /***************************************************/

        private List <LoadCombination> ReadLoadCombinations(List <string> ids = null)
        {
            List <LoadCombination> loadCombinations = new List <LoadCombination>();

            object[] lusasCombinations = d_LusasData.getLoadsets("Combinations");

            if (!(lusasCombinations.Count() == 0))
            {
                List <Loadcase> lusasLoadcases = ReadLoadcases();
                Dictionary <string, Loadcase> loadcaseDictionary = lusasLoadcases.ToDictionary(
                    x => x.Number.ToString());

                for (int i = 0; i < lusasCombinations.Count(); i++)
                {
                    IFBasicCombination lusasCombination = (IFBasicCombination)lusasCombinations[i];
                    LoadCombination    loadCombination  =
                        Adapters.Lusas.Convert.ToLoadCombination(lusasCombination, loadcaseDictionary);
                    loadCombinations.Add(loadCombination);
                }
            }

            return(loadCombinations);
        }