/***************************************************/ /**** 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); }
private bool CreateCollection(IEnumerable <LoadCombination> loadcombinations) { foreach (LoadCombination loadcombination in loadcombinations) { IFBasicCombination lusasLoadCombination = CreateLoadCombination(loadcombination); if (lusasLoadCombination == null) { return(false); } } return(true); }
/***************************************************/ 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); }
/***************************************************/ 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); }
/***************************************************/ /**** 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); }