/***************************************************/ private bool CreateObject(LoadCombination loadCombination) { if (m_model.RespCombo.Add(loadCombination.Name, 0) == 0) //0=case, 1=combo { foreach (var factorCase in loadCombination.LoadCases) { double factor = factorCase.Item1; Type lcType = factorCase.Item2.GetType(); string lcName = factorCase.Item2.Name;// factorCase.Item2.Name;// Number.ToString(); eCNameType cTypeName = eCNameType.LoadCase; if (lcType == typeof(Loadcase)) { cTypeName = eCNameType.LoadCase; } else if (lcType == typeof(LoadCombination)) { cTypeName = eCNameType.LoadCombo; } m_model.RespCombo.SetCaseList(loadCombination.Name, ref cTypeName, lcName, factor); } SetAdapterId(loadCombination, loadCombination.Name); } else { CreateElementError(loadCombination.GetType().ToString(), loadCombination.Name); } return(true); }
public static void SetLoadCombination(cSapModel model, LoadCombination loadCombination) { //string combinationName = loadCombination.CustomData[AdapterId].ToString(); string combinationName = CaseNameToCSI(loadCombination); model.RespCombo.Add(combinationName, 0);//0=case, 1=combo foreach (var factorCase in loadCombination.LoadCases) { double factor = factorCase.Item1; Type lcType = factorCase.Item2.GetType(); string lcName = CaseNameToCSI(factorCase.Item2);// factorCase.Item2.Name;// Number.ToString(); eCNameType cTypeName = eCNameType.LoadCase; if (lcType == typeof(Loadcase)) { cTypeName = eCNameType.LoadCase; } else if (lcType == typeof(LoadCombination)) { cTypeName = eCNameType.LoadCombo; } model.RespCombo.SetCaseList(combinationName, ref cTypeName, lcName, factor); } }
//Add Load Combinations to Sap public static void AddLoadCombinations() { eCNameType ec = eCNameType.LoadCase; for (int i = 0; i < Combinations.Count; i++) { mySapModel.MySapObjectModel.RespCombo.Add(Combinations[i], 0); mySapModel.MySapObjectModel.RespCombo.SetCaseList(Combinations[i], ref ec, loadCaseName[i] , loadFactorList[i]); } }
/***************************************************/ private bool CreateObject(LoadCombination loadcombination) { eCNameType nameType = eCNameType.LoadCase; int caseNameCount = 0; string[] caseNameArr = null; m_model.LoadPatterns.GetNameList(ref caseNameCount, ref caseNameArr); if (m_model.RespCombo.Add(loadcombination.Name, 0) == 0) { SetAdapterId(loadcombination, loadcombination.Name); foreach (Tuple <double, ICase> comboCase in loadcombination.LoadCases) { double factor = comboCase.Item1; ICase bhomCase = comboCase.Item2; string caseName = ""; if (bhomCase.HasAdapterIdFragment(typeof(SAP2000Id))) { caseName = GetAdapterId <string>(bhomCase); } else if (caseNameArr.Contains(bhomCase.Name)) { caseName = bhomCase.Name; } else { Engine.Base.Compute.RecordWarning($"case {bhomCase.Name} has no SAP2000_id, and no case with that name was found in the model. Try pushing the loadcase and using the result of that push to build the combo."); } if (m_model.RespCombo.SetCaseList(loadcombination.Name, ref nameType, caseName, factor) != 0) { Engine.Base.Compute.RecordWarning("Could not add case " + bhomCase.Name + " to combo " + loadcombination.Name); } } } else { CreateElementError("Load Combination", loadcombination.Name); } return(true); }
public static bool AddLoadCombination(SAPLoadCombination comb) { int flag = mySapModel.RespCombo.Add(comb.Name, (int)comb.CombType);//Adding a new combination if (comb.LoadCases != null) { for (int i = 0; i < comb.LoadCases.Count; i++) { eCNameType type = eCNameType.LoadCase; string caseName = comb.LoadCases[i].Name; if (comb.LoadCases[i].IsDefinedInSAP == false) { //AddLoadCase(); //TODO } float scaleFactor = comb.LoadCasesFactors[i]; mySapModel.RespCombo.SetCaseList(comb.Name, ref type, caseName, scaleFactor);//Adding defined load cases to the combination } } if (comb.LoadCombos != null) { for (int i = 0; i < comb.LoadCombos.Count; i++) { eCNameType type = eCNameType.LoadCombo; string comboName = comb.LoadCombos[i].Name; if (comb.LoadCombos[i].IsDefinedInSAP == false) { AddLoadCombination(comb.LoadCombos[i]); } float scaleFactor = comb.LoadCombosFactors[i]; mySapModel.RespCombo.SetCaseList(comb.Name, ref type, comboName, scaleFactor);//Adding defined load combos to the combination } } if (flag != 0) { comb.IsDefinedInSAP = false; return(false); } comb.IsDefinedInSAP = true; return(true); }
public static void AddLoadCombo(ref cSapModel Model, string Name, string[] Types, string[] CName, double[] SF, string LCType) { int LCTypeInt = 0; if (LCType == "Linear Additive") { LCTypeInt = 0; } else if (LCType == "Envelope") { LCTypeInt = 1; } else if (LCType == "Absolute Additive") { LCTypeInt = 2; } else if (LCType == "SRSS") { LCTypeInt = 3; } else if (LCType == "Range Additive") { LCTypeInt = 4; } //add the Combination int ret = Model.RespCombo.Add(Name, (LCTypeInt)); foreach (string def in CName) { int pos = Array.IndexOf(CName, def); //get the type of the definition eCNameType type = (eCNameType)Enum.Parse(typeof(eCNameType), Types.ElementAt(pos)); //set the type of the combination ret = Model.RespCombo.SetCaseList(Name, ref type, def, SF.ElementAt(pos)); } }
private static bool GetLoadCombinationCases(string comboName, out List <SAPLoadCase> loadCases, out List <SAPLoadCombination> loadCombos, out List <float> loadCasesFactors, out List <float> loadCombosFactors) { loadCases = new List <SAPLoadCase>(); loadCombos = new List <SAPLoadCombination>(); loadCasesFactors = new List <float>(); loadCombosFactors = new List <float>(); int noComponents = 0; string[] names = new string[1]; eCNameType[] types = new eCNameType[1]; double[] factors = new double[1]; int flag = mySapModel.RespCombo.GetCaseList(comboName, ref noComponents, ref types, ref names, ref factors); if (flag != 0) { loadCases = null; loadCombos = null; return(false); } else { for (int i = 0; i < noComponents; i++) { if (i >= types.Count()) { continue; } switch (types[i]) { case eCNameType.LoadCase: SAPLoadCase Case = new SAPLoadCase(); Case.Name = names[i]; Case.IsDefinedInSAP = true; loadCases.Add(Case); loadCasesFactors.Add((float)factors[i]); break; case eCNameType.LoadCombo: SAPLoadCombination combo = new SAPLoadCombination(); combo.Name = names[i]; combo.IsDefinedInSAP = true; bool comboFlag = GetLoadCombinationCases(combo.Name, out combo.loadCases, out combo.loadCombos, out combo.loadCasesFactors, out combo.loadCasesFactors); if (comboFlag == false) { throw new Exception("Couldn't retrieve combo cases"); } else { loadCombos.Add(combo); loadCombosFactors.Add((float)factors[i]); } break; default: break; } } return(true); } }