Skip to content

Commit

Permalink
GSAGH-499: class name updated to suit existing structure
Browse files Browse the repository at this point in the history
  • Loading branch information
SandeepArup committed Jan 27, 2025
1 parent 9fa2939 commit 1a367a7
Show file tree
Hide file tree
Showing 12 changed files with 88 additions and 56 deletions.
23 changes: 14 additions & 9 deletions GsaGH/Components/4_Analysis/CreateAnalysisTask.cs
Original file line number Diff line number Diff line change
Expand Up @@ -57,9 +57,9 @@ internal static readonly IReadOnlyDictionary<string, AnalysisTaskType> _solverTy
};

private readonly InputAttributes _modalDynamicParameterInputAttributes = new InputAttributes {
NickName = GsaModalDynamicAnalysisGoo.NickName,
Name = GsaModalDynamicAnalysisGoo.Name,
Description = GsaModalDynamicAnalysisGoo.Description,
NickName = GsaModalDynamicGoo.NickName,
Name = GsaModalDynamicGoo.Name,
Description = GsaModalDynamicGoo.Description,
Access = GH_ParamAccess.item,
Optional = true,
};
Expand Down Expand Up @@ -111,7 +111,6 @@ public CreateAnalysisTask() : base($"Create {GsaAnalysisTaskGoo.Name}",

public override bool Read(GH_IReader reader) {
_casesParamIndex = reader.GetInt32("_casesParamIndex");
_analysisTaskType = (AnalysisTaskType)reader.GetInt32("_analysisTaskType");
return base.Read(reader);
}

Expand Down Expand Up @@ -169,7 +168,6 @@ private PDeltaCases GetKeyFromMatchingValue(string valueToMatch) {

public override bool Write(GH_IWriter writer) {
writer.SetInt32("_casesParamIndex", _casesParamIndex);
writer.SetInt32("_analysisTaskType", (int)_analysisTaskType);
return base.Write(writer);
}

Expand Down Expand Up @@ -266,6 +264,7 @@ private bool GetAnalysisCases(IGH_DataAccess da, out List<GsaAnalysisCase> cases
cases.Add(goo.Value.Duplicate());
} else {
UnsupportedValueError(ghTypeWrapper);
return false;
}
}
}
Expand All @@ -280,7 +279,6 @@ private bool GetAnalysisCases(IGH_DataAccess da, out List<GsaAnalysisCase> cases
}
if (cases == null) {
this.AddRuntimeRemark("Default Task has been created; it will by default contain all cases found in model");
return false;
}
return true;
}
Expand Down Expand Up @@ -390,9 +388,9 @@ private bool CreateFootfallTask(IGH_DataAccess da, string name, out AnalysisTask

private static bool CreateModalDynamicTask(IGH_DataAccess da, string name, out AnalysisTask task) {
task = null;
GsaModalDynamicAnalysisGoo gsaModalDynamicAnalysisGoo = null;
GsaModalDynamicGoo gsaModalDynamicAnalysisGoo = null;
if (da.GetData(2, ref gsaModalDynamicAnalysisGoo)) {
GsaModalDynamicAnalysis dynamicAnalysisParameter = gsaModalDynamicAnalysisGoo.Value;
GsaModalDynamic dynamicAnalysisParameter = gsaModalDynamicAnalysisGoo.Value;
task = AnalysisTaskFactory.CreateModalDynamicAnalysisTask(name, new ModalDynamicTaskParameter(dynamicAnalysisParameter.ModeCalculationStrategy, dynamicAnalysisParameter.MassOption, dynamicAnalysisParameter.AdditionalMassDerivedFromLoads, dynamicAnalysisParameter.ModalDamping));
return true;

Check warning on line 395 in GsaGH/Components/4_Analysis/CreateAnalysisTask.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Components/4_Analysis/CreateAnalysisTask.cs#L393-L395

Added lines #L393 - L395 were not covered by tests
}
Expand Down Expand Up @@ -511,6 +509,13 @@ private static bool HasDirectionFromString(out ResponseDirection responseDirecti
return true;
}

protected override void UpdateUIFromSelectedItems() {
_analysisTaskType = _solverTypes[_selectedItems[0]];
UpdateParameters();

base.UpdateUIFromSelectedItems();
}

private void UpdateParameters() {
UnregisterInputsOverTwo();
switch (_analysisTaskType) {
Expand Down Expand Up @@ -557,7 +562,7 @@ private void UpdateParameters() {

break;
case AnalysisTaskType.ModalDynamic:
Params.RegisterInputParam(new GsaModalDynamicAnalysisParameter());
Params.RegisterInputParam(new GsaModalDynamicParameter());
_casesParamIndex = 2;
break;
default:
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,16 @@ namespace GsaGH.Components {
/// <summary>
/// Component to create a GSA Analysis Case
/// </summary>
public class CreateModalDynamicAnalysisParameter : GH_OasysDropDownComponent {
public class CreateModalDynamicParameter : GH_OasysDropDownComponent {
public override Guid ComponentGuid => new Guid("75bf6454-92c4-4a3c-8abf-75f1d449cb85");
public override GH_Exposure Exposure => GH_Exposure.tertiary | GH_Exposure.obscure;
public override OasysPluginInfo PluginInfo => GsaGH.PluginInfo.Instance;
protected override Bitmap Icon => Resources.CreateAnalysisCase;
protected override Bitmap Icon => Resources.CreateModalDynamicParameter;
private ModeCalculationMethod _modeMethod = ModeCalculationMethod.NumberOfMode;
public CreateModalDynamicAnalysisParameter() : base(
GsaModalDynamicAnalysisGoo.Name,
GsaModalDynamicAnalysisGoo.NickName.Replace(" ", string.Empty),
"Create a " + GsaModalDynamicAnalysisGoo.Description, CategoryName.Name(), SubCategoryName.Cat4()) {
public CreateModalDynamicParameter() : base(
$"Create {GsaModalDynamicGoo.Name}",
GsaModalDynamicGoo.NickName.Replace(" ", string.Empty),
$"Create {GsaModalDynamicGoo.Description}", CategoryName.Name(), SubCategoryName.Cat4()) {
Hidden = true;
}

Expand Down Expand Up @@ -63,15 +63,15 @@ protected override void RegisterInputParams(GH_InputParamManager pManager) {
}

protected override void RegisterOutputParams(GH_OutputParamManager pManager) {
pManager.AddParameter(new GsaModalDynamicAnalysisParameter());
pManager.AddParameter(new GsaModalDynamicParameter());
}

protected override void SolveInternal(IGH_DataAccess da) {
var taskParameter = new GsaModalDynamicAnalysis(_modeMethod);
var taskParameter = new GsaModalDynamic(_modeMethod);
GsaAnalysisTaskGoo analysisTaskGoo = null;
if (da.GetData(0, ref analysisTaskGoo)) {
if (analysisTaskGoo.Value.ApiTask != null) {
taskParameter = new GsaModalDynamicAnalysis(analysisTaskGoo.Value.ApiTask);
taskParameter = new GsaModalDynamic(analysisTaskGoo.Value.ApiTask);

Check warning on line 74 in GsaGH/Components/4_Analysis/CreateModalDynamicParameter.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Components/4_Analysis/CreateModalDynamicParameter.cs#L74

Added line #L74 was not covered by tests
if (_modeMethod != taskParameter.Method()) {
switch (taskParameter.Method()) {
case ModeCalculationMethod.NumberOfMode:
Expand Down Expand Up @@ -140,7 +140,7 @@ protected override void SolveInternal(IGH_DataAccess da) {
da.GetData(positionIndex + 1, ref dampingStiffness);
taskParameter.ModalDamping = new ModalDamping(dampingStiffness);

da.SetData(0, new GsaModalDynamicAnalysisGoo(taskParameter));
da.SetData(0, new GsaModalDynamicGoo(taskParameter));
}

public override void SetSelected(int i, int j) {
Expand Down
10 changes: 5 additions & 5 deletions GsaGH/Parameters/4_Analysis/ModalDynamicAnalysis.cs
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ namespace GsaGH.Parameters {
/// <summary>
/// <para>Analysis <see href="https://docs.oasys-software.com/structural/gsa/references/element-types.html#element-types">parameter</see> used in modal analysis.</para>
/// </summary>
public class GsaModalDynamicAnalysis {
public class GsaModalDynamic {
public ModeCalculationStrategy ModeCalculationStrategy { get; internal set; }
public MassOption MassOption { get; internal set; }
public AdditionalMassDerivedFromLoads AdditionalMassDerivedFromLoads { get; internal set; }
Expand All @@ -16,7 +16,7 @@ public class GsaModalDynamicAnalysis {
/// <summary>
/// Empty constructor instantiating a new API object
/// </summary>
public GsaModalDynamicAnalysis(ModeCalculationMethod modeMethod = ModeCalculationMethod.NumberOfMode) {
public GsaModalDynamic(ModeCalculationMethod modeMethod = ModeCalculationMethod.NumberOfMode) {
switch (modeMethod) {
case ModeCalculationMethod.NumberOfMode:
ModeCalculationStrategy = new ModeCalculationStrategyByNumberOfModes(1);
Expand All @@ -40,7 +40,7 @@ public GsaModalDynamicAnalysis(ModeCalculationMethod modeMethod = ModeCalculatio
/// <param name="massOption"></param>
/// <param name="additionalMassDerivedFromLoads"></param>
/// <param name="modalDamping"></param>
internal GsaModalDynamicAnalysis(ModeCalculationStrategy modeCalcuationStrategy, MassOption massOption,
internal GsaModalDynamic(ModeCalculationStrategy modeCalcuationStrategy, MassOption massOption,
AdditionalMassDerivedFromLoads additionalMassDerivedFromLoads,
ModalDamping modalDamping) {
AdditionalMassDerivedFromLoads = additionalMassDerivedFromLoads;
Expand All @@ -53,7 +53,7 @@ internal GsaModalDynamicAnalysis(ModeCalculationStrategy modeCalcuationStrategy,
/// Create parameter from task
/// </summary>
/// <param name="apiAnalysisTask"></param>
internal GsaModalDynamicAnalysis(AnalysisTask apiAnalysisTask) {
internal GsaModalDynamic(AnalysisTask apiAnalysisTask) {
var parameter = new ModalDynamicTaskParameter(apiAnalysisTask);
AdditionalMassDerivedFromLoads = parameter.AdditionalMassDerivedFromLoads;
ModeCalculationStrategy = parameter.ModeCalculationStrategy;
Expand All @@ -65,7 +65,7 @@ internal GsaModalDynamicAnalysis(AnalysisTask apiAnalysisTask) {
/// Create a duplicate instance from another instance
/// </summary>
/// <param name="other"></param>
public GsaModalDynamicAnalysis(GsaModalDynamicAnalysis other) {
public GsaModalDynamic(GsaModalDynamic other) {
AdditionalMassDerivedFromLoads = other.AdditionalMassDerivedFromLoads;
ModeCalculationStrategy = other.ModeCalculationStrategy;
ModalDamping = other.ModalDamping;
Expand Down
6 changes: 3 additions & 3 deletions GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisGoo.cs
Original file line number Diff line number Diff line change
Expand Up @@ -18,16 +18,16 @@ namespace GsaGH.Parameters {
/// <summary>
/// Goo wrapper class, makes sure <see cref="GsaEffectiveLengthOptions" /> can be used in Grasshopper.
/// </summary>
public class GsaModalDynamicAnalysisGoo : GH_OasysGoo<GsaModalDynamicAnalysis> {
public class GsaModalDynamicGoo : GH_OasysGoo<GsaModalDynamic> {
public static string Description => "GSA modal dynamic analysis parameters";
public static string Name => "Modal Dynamic Parameter";
public static string NickName => "Mdp";
public override OasysPluginInfo PluginInfo => GsaGH.PluginInfo.Instance;

Check warning on line 25 in GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisGoo.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisGoo.cs#L25

Added line #L25 was not covered by tests

public GsaModalDynamicAnalysisGoo(GsaModalDynamicAnalysis item) : base(item) { }
public GsaModalDynamicGoo(GsaModalDynamic item) : base(item) { }

public override IGH_Goo Duplicate() {
return new GsaModalDynamicAnalysisGoo(Value);
return new GsaModalDynamicGoo(Value);

Check warning on line 30 in GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisGoo.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisGoo.cs#L30

Added line #L30 was not covered by tests
}
}
}
26 changes: 13 additions & 13 deletions GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisParameter.cs
Original file line number Diff line number Diff line change
Expand Up @@ -14,29 +14,29 @@

namespace GsaGH.Parameters {
/// <summary>
/// This class provides a parameter interface for the <see cref="GsaModalDynamicAnalysisGoo" /> type.
/// This class provides a parameter interface for the <see cref="GsaModalDynamicGoo" /> type.
/// </summary>
public class GsaModalDynamicAnalysisParameter : GH_OasysPersistentParam<GsaModalDynamicAnalysisGoo> {
public class GsaModalDynamicParameter : GH_OasysPersistentParam<GsaModalDynamicGoo> {
public override Guid ComponentGuid => new Guid("6b99a192-bdbd-41bf-8efa-1bc146d3d224");
public override GH_Exposure Exposure => GH_Exposure.quinary | GH_Exposure.obscure;
public override string InstanceDescription => GsaModalDynamicAnalysisGoo.Name;
public override string TypeName => GsaModalDynamicAnalysisGoo.Name;
protected override Bitmap Icon => Resources.AnalysisCaseParam;
public override string InstanceDescription => GsaModalDynamicGoo.Name;
public override string TypeName => GsaModalDynamicGoo.Name;
protected override Bitmap Icon => Resources.ModalDynamicParam;

public GsaModalDynamicAnalysisParameter() : base(new GH_InstanceDescription(
GsaModalDynamicAnalysisGoo.Name, GsaModalDynamicAnalysisGoo.NickName,
GsaModalDynamicAnalysisGoo.Description,
public GsaModalDynamicParameter() : base(new GH_InstanceDescription(
GsaModalDynamicGoo.Name, GsaModalDynamicGoo.NickName,
GsaModalDynamicGoo.Description,
CategoryName.Name(), SubCategoryName.Cat9())) { }

protected override GsaModalDynamicAnalysisGoo PreferredCast(object data) {
protected override GsaModalDynamicGoo PreferredCast(object data) {
switch (data) {
case GsaAnalysisTaskGoo analysisTask:
return new GsaModalDynamicAnalysisGoo(new GsaModalDynamicAnalysis(analysisTask.Value.ApiTask));
case GsaModalDynamicAnalysisGoo dynamicAnalysis:
return new GsaModalDynamicAnalysisGoo(dynamicAnalysis.Value);
return new GsaModalDynamicGoo(new GsaModalDynamic(analysisTask.Value.ApiTask));
case GsaModalDynamicGoo dynamicAnalysis:
return new GsaModalDynamicGoo(dynamicAnalysis.Value);

Check warning on line 36 in GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisParameter.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisParameter.cs#L36

Added line #L36 was not covered by tests
default:
this.AddRuntimeError($"Data conversion failed from {data.GetTypeName()} to ModalDynamicAnalysis parameter");
return new GsaModalDynamicAnalysisGoo(null);
return new GsaModalDynamicGoo(null);

Check warning on line 39 in GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisParameter.cs

View check run for this annotation

Codecov / codecov/patch

GsaGH/Parameters/4_Analysis/ModalDynamicAnalysisParameter.cs#L38-L39

Added lines #L38 - L39 were not covered by tests
}
}
}
Expand Down
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added GsaGH/Properties/Icons/ModalDynamicParam.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
20 changes: 20 additions & 0 deletions GsaGH/Properties/Resources.Designer.cs

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions GsaGH/Properties/Resources.resx
Original file line number Diff line number Diff line change
Expand Up @@ -139,6 +139,9 @@
<data name="AnalysisTaskParam" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\AnalysisTaskParam.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="ModalDynamicParam" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\ModalDynamicParam.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="Annotate" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\Annotate.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Expand Down Expand Up @@ -217,6 +220,9 @@
<data name="CreateAnalysisTask" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\CreateAnalysisTask.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CreateModalDynamicParameter" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\CreateModalDynamicParameter.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
<data name="CreateBeamLoad" type="System.Resources.ResXFileRef, System.Windows.Forms">
<value>Icons\CreateBeamLoad.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a</value>
</data>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,10 @@ public void ClassNamesEqualComponentNamesTest(string className, IGH_Param param)
.Replace("GSA", "Gsa");

// Test component name is equal to class name
if (paramName.Contains("Parameter")) {
paramName = paramName.Replace("Parameter", "").Trim();
}
Assert.Equal(paramName + " Parameter", classNameSplit);

// Test component icon is equal to class name
ResourceManager rm = Resources.ResourceManager;
string iconName = paramName.Replace(" ", string.Empty) + "Param";
Expand Down
9 changes: 5 additions & 4 deletions GsaGHTests/3_Components/4_Analysis/CreateAnalysisTaskTests.cs
Original file line number Diff line number Diff line change
Expand Up @@ -103,10 +103,11 @@ private static List<object> GetInvalidList() {

[Fact]
public void ShouldAddRemarkForMissingAnalysisCase() {
SetToStatic();
_ = ComputeAndGetOutput();
Assert.True(_component.RuntimeMessages(GH_RuntimeMessageLevel.Remark).Count > 0);
Assert.Single(_component.RuntimeMessages(GH_RuntimeMessageLevel.Remark));
CreateAnalysisTask component = CreateAnalysisTaskComponent(false);
component.SetSelected(0, 0);
ComponentTestHelper.ComputeOutput(component);
Assert.True(component.RuntimeMessages(GH_RuntimeMessageLevel.Remark).Count > 0);
Assert.Single(component.RuntimeMessages(GH_RuntimeMessageLevel.Remark));
}

[Theory]
Expand Down
Loading

0 comments on commit 1a367a7

Please sign in to comment.