Skip to content

Commit

Permalink
GSAGH-482 grid load definitions
Browse files Browse the repository at this point in the history
  • Loading branch information
tlmnrnhrdt committed Apr 30, 2024
1 parent 0f506df commit 295ea1b
Show file tree
Hide file tree
Showing 11 changed files with 124 additions and 138 deletions.
38 changes: 15 additions & 23 deletions GsaGH/Components/0_Model/GetModelLoads.cs
@@ -1,9 +1,9 @@
using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Drawing;
using System.Linq;
using Grasshopper.Kernel;
using GsaAPI;
using GsaGH.Helpers.GH;
using GsaGH.Parameters;
using GsaGH.Properties;
Expand Down Expand Up @@ -92,29 +92,21 @@ public class GetModelLoads : GH_OasysDropDownComponent {
GsaModelGoo modelGoo = null;
da.GetData(0, ref modelGoo);

GsaAPI.Model model = modelGoo.Value.Model;
ReadOnlyDictionary<int, GsaAPI.LoadCase> loadCases = model.LoadCases();
List<GsaLoadCaseGoo> cases = GsaLoadFactory.CreateLoadCasesFromApi(loadCases);
List<GsaLoadGoo> gravity = GsaLoadFactory.CreateGravityLoadsFromApi(model.GravityLoads(), loadCases);
List<GsaLoadGoo> node = GsaLoadFactory.CreateNodeLoadsFromApi(model, loadCases);
List<GsaLoadGoo> beam = GsaLoadFactory.CreateBeamLoadsFromApi(model.BeamLoads(), loadCases);
List<GsaLoadGoo> beamThermal = GsaLoadFactory.CreateBeamThermalLoadsFromApi(model.BeamThermalLoads(), loadCases);
List<GsaLoadGoo> face = GsaLoadFactory.CreateFaceLoadsFromApi(model.FaceLoads(), loadCases);
List<GsaLoadGoo> faceThermal = GsaLoadFactory.CreateFaceThermalLoadsFromApi(model.FaceThermalLoads(), loadCases);

IReadOnlyDictionary<int, GsaAPI.GridSurface> srfDict = model.GridSurfaces();
IReadOnlyDictionary<int, GsaAPI.GridPlane> plnDict = model.GridPlanes();
IReadOnlyDictionary<int, GsaAPI.Axis> axDict = model.Axes();
List<GsaLoadGoo> point = GsaLoadFactory.CreateGridPointLoadsFromApi(
model.GridPointLoads(), srfDict, plnDict, axDict, loadCases, _lengthUnit);
List<GsaLoadGoo> line = GsaLoadFactory.CreateGridLineLoadsFromApi(
model.GridLineLoads(), srfDict, plnDict, axDict, loadCases, _lengthUnit);
List<GsaLoadGoo> area = GsaLoadFactory.CreateGridAreaLoadsFromApi(
model.GridAreaLoads(), srfDict, plnDict, axDict, loadCases, _lengthUnit);

Model model = modelGoo.Value.Model;
List<GsaLoadCaseGoo> cases = GsaLoadFactory.CreateLoadCasesFromApi(model);
List<GsaLoadGoo> gravity = GsaLoadFactory.CreateGravityLoadsFromApi(model);
List<GsaLoadGoo> node = GsaLoadFactory.CreateNodeLoadsFromApi(model);
List<GsaLoadGoo> beam = GsaLoadFactory.CreateBeamLoadsFromApi(model);
List<GsaLoadGoo> beamThermal = GsaLoadFactory.CreateBeamThermalLoadsFromApi(model);
List<GsaLoadGoo> face = GsaLoadFactory.CreateFaceLoadsFromApi(model);
List<GsaLoadGoo> faceThermal = GsaLoadFactory.CreateFaceThermalLoadsFromApi(model);
List<GsaLoadGoo> point = GsaLoadFactory.CreateGridPointLoadsFromApi(model, _lengthUnit);
List<GsaLoadGoo> line = GsaLoadFactory.CreateGridLineLoadsFromApi(model, _lengthUnit);
List<GsaLoadGoo> area = GsaLoadFactory.CreateGridAreaLoadsFromApi(model, _lengthUnit);

IReadOnlyDictionary<int, GridSurface> srfDict = model.GridSurfaces();
var gps = srfDict.Keys.Select(key
=> new GsaGridPlaneSurfaceGoo(GsaLoadFactory.CreateGridPlaneSurfaceFromApi(srfDict, plnDict, axDict, key,
_lengthUnit))).ToList();
=> new GsaGridPlaneSurfaceGoo(GsaLoadFactory.CreateGridPlaneSurfaceFromApi(model, key, _lengthUnit))).ToList();

