/// <summary> /// Construct timber panel with "Continuous" analytical model. /// </summary> /// <param name="region">Region of shell containing panels.</param> /// <param name="anchorPoint"></param> /// <param name="internalPanels"></param> /// <param name="externalEdgeConnection">Default value for shell border EdgeConnections. Can be overwritten by EdgeConnection for each specific edge in Region.</param> /// <param name="timberApplicationData"></param> /// <param name="type">Type of panel.</param> /// <param name="identifier">Name of shell.</param> /// <param name="panelName">Name of panel.</param> /// <param name="gap">Gap between panels.</param> /// <param name="orthotropy">Orthotropy.</param> /// <param name="ecc">ShellEccentricity.</param> /// <param name="externalMovingLocal">EdgeConnection LCS changes along edge?</param> internal Panel(Geometry.Region region, Geometry.FdPoint3d anchorPoint, InternalPanels internalPanels, Materials.TimberPanelType timberApplicationData, EdgeConnection externalEdgeConnection, PanelType type, string identifier, string panelName, double gap, double orthotropy, ShellEccentricity ecc, bool externalMovingLocal, double panelWidth) { this.EntityCreated(); // elements this.Region = region; this.CoordinateSystem = region.CoordinateSystem; this.AnchorPoint = anchorPoint; this.InternalPanels = internalPanels; this.TimberPanelData = timberApplicationData; // set external rigidity this.SetExternalEdgeConnections(externalEdgeConnection); // set internal rigidity - not relevant for a panel with continuous analytical model // attributes this.Type = type; this.Identifier = identifier; this.PanelName = panelName; this.Gap = gap; this.Alignment = ecc.Alignment; this.AlignOffset = ecc.Eccentricity; this.EccentricityCalculation = ecc.EccentricityCalculation; this.EccentricityByCracking = ecc.EccentricityByCracking; this.ExternalMovingLocal = externalMovingLocal; this.PanelWidth = panelWidth; }
public static Panel ProfiledPlate(Autodesk.DesignScript.Geometry.Surface surface, Materials.Material material, Sections.Section section, [DefaultArgument("ShellEccentricity.Default()")] ShellEccentricity eccentricity, [DefaultArgument("1")] double orthoRatio, [DefaultArgument("EdgeConnection.Hinged()")] EdgeConnection edgeConnection, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localX, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localZ, [DefaultArgument("0")] double avgMeshSize, string identifier = "PP") { // convert geometry Geometry.Region region = Geometry.Region.FromDynamo(surface); // create panel Panel obj = Panel.DefaultContreteContinuous(region, edgeConnection, material, section, identifier, orthoRatio, eccentricity); // set local x-axis if (!localX.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { obj.LocalX = FemDesign.Geometry.FdVector3d.FromDynamo(localX); } // set local z-axis if (!localZ.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { obj.LocalZ = FemDesign.Geometry.FdVector3d.FromDynamo(localZ); } // set mesh obj.UniformAvgMeshSize = avgMeshSize; // return return(obj); }
private static Slab CreateDummySlab() { string input = "Shells/EdgeConnection-model.struxml"; var template = Model.DeserializeFromFilePath(input); var p1 = new Geometry.FdPoint3d(0, 0, 0); var p2 = new Geometry.FdPoint3d(1, 0, 0); var p3 = new Geometry.FdPoint3d(1, 1, 0); var p4 = new Geometry.FdPoint3d(0, 1, 0); var edges = new List <Geometry.Edge> { new Geometry.Edge(p1, p2, Geometry.FdCoordinateSystem.Global()), new Geometry.Edge(p2, p3, Geometry.FdCoordinateSystem.Global()), new Geometry.Edge(p3, p4, Geometry.FdCoordinateSystem.Global()), new Geometry.Edge(p4, p1, Geometry.FdCoordinateSystem.Global()) }; var contour = new Geometry.Contour(edges); var region = new Geometry.Region(new List <Geometry.Contour> { contour }, Geometry.FdCoordinateSystem.Global()); var slab = Slab.Plate("S", template.Materials.Material[0], region, EdgeConnection.GetDefault(), ShellEccentricity.GetDefault(), ShellOrthotropy.GetDefault(), new List <Thickness> { new Thickness(Geometry.FdPoint3d.Origin(), 0.2) }); return(slab); }
public static Slab Plate(Autodesk.DesignScript.Geometry.Surface surface, double thickness, Materials.Material material, [DefaultArgument("ShellEccentricity.Default()")] ShellEccentricity shellEccentricity, [DefaultArgument("ShellOrthotropy.Default()")] ShellOrthotropy shellOrthotropy, [DefaultArgument("EdgeConnection.Default()")] EdgeConnection shellEdgeConnection, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localX, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localZ, string identifier = "P") { // create FlatSurface Geometry.Region region = Geometry.Region.FromDynamo(surface); // create Thickness object List <Thickness> _thickness = new List <Thickness>(); _thickness.Add(new Thickness(region.CoordinateSystem.Origin, thickness)); // create shell Slab slab = Slab.Plate(identifier, material, region, shellEdgeConnection, shellEccentricity, shellOrthotropy, _thickness); // set local x-axis if (!localX.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalX = FemDesign.Geometry.FdVector3d.FromDynamo(localX); } // set local z-axis if (!localZ.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalZ = FemDesign.Geometry.FdVector3d.FromDynamo(localZ); } return(slab); }
/// <summary> /// Construct stirrups by start and end distance from bar start. /// </summary> public Stirrups(Geometry.Region region, double start, double end, double distance) { this.Regions.Add(region); this.Start = start; this.End = end; this.Distance = distance; }
public static Slab PlateVariableThickness(Autodesk.DesignScript.Geometry.Surface surface, List <Thickness> thickness, Materials.Material material, [DefaultArgument("ShellEccentricity.Default()")] ShellEccentricity shellEccentricity, [DefaultArgument("ShellOrthotropy.Default()")] ShellOrthotropy shellOrthotropy, [DefaultArgument("EdgeConnection.Default()")] EdgeConnection shellEdgeConnection, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localX, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localZ, string identifier = "P") { // create FlatSurface Geometry.Region region = Geometry.Region.FromDynamo(surface); // check length of thickness if (thickness.Count != 3) { throw new System.ArgumentException("Thickness must contain exactly 3 items."); } // create shell Slab slab = Slab.Plate(identifier, material, region, shellEdgeConnection, shellEccentricity, shellOrthotropy, thickness); // set local x-axis if (!localX.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalX = FemDesign.Geometry.FdVector3d.FromDynamo(localX); } // set local z-axis if (!localZ.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalZ = FemDesign.Geometry.FdVector3d.FromDynamo(localZ); } return(slab); }
/// <summary> /// Construct standard panel with "Continuous" analytical model. /// </summary> /// <param name="region">Region of shell containing panels.</param> /// <param name="localX">Direction of panels.</param> /// <param name="anchorPoint"></param> /// <param name="externalRigidity">Default value for shell border EdgeConnections. Can be overwritten by EdgeConnection for each specific edge in Region.</param> /// <param name="type">Type of panel.</param> /// <param name="complexMaterial">Guid reference to material.</param> /// <param name="complexSection">Guid reference to complex section.</param> /// <param name="identifier">Name of shell.</param> /// <param name="panelName">Name of panel.</param> /// <param name="gap">Gap between panels.</param> /// <param name="orthotropy">Orthotropy.</param> /// <param name="ecc">ShellEccentricity.</param> /// <param name="externalMovingLocal">EdgeConnection LCS changes along edge?</param> internal Panel(Geometry.Region region, Geometry.FdPoint3d anchorPoint, InternalPanels internalPanels, EdgeConnection externalEdgeConnection, PanelType type, Materials.Material material, Sections.Section section, string identifier, string panelName, double gap, double orthotropy, ShellEccentricity ecc, bool externalMovingLocal) { this.EntityCreated(); // elements this.Region = region; this.CoordinateSystem = region.CoordinateSystem; this.AnchorPoint = anchorPoint; this.InternalPanels = internalPanels; this.ExternalRigidity = externalEdgeConnection.Rigidity; // set edge connections this.SetExternalEdgeConnections(externalEdgeConnection); // attributes this.Type = type; this.Material = material; // note that material and section are not added directly to complexMaterial and complexSection fields. this.Section = section; this.Identifier = identifier; this.PanelName = panelName; this.Gap = gap; this.Orthotropy = orthotropy; this.Alignment = ecc.Alignment; this.AlignOffset = ecc.Eccentricity; this.EccentricityCalculation = ecc.EccentricityCalculation; this.EccentricityByCracking = ecc.EccentricityByCracking; this.ExternalMovingLocal = externalMovingLocal; }
/// <summary> /// Create a default timber shell with panels using a continuous analytical model. /// </summary> /// <param name="region">Panel region.</param> /// <param name="timberPlateMaterial">Timber material. See <see cref="FemDesign.Materials.TimberPanelType"/>.</param> /// <param name="direction">Timber panel span direction.</param> /// <param name="externalEdgeConnection"></param> /// <param name="identifier">Name of shell.</param> /// <param name="eccentricity"></param> /// <param name="panelWidth"></param> /// <returns></returns> public static Panel DefaultTimberContinuous(Geometry.Region region, Materials.TimberPanelType timberPlateMaterial, Geometry.FdVector3d direction, EdgeConnection externalEdgeConnection = null, string identifier = "TP", ShellEccentricity eccentricity = null, double panelWidth = 1.5) { if (externalEdgeConnection == null) { externalEdgeConnection = EdgeConnection.GetDefault(); } if (eccentricity == null) { eccentricity = ShellEccentricity.GetDefault(); } Geometry.FdPoint3d anchorPoint = region.Contours[0].Edges[0].Points[0]; InternalPanel internalPanel = new InternalPanel(region); InternalPanels internalPanels = new InternalPanels(internalPanel); PanelType type = PanelType.Timber; string panelName = "A"; double gap = 0.01; double orthotropy = 1; bool externalMovingLocal = externalEdgeConnection.MovingLocal; var panel = new Panel(region, anchorPoint, internalPanels, timberPlateMaterial, externalEdgeConnection, type, identifier, panelName, gap, orthotropy, eccentricity, externalMovingLocal, panelWidth); panel.LocalX = direction; // Set timber panel span direction return(panel); }
public static Slab Wall(Autodesk.DesignScript.Geometry.Surface surface, double thickness, Materials.Material material, [DefaultArgument("ShellEccentricity.Default()")] ShellEccentricity shellEccentricity, [DefaultArgument("ShellOrthotropy.Default()")] ShellOrthotropy shellOrthotropy, [DefaultArgument("EdgeConnection.Default()")] EdgeConnection shellEdgeConnection, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localX, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localZ, string identifier = "W") { // create FlatSurface Geometry.Region region = Geometry.Region.FromDynamo(surface); // create Thickness object List <Thickness> _thickness = new List <Thickness>(); _thickness.Add(new Thickness(region.CoordinateSystem.Origin, thickness)); // check if surface is vertical if (Math.Abs(region.CoordinateSystem.LocalZ.Z) > FemDesign.Tolerance.Point3d) { throw new System.ArgumentException("Wall is not vertical! Create plate instead."); } // create shell Slab slab = Slab.Wall(identifier, material, region, shellEdgeConnection, shellEccentricity, shellOrthotropy, _thickness); // set local x-axis if (!localX.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalX = FemDesign.Geometry.FdVector3d.FromDynamo(localX); } // set local z-axis if (!localZ.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { slab.SlabPart.LocalZ = FemDesign.Geometry.FdVector3d.FromDynamo(localZ); } return(slab); }
public static FictitiousShell Define(Autodesk.DesignScript.Geometry.Surface surface, StiffnessMatrix4Type d, StiffnessMatrix4Type k, StiffnessMatrix2Type h, double density, double t1, double t2, double alpha1, double alpha2, bool ignoreInStImpCalc, [DefaultArgument("EdgeConnection.Default()")] Shells.EdgeConnection edgeConnection, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localX, [DefaultArgument("Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0,0,0)")] Autodesk.DesignScript.Geometry.Vector localZ, double avgSrfElemSize = 0, string identifier = "FS") { // convert geometry Geometry.Region region = Geometry.Region.FromDynamo(surface); Geometry.FdVector3d x = Geometry.FdVector3d.FromDynamo(localX); Geometry.FdVector3d z = Geometry.FdVector3d.FromDynamo(localZ); // add edge connections to region region.SetEdgeConnections(edgeConnection); // FictitiousShell obj = new FictitiousShell(region, d, k, h, density, t1, t2, alpha1, alpha2, ignoreInStImpCalc, avgSrfElemSize, identifier); // set local x-axis if (!localX.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { obj.LocalX = FemDesign.Geometry.FdVector3d.FromDynamo(localX); } // set local z-axis if (!localZ.Equals(Autodesk.DesignScript.Geometry.Vector.ByCoordinates(0, 0, 0))) { obj.LocalZ = FemDesign.Geometry.FdVector3d.FromDynamo(localZ); } // return return(obj); }
private void Initialize(Geometry.Region region, RigidityDataType1 rigidity, string identifier) { this.EntityCreated(); this.Identifier = identifier; this.Region = region; this.Rigidity = rigidity; this.CoordinateSystem = region.CoordinateSystem; }
/// <summary> /// Construct stirrups by start and end parameter on the bar. /// </summary> public Stirrups(Bars.Bar bar, Geometry.Region region, double startParam, double endParam, double distance) { this.Regions.Add(region); double len = bar.BarPart.Edge.Length; this.Start = startParam * len; this.End = endParam * len; this.Distance = distance; }
public static SurfaceReinforcement BySurface(Surface surface, Straight straight, Wire wire) { // convert geometry Geometry.Region region = Geometry.Region.FromDynamo(surface); // return return(SurfaceReinforcement.DefineStraightSurfaceReinforcement(region, straight, wire)); }
/// <summary> /// Create variable SurfaceLoad /// </summary> /// <param name="region"></param> /// <param name="direction"></param> /// <param name="loadLocationValue"></param> /// <param name="loadCase"></param> /// <param name="loadProjection">False: Intensity meant along action line (eg. dead load). True: Intensity meant perpendicular to direction of load (eg. snow load).</param> /// <param name="comment"></param> /// <returns></returns> public static SurfaceLoad Variable(Geometry.Region region, Geometry.FdVector3d direction, List <LoadLocationValue> loadLocationValue, LoadCase loadCase, bool loadProjection = false, string comment = "") { if (loadLocationValue.Count != 3) { throw new System.ArgumentException("loadLocationValue must contain 3 items"); } return(new SurfaceLoad(region, loadLocationValue, direction, loadCase, loadProjection, comment)); }
/// <summary> /// Construct a surface temperature load by region and temperature location values (top/bottom) /// </summary> /// <param name="region">Region</param> /// <param name="direction">Direction of load</param> /// <param name="tempLocValue">List of top bottom location value. List should have 1 or 3 elements.></param> /// <param name="loadCase">LoadCase.</param> /// <param name="comment">Comment.</param> public SurfaceTemperatureLoad(Geometry.Region region, Geometry.FdVector3d direction, List <TopBotLocationValue> tempLocValue, LoadCase loadCase, string comment) { this.EntityCreated(); this.Region = region; this.LocalZ = direction; this.TopBotLocVal = tempLocValue; this.LoadCase = loadCase.Guid; this.Comment = comment; }
public static SurfaceTemperatureLoad Define(Autodesk.DesignScript.Geometry.Surface surface, Autodesk.DesignScript.Geometry.Vector direction, List <TopBotLocationValue> tempLocValue, LoadCase loadCase, string comment = "") { // convert geometry Geometry.Region region = Geometry.Region.FromDynamo(surface); Geometry.FdVector3d dir = Geometry.FdVector3d.FromDynamo(direction); // return return(new SurfaceTemperatureLoad(region, dir, tempLocValue, loadCase, comment)); }
public Diaphragm(Geometry.Region region, string identifier) { // create entity this.EntityCreated(); // add properties this.Region = region; this.Identifier = identifier; }
public static SurfaceLoad Uniform(Autodesk.DesignScript.Geometry.Surface surface, Autodesk.DesignScript.Geometry.Vector force, LoadCase loadCase, string comment = "") { Geometry.Region region = Geometry.Region.FromDynamo(surface); Geometry.FdVector3d _force = Geometry.FdVector3d.FromDynamo(force); SurfaceLoad surfaceLoad = SurfaceLoad.Uniform(region, _force, loadCase, false, comment); return(surfaceLoad); }
public static Slab Plate(string identifier, Materials.Material material, Geometry.Region region, EdgeConnection shellEdgeConnection, ShellEccentricity eccentricity, ShellOrthotropy orthotropy, List <Thickness> thickness) { Slab._plateInstance++; SlabType type = SlabType.Plate; string name = identifier + "." + Slab._plateInstance.ToString() + ".1"; SlabPart slabPart = SlabPart.Define(name, region, thickness, material, shellEdgeConnection, eccentricity, orthotropy); Slab shell = new Slab(type, name, slabPart, material); return(shell); }
/// <summary> /// Create straight lay-out surface reinforcement. /// Internal static method used by GH components and Dynamo nodes. /// </summary> public static SurfaceReinforcement DefineStraightSurfaceReinforcement(Geometry.Region region, Straight straight, Wire wire) { // set straight (e.g. centric == null) Centric centric = null; // new surfaceReinforcement SurfaceReinforcement obj = new SurfaceReinforcement(region, straight, centric, wire); // return return(obj); }
/// <summary> /// Construct SlabPart with EdgeConnections. /// </summary> public static SlabPart Define(string name, Geometry.Region region, List <Thickness> thickness, Materials.Material material, EdgeConnection shellEdgeConnection, ShellEccentricity eccentricity, ShellOrthotropy orthotropy) { // add edgeConnections to region region.SetEdgeConnections(shellEdgeConnection); // construct new slabPart SlabPart slabPart = new SlabPart(name, region, thickness, material, eccentricity, orthotropy); // return return(slabPart); }
/// <summary> /// Construct surface temperature load by region, top value and bottom value. /// </summary> /// <param name="region">Region</param> /// <param name="direction">Direction of load</param> /// <param name="topVal">Top value, temperature in celsius</param> /// <param name="bottomVal">Bottom value, temperature in celsius</param> /// <param name="loadCase">LoadCase.</param> /// <param name="comment">Comment.</param> public SurfaceTemperatureLoad(Geometry.Region region, Geometry.FdVector3d direction, double topVal, double bottomVal, LoadCase loadCase, string comment) { this.EntityCreated(); this.Region = region; this.LocalZ = direction; this.TopBotLocVal = new List <TopBotLocationValue> { new TopBotLocationValue(region.CoordinateSystem.Origin, topVal, bottomVal) }; this.LoadCase = loadCase.Guid; this.Comment = comment; }
/// <summary> /// Private constructor accessed by static methods. /// </summary> private SurfaceReinforcement(Geometry.Region region, Straight straight, Centric centric, Wire wire) { // object information this.EntityCreated(); // other properties this.Straight = straight; this.Centric = centric; this.Wire = wire; this.Region = region; }
/// <summary> /// Create a default concrete shell with panels using a continuous analytical model. /// </summary> /// <param name="region">Panel region.</param> /// <param name="externalEdgeConnection"></param> /// <param name="material"></param> /// <param name="section"></param> /// <param name="identifier">Name of shell.</param> /// <param name="orthotropy"></param> /// <param name="ecc"></param> /// <returns></returns> public static Panel DefaultContreteContinuous(Geometry.Region region, EdgeConnection externalEdgeConnection, Materials.Material material, Sections.Section section, string identifier, double orthotropy, ShellEccentricity ecc) { Geometry.FdPoint3d anchorPoint = region.Contours[0].Edges[0].Points[0]; InternalPanel internalPanel = new InternalPanel(region); InternalPanels internalPanels = new InternalPanels(internalPanel); PanelType type = PanelType.Concrete; string panelName = "A"; double gap = 0.003; bool externalMovingLocal = externalEdgeConnection.MovingLocal; return(new Panel(region, anchorPoint, internalPanels, externalEdgeConnection, type, material, section, identifier, panelName, gap, orthotropy, ecc, externalMovingLocal)); }
protected override void SolveInstance(IGH_DataAccess DA) { // get data Brep brep = null; if (!DA.GetData(0, ref brep)) { return; } Vector3d direction = Vector3d.Zero; if (!DA.GetData(1, ref direction)) { return; } List <Loads.TopBotLocationValue> vals = new List <Loads.TopBotLocationValue>(); if (!DA.GetDataList(2, vals)) { return; } Loads.LoadCase lc = null; if (!DA.GetData(3, ref lc)) { return; } string comment = null; if (!DA.GetData(4, ref comment)) { // pass; } if (brep == null || vals == null || lc == null) { return; } // convert geometry Geometry.Region region = brep.FromRhino(); Geometry.FdVector3d dir = direction.FromRhino(); // create obj Loads.SurfaceTemperatureLoad obj = new Loads.SurfaceTemperatureLoad(region, dir, vals, lc, comment); // return DA.SetData(0, obj); }
public static PressureLoad Define(Autodesk.DesignScript.Geometry.Surface surface, Autodesk.DesignScript.Geometry.Vector direction, double z0, double q0, double qh, LoadCase loadCase, string comment = "") { // get fdGeometry Geometry.Region region = Geometry.Region.FromDynamo(surface); // normalize direction Geometry.FdVector3d _loadDirection = Geometry.FdVector3d.FromDynamo(direction).Normalize(); // create SurfaceLoad PressureLoad _pressureLoad = new PressureLoad(region, _loadDirection, z0, q0, qh, loadCase, comment, false, ForceLoadType.Force); return(_pressureLoad); }
public static SurfaceLoad Variable(Autodesk.DesignScript.Geometry.Surface surface, Autodesk.DesignScript.Geometry.Vector direction, List <LoadLocationValue> loadLocationValue, LoadCase loadCase, string comment = "") { if (loadLocationValue.Count != 3) { throw new System.ArgumentException("loads must contain 3 items"); } Geometry.Region region = Geometry.Region.FromDynamo(surface); Geometry.FdVector3d loadDirection = Geometry.FdVector3d.FromDynamo(direction).Normalize(); SurfaceLoad surfaceLoad = SurfaceLoad.Variable(region, loadDirection, loadLocationValue, loadCase, false, comment); return(surfaceLoad); }
/// <summary> /// Variable surface load /// </summary> public SurfaceLoad(Geometry.Region region, List <LoadLocationValue> loads, Geometry.FdVector3d loadDirection, LoadCase loadCase, bool loadProjection = false, string comment = "") { this.EntityCreated(); this.LoadCase = loadCase.Guid; this.Comment = comment; this.LoadProjection = loadProjection; this.LoadType = ForceLoadType.Force; this.Region = region; this.Direction = loadDirection; foreach (LoadLocationValue _load in loads) { this.Loads.Add(_load); } }
/// <summary> /// Pressure load /// </summary> /// <param name="region"></param> /// <param name="loadDirection">Vector. Direction of force.</param> /// <param name="z0">Surface level of soil/water (on the global Z axis).</param> /// <param name="q0">Load intensity at the surface level.</param> /// <param name="qh">Increment of load intensity per meter (along the global Z axis).</param> /// <param name="loadCase">LoadCase.</param> /// <param name="comment">Comment.</param> /// <param name="loadProjection"></param> /// <param name="loadType"></param> public PressureLoad(Geometry.Region region, Geometry.FdVector3d loadDirection, double z0, double q0, double qh, LoadCase loadCase, string comment, bool loadProjection, ForceLoadType loadType) { // base this.EntityCreated(); this.LoadCase = loadCase.Guid; this.Comment = comment; this.LoadProjection = loadProjection; this.LoadType = loadType; this.Region = region; this.Direction = loadDirection; // specific this.Z0 = z0; this.Q0 = q0; this.Qh = qh; }
public static Slab Wall(string identifier, Materials.Material material, Geometry.Region region, EdgeConnection shellEdgeConnection, ShellEccentricity eccentricity, ShellOrthotropy orthotropy, List <Thickness> thickness) { // check if surface is vertical if (Math.Abs(region.CoordinateSystem.LocalZ.Z) > FemDesign.Tolerance.Point3d) { throw new System.ArgumentException("Wall is not vertical! Create plate instead."); } Slab._wallInstance++; SlabType type = SlabType.Wall; string name = identifier + "." + Slab._wallInstance.ToString() + ".1"; SlabPart slabPart = SlabPart.Define(name, region, thickness, material, shellEdgeConnection, eccentricity, orthotropy); Slab shell = new Slab(type, name, slabPart, material); return(shell); }