From a5c2262f53bf814aa3df0d3eb058da2f2c5608e6 Mon Sep 17 00:00:00 2001 From: lorinczandrea Date: Mon, 15 Jan 2024 16:46:14 +0100 Subject: [PATCH] diaphragm calc type set to integer #932 --- FemDesign.Core/Calculate/Analysis.cs | 9 +- .../CalculationParametersAnalysisDefine.cs | 14 +- ...lationParametersAnalysisDefine_OBSOLETE.cs | 4 +- ...onParametersAnalysisDefine_OBSOLETE2212.cs | 203 ++++++++++++++++++ ...nParametersAnalysisDefine_OBSOLETE_2260.cs | 4 +- .../FemDesign.Grasshopper.csproj | 3 +- 6 files changed, 226 insertions(+), 11 deletions(-) create mode 100644 FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE2212.cs diff --git a/FemDesign.Core/Calculate/Analysis.cs b/FemDesign.Core/Calculate/Analysis.cs index 1f625c8c8..e3d3f329e 100644 --- a/FemDesign.Core/Calculate/Analysis.cs +++ b/FemDesign.Core/Calculate/Analysis.cs @@ -188,9 +188,9 @@ public bool ElemFine } } [XmlAttribute("diaphragm")] - public bool _diaphragm; + public int _diaphragm; [XmlIgnore] - public bool Diaphragm + public int Diaphragm { get { @@ -198,6 +198,9 @@ public bool Diaphragm } set { + if (value < 0 || value > 2) + throw new ArgumentException($"Diaphragm is set to {value}. Value must be '0'= None , '1'= Rigid membrane or '2'= Fully rigid."); + this._diaphragm = value; } } @@ -223,7 +226,7 @@ private Analysis() { } - public Analysis(Calculate.Stage stage = null, Stability stability = null, Imperfection imperfection = null, Comb comb = null, Freq freq = null, Footfall footfall = null, bool calcCase = false, bool calcCStage = false, bool calcImpf = false, bool calcComb = false, bool calcGMax = false, bool calcStab = false, bool calcFreq = false, bool calcSeis = false, bool calcDesign = false, bool calcFootfall = false, bool elemFine = true, bool diaphragm = false, bool peakSmoothing = false) + public Analysis(Calculate.Stage stage = null, Stability stability = null, Imperfection imperfection = null, Comb comb = null, Freq freq = null, Footfall footfall = null, bool calcCase = false, bool calcCStage = false, bool calcImpf = false, bool calcComb = false, bool calcGMax = false, bool calcStab = false, bool calcFreq = false, bool calcSeis = false, bool calcDesign = false, bool calcFootfall = false, bool elemFine = true, int diaphragm = 0, bool peakSmoothing = false) { this.Stage = stage; this.Comb = comb ?? Comb.Default(); diff --git a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs index 3003f8b2e..553c88f83 100644 --- a/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs +++ b/FemDesign.Grasshopper/Calculate/CalculationParametersAnalysisDefine.cs @@ -1,6 +1,10 @@ // https://strusoft.com/ using System; +using System.Collections.Generic; using Grasshopper.Kernel; +using Grasshopper.Kernel.Special; + +using FemDesign.Grasshopper.Extension.ComponentExtension; namespace FemDesign.Grasshopper { @@ -46,7 +50,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("elemfine", "elemfine", "Fine or standard elements", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddBooleanParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, false); + pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation. Connect 'ValueList' to get the options.\n\n'0'= None\n'1'= Rigid membrane\n'2'= Fully rigid", GH_ParamAccess.item, 0); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("peakSmoothing", "peakSmoothing", "Peak smoothing of internal forces", GH_ParamAccess.item, false); pManager[pManager.ParamCount - 1].Optional = true; @@ -55,6 +59,10 @@ protected override void RegisterOutputParams(GH_OutputParamManager pManager) { pManager.AddGenericParameter("Analysis", "Analysis", "Analysis.", GH_ParamAccess.item); } + protected override void BeforeSolveInstance() + { + ValueListUtils.updateValueLists(this, 17, new List { "None", "Rigid membrane", "Fully rigid" }, new List { 0, 1, 2 }, GH_ValueListMode.DropDown); + } protected override void SolveInstance(IGH_DataAccess DA) { FemDesign.Calculate.Stage stage = null; @@ -163,7 +171,7 @@ protected override void SolveInstance(IGH_DataAccess DA) // pass } - bool diaphragm = false; + int diaphragm = 0; if (!DA.GetData(17, ref diaphragm)) { // pass @@ -195,7 +203,7 @@ protected override System.Drawing.Bitmap Icon } public override Guid ComponentGuid { - get { return new Guid("{859B03EA-4AF7-4F30-8788-C6A7B3EC0072}"); } + get { return new Guid("{CC77B519-A3C2-44AC-BD6A-228E7000A836}"); } } public override GH_Exposure Exposure => GH_Exposure.secondary; diff --git a/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE.cs b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE.cs index 0a5555665..d2f328495 100644 --- a/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE.cs +++ b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE.cs @@ -42,7 +42,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("elemfine", "elemfine", "Fine or standard elements", GH_ParamAccess.item, false); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddBooleanParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, false); + pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, 0); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("peakSmoothing", "peakSmoothing", "Peak smoothing of internal forces", GH_ParamAccess.item, false); } @@ -144,7 +144,7 @@ protected override void SolveInstance(IGH_DataAccess DA) // pass } - bool diaphragm = false; + int diaphragm = 0; if (!DA.GetData(15, ref diaphragm)) { // pass diff --git a/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE2212.cs b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE2212.cs new file mode 100644 index 000000000..44561fc66 --- /dev/null +++ b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE2212.cs @@ -0,0 +1,203 @@ +// https://strusoft.com/ +using System; +using Grasshopper.Kernel; + +namespace FemDesign.Grasshopper +{ + public class CalculationParametersAnalysisDefine_OBSOLETE2212 : FEM_Design_API_Component + { + public CalculationParametersAnalysisDefine_OBSOLETE2212() : base("Analysis.Define", "Analysis", "Set parameters for analysis.", CategoryName.Name(), SubCategoryName.Cat7a()) + { + + } + protected override void RegisterInputParams(GH_InputParamManager pManager) + { + pManager.AddGenericParameter("StageSetting", "StageSetting", "Definition for construction stage calculation method. Optional, if undefined default values will be used - for reference please see default values of Stage.Define component.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Comb", "Comb", "Load combination calculation options. Optional, if undefined default values will be used - for reference please see default values of Comb.Define component.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Stability", "Stability", "Stability calculation options.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Imperfection", "Imperfection", "Imperfection calculation options.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Freq", "Freq", "Eigienfrequency calculation options. Optional, if undefined default values will be used - for reference please see default values of Freq.Define component.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddGenericParameter("Footfall", "Footfall", "Footfall calculation options. Optional, if undefined default values will be used - for reference please see default values of Footfall.Define component.", GH_ParamAccess.item); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcCase", "calcCase", "Load cases.", GH_ParamAccess.item, true); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcComb", "calcComb", "Load combinations", GH_ParamAccess.item, true); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcCstage", "calcCstage", "Construction stages.", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcImpf", "calcImpf", "Imperfections", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcGmax", "calcGmax", "Maximum of load groups.", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcStab", "calcStab", "Stability analysis.", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcFreq", "calcFreq", "Eigenfrequencies", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcSeis", "calcSeis", "Seismic analysis.", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcDesign", "calcDesign", "Design calculations", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("calcFootfall", "calcFootfall", "Footfall analysis", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("elemfine", "elemfine", "Fine or standard elements", GH_ParamAccess.item, true); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, 0); + pManager[pManager.ParamCount - 1].Optional = true; + pManager.AddBooleanParameter("peakSmoothing", "peakSmoothing", "Peak smoothing of internal forces", GH_ParamAccess.item, false); + pManager[pManager.ParamCount - 1].Optional = true; + } + protected override void RegisterOutputParams(GH_OutputParamManager pManager) + { + pManager.AddGenericParameter("Analysis", "Analysis", "Analysis.", GH_ParamAccess.item); + } + protected override void SolveInstance(IGH_DataAccess DA) + { + FemDesign.Calculate.Stage stage = null; + if (!DA.GetData(0, ref stage)) + { + // pass + } + + + FemDesign.Calculate.Comb _comb = FemDesign.Calculate.Comb.Default(); + if (!DA.GetData(1, ref _comb)) + { + // pass + } + + + FemDesign.Calculate.Stability _stability = null; + if (!DA.GetData(2, ref _stability)) + { + // pass + } + + + FemDesign.Calculate.Imperfection _imperfection = null; + if (!DA.GetData(3, ref _imperfection)) + { + //pass + } + + FemDesign.Calculate.Freq _freq = null; + if (!DA.GetData(4, ref _freq)) + { + // pass + } + + FemDesign.Calculate.Footfall _footfall = null; + if (!DA.GetData(5, ref _footfall)) + { + // pass + } + + bool calcCase = false; + if (!DA.GetData("calcCase", ref calcCase)) + { + // pass + } + + bool calcComb = false; + if (!DA.GetData("calcComb", ref calcComb)) + { + // pass + } + + bool calcCstage = false; + if (!DA.GetData(8, ref calcCstage)) + { + // pass + } + + bool calcImpf = false; + if (!DA.GetData(9, ref calcImpf)) + { + // pass + } + + + bool calcGMax = false; + if (!DA.GetData(10, ref calcGMax)) + { + // pass + } + + bool calcStab = false; + if (!DA.GetData(11, ref calcStab)) + { + // pass + } + + bool calcFreq = false; + if (!DA.GetData(12, ref calcFreq)) + { + // pass + } + + bool calcSeis = false; + if (!DA.GetData(13, ref calcSeis)) + { + // pass + } + + bool calcDesign = false; + if (!DA.GetData(14, ref calcDesign)) + { + // pass + } + + bool calcFootfall = false; + if (!DA.GetData(15, ref calcFootfall)) + { + // pass + } + + bool elemFine = true; + if (!DA.GetData(16, ref elemFine)) + { + // pass + } + + int diaphragm = 0; + if (!DA.GetData(17, ref diaphragm)) + { + // pass + } + + bool peakSmoothing = false; + if (!DA.GetData(18, ref peakSmoothing)) + { + // pass + } + + if (stage == null || _comb == null || _freq == null) + { + // pass + } + + // + FemDesign.Calculate.Analysis obj = new FemDesign.Calculate.Analysis(stage, _stability.DeepClone(), _imperfection.DeepClone(), _comb.DeepClone(), _freq.DeepClone(), _footfall.DeepClone(), calcCase, calcCstage, calcImpf, calcComb, calcGMax, calcStab, calcFreq, calcSeis, calcDesign, calcFootfall, elemFine, diaphragm, peakSmoothing); + + // return + DA.SetData(0, obj); + } + protected override System.Drawing.Bitmap Icon + { + get + { + return FemDesign.Properties.Resources.AnalysisDefine; + } + } + public override Guid ComponentGuid + { + get { return new Guid("{859B03EA-4AF7-4F30-8788-C6A7B3EC0072}"); } + } + + public override GH_Exposure Exposure => GH_Exposure.hidden; + } +} \ No newline at end of file diff --git a/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE_2260.cs b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE_2260.cs index 4be6fc2be..cb4d7c50f 100644 --- a/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE_2260.cs +++ b/FemDesign.Grasshopper/Calculate/OBSOLETE/CalculationParametersAnalysisDefine_OBSOLETE_2260.cs @@ -46,7 +46,7 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("elemfine", "elemfine", "Fine or standard elements", GH_ParamAccess.item, true); pManager[pManager.ParamCount - 1].Optional = true; - pManager.AddBooleanParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, false); + pManager.AddIntegerParameter("diaphragm", "diaphragm", "Diaphragm calculation.", GH_ParamAccess.item, 0); pManager[pManager.ParamCount - 1].Optional = true; pManager.AddBooleanParameter("peakSmoothing", "peakSmoothing", "Peak smoothing of internal forces", GH_ParamAccess.item, false); pManager[pManager.ParamCount - 1].Optional = true; @@ -163,7 +163,7 @@ protected override void SolveInstance(IGH_DataAccess DA) // pass } - bool diaphragm = false; + int diaphragm = 0; if (!DA.GetData(17, ref diaphragm)) { // pass diff --git a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj index d946616fc..a2625f45d 100644 --- a/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj +++ b/FemDesign.Grasshopper/FemDesign.Grasshopper.csproj @@ -70,6 +70,7 @@ Properties\GlobalAssemblyInfo.cs + @@ -113,7 +114,7 @@ - +