da.SetDataList(0, cases);
da.SetDataList(1, gravity);
Expand Down
2 changes: 1 addition & 1 deletion GsaGH/Components/3_Loads/CreateGridAreaLoad.cs
Expand Up @@ -204,7 +204,7 @@ public class CreateGridAreaLoad : GH_OasysDropDownComponent {
Curve[] edges = Curve.JoinCurves(edgeSegments);
Curve curve = edges[0];

if (curve.TryGetPolyline(out Polyline polyline)) {
if (curve.TryGetPolyline(out Rhino.Geometry.Polyline polyline)) {
var ctrlPts = new Point3dList(polyline);
gridareaload.Points = ctrlPts;

Expand Down
2 changes: 1 addition & 1 deletion GsaGH/Components/3_Loads/CreateGridLineLoad.cs
Expand Up @@ -199,7 +199,7 @@ public class CreateGridLineLoad : GH_OasysDropDownComponent {
Curve curve = null;
GH_Convert.ToCurve(ghCurve, ref curve, GH_Conversion.Both);

if (curve.TryGetPolyline(out Polyline ln)) {
if (curve.TryGetPolyline(out Rhino.Geometry.Polyline ln)) {
var controlPoints = new Point3dList(ln);
gridlineload.Points = controlPoints;

Expand Down
2 changes: 1 addition & 1 deletion GsaGH/Components/6_Display/AnnotateDetailed.cs
Expand Up @@ -229,7 +229,7 @@ public class AnnotateDetailed : GH_OasysDropDownComponent {
break;

case GsaMember2dGoo m2d:
m2d.Value.PolyCurve.TryGetPolyline(out Polyline pl);
m2d.Value.PolyCurve.TryGetPolyline(out Rhino.Geometry.Polyline pl);
if (_text3d) {
Plane.FitPlaneToPoints(pl, out Plane pln);
pln.Origin = pl.CenterPoint();
Expand Down
2 changes: 1 addition & 1 deletion GsaGH/Helpers/GH/RhinoConversions.cs
Expand Up @@ -706,7 +706,7 @@ public static
edges.AddRange(inner);

Point3dList ctrlPts;
if (edges[0].TryGetPolyline(out Polyline tempCrv)) {
if (edges[0].TryGetPolyline(out Rhino.Geometry.Polyline tempCrv)) {
ctrlPts = new Point3dList(tempCrv);
} else {
Tuple<PolyCurve, Point3dList, List<string>> convertBadSrf
Expand Down
31 changes: 11 additions & 20 deletions GsaGH/Helpers/MergeModels.cs
Expand Up @@ -133,37 +133,28 @@ public class MergeModels {
}).ToList();

var gooloads = new List<GsaLoadGoo>();
ReadOnlyDictionary<int, LoadCase> loadCases = appendModel.Model.LoadCases();
gooloads.AddRange(GsaLoadFactory.CreateGravityLoadsFromApi(appendModel.Model.GravityLoads(), loadCases));
gooloads.AddRange(GsaLoadFactory.CreateNodeLoadsFromApi(appendModel.Model, loadCases));
gooloads.AddRange(GsaLoadFactory.CreateBeamLoadsFromApi(appendModel.Model.BeamLoads(), loadCases));
gooloads.AddRange(GsaLoadFactory.CreateBeamThermalLoadsFromApi(appendModel.Model.BeamThermalLoads(), loadCases));
gooloads.AddRange(GsaLoadFactory.CreateFaceLoadsFromApi(appendModel.Model.FaceLoads(), loadCases));
gooloads.AddRange(GsaLoadFactory.CreateFaceThermalLoadsFromApi(appendModel.Model.FaceThermalLoads(), loadCases));
gooloads.AddRange(GsaLoadFactory.CreateGravityLoadsFromApi(appendModel.Model));
gooloads.AddRange(GsaLoadFactory.CreateNodeLoadsFromApi(appendModel.Model));
gooloads.AddRange(GsaLoadFactory.CreateBeamLoadsFromApi(appendModel.Model));
gooloads.AddRange(GsaLoadFactory.CreateBeamThermalLoadsFromApi(appendModel.Model));
gooloads.AddRange(GsaLoadFactory.CreateFaceLoadsFromApi(appendModel.Model));
gooloads.AddRange(GsaLoadFactory.CreateFaceThermalLoadsFromApi(appendModel.Model));

IReadOnlyDictionary<int, GridSurface> srfDict = appendModel.Model.GridSurfaces();
IReadOnlyDictionary<int, GridPlane> plnDict = appendModel.Model.GridPlanes();

gooloads.AddRange(GsaLoadFactory.CreateGridPointLoadsFromApi(
appendModel.Model.GridPointLoads(), srfDict, plnDict, appendModel.ApiAxis, loadCases,
LengthUnit.Meter));
gooloads.AddRange(GsaLoadFactory.CreateGridLineLoadsFromApi(
appendModel.Model.GridLineLoads(), srfDict, plnDict, appendModel.ApiAxis, loadCases,
LengthUnit.Meter));
gooloads.AddRange(GsaLoadFactory.CreateGridAreaLoadsFromApi(
appendModel.Model.GridAreaLoads(), srfDict, plnDict, appendModel.ApiAxis, loadCases,
LengthUnit.Meter));
gooloads.AddRange(GsaLoadFactory.CreateGridPointLoadsFromApi(appendModel.Model, LengthUnit.Meter));
gooloads.AddRange(GsaLoadFactory.CreateGridLineLoadsFromApi(appendModel.Model, LengthUnit.Meter));
gooloads.AddRange(GsaLoadFactory.CreateGridAreaLoadsFromApi(appendModel.Model, LengthUnit.Meter));
var loads = gooloads.Select(n => n.Value).ToList();

var gpsgoo = srfDict.Keys.Select(key => new GsaGridPlaneSurfaceGoo(
GsaLoadFactory.CreateGridPlaneSurfaceFromApi(
srfDict, plnDict, appendModel.ApiAxis, key, LengthUnit.Meter))).ToList();
GsaLoadFactory.CreateGridPlaneSurfaceFromApi(appendModel.Model, key, LengthUnit.Meter))).ToList();
var gps = gpsgoo.Select(n => n.Value).ToList();

List<GsaList> lists = appendModel.GetLists();
List<GsaGridLine> gridLines = appendModel.GetGridLines();
var gsaLoadCases =
GsaLoadFactory.CreateLoadCasesFromApi(loadCases).Select(n => n.Value).ToList();
var gsaLoadCases = GsaLoadFactory.CreateLoadCasesFromApi(appendModel.Model).Select(n => n.Value).ToList();
var designTasks = new List<IGsaDesignTask>();
foreach (SteelDesignTask designTask in appendModel.Model.SteelDesignTasks().Values) {
var kvp = new KeyValuePair<int, SteelDesignTask>(0, designTask);
Expand Down
1 change: 1 addition & 0 deletions GsaGH/Parameters/2_Geometry/GsaMember3d.cs
Expand Up @@ -12,6 +12,7 @@
using Rhino.Geometry.Collections;
using LengthUnit = OasysUnits.Units.LengthUnit;
using Line = Rhino.Geometry.Line;
using Polyline = Rhino.Geometry.Polyline;

namespace GsaGH.Parameters {
/// <summary>
Expand Down
24 changes: 10 additions & 14 deletions GsaGH/Parameters/3_Loads/GridLoadHelper.cs
@@ -1,4 +1,5 @@
using GsaAPI;
using System.Collections.Generic;
using GsaAPI;
using OasysUnits;
using Rhino.Collections;
using Rhino.Geometry;
Expand Down Expand Up @@ -27,20 +28,15 @@ internal static class GridLoadHelper {
return ClearDefGetUnit(definition).def;
}

internal static Point3dList ConvertPoints(string definition, LengthUnit desiredUnit, Plane localPlane) {
(LengthUnit lengthUnit, string def) = ClearDefGetUnit(definition);
var points = new Point3dList();
string[] pts = def.Split(')');
internal static Point3dList ConvertPoints(List<Vector2> definition, LengthUnit desiredUnit, Plane localPlane) {
var map = Transform.ChangeBasis(localPlane, Plane.WorldXY);
foreach (string ptStr in pts) {
if (ptStr != string.Empty) {
string pt = ptStr.Replace("(", string.Empty).Trim();
var x = new Length(double.Parse(pt.Split(ListSeparator)[0]), lengthUnit);
var y = new Length(double.Parse(pt.Split(ListSeparator)[1]), lengthUnit);
var point = new Point3d(x.As(desiredUnit), y.As(desiredUnit), 0);
point.Transform(map);
points.Add(point);
}
var points = new Point3dList();
foreach (Vector2 vector in definition) {
var x = new Length(vector.X, LengthUnit.Meter);
var y = new Length(vector.Y, LengthUnit.Meter);
var point = new Point3d(x.As(desiredUnit), y.As(desiredUnit), 0);
point.Transform(map);
points.Add(point);
}
return points;
}
Expand Down

0 comments on commit 295ea1b

Please sign in to comment.