StructuralCurveActionTCurveStructuralReference Class |
[This is preliminary documentation and is subject to change.]
Namespace: ModelExchanger.AnalysisDataModel.Loads
public sealed class StructuralCurveAction<TCurveStructuralReference> : StructuralCurveActionAbstract<ActionDirection, ForcePerLength>, IEquatable<StructuralCurveAction<TCurveStructuralReference>>, IHasTwoLoadDirectionVectors<ForcePerLength>, IHasLoadDirectionVector<ForcePerLength>, IHasSingleEccentricities where TCurveStructuralReference : class, ICurveStructuralReference
The StructuralCurveActionTCurveStructuralReference type exposes the following members.
Name | Description | |
---|---|---|
StructuralCurveActionTCurveStructuralReference |
Create a linear force on the provided structural element which is distributed Uniform
|
Name | Description | |
---|---|---|
CoordinateDefinition |
Specifies the coordinate system that is used to define the length.
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
CoordinateSystem |
Defines the co-ordinate system of the member in which the load is applied
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Direction |
Defines the base direction of the load
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
DirectionVectorX | ||
DirectionVectorX2 |
When [!:Direction] is set to Vector, then this property defines the X portion of that vector when Distribution is not uniform.
| |
DirectionVectorY | ||
DirectionVectorY2 |
When [!:Direction] is set to Vector, then this property defines the Y portion of that vector when Distribution is not uniform.
| |
DirectionVectorZ | ||
DirectionVectorZ2 |
When [!:Direction] is set to Vector, then this property defines the Z portion of that vector when Distribution is not uniform.
| |
Distribution |
Defines how the load is distributed along the structural element
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
EccentricityEy |
Eccentricity Y of the system line (in the context of structural elements) or force system line in Z direction of the local coordinate system (in the context of loads)
| |
EccentricityEz |
Eccentricity Y of the system line (in the context of structural elements) or force system line in Z direction of the local coordinate system (in the context of loads)
| |
EndPointAbsolute |
Defines the position of the end point in absolute coordinates
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
EndPointRelative |
Defines the position of the end point in relative coordinates
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Extent |
Defines how the load extends over the structural element
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
ForceAction |
Defines on which type of structural element the force acts
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Id |
The ID of the Analysis object.
Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.) | |
LoadCase |
Defines the StructuralLoadCase to which the load belongs
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Location |
Defines whether the load is "put directly on an inclined 1D member" or whether the "projection on plan" is defined.
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Name |
The name of the Analysis object.
Needs to be unique within it's type
(Inherited from StructuralAnalysisObjectBase.) | |
Origin |
Specifies the origin of the coordinate system used for the definition of the length
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
ParentId |
The ID of the parent object of the same type
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
StartPointAbsolute |
Defines the position of the start point in absolute coordinates
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
StartPointRelative |
Defines the position of the start point in relative coordinates
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
StructuralReference |
Object containing information about the structural element on which the line force acts.
| |
Type |
Defines what the load is caused by. Supports dynamic values
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Value1 |
Defines the first (or only when Distribution is Uniform) size of the load
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
Value2 |
Defines the second size of the load, only applicable when Distribution is not Uniform
(Inherited from StructuralCurveActionAbstractTDirection, TValue.) |
Name | Description | |
---|---|---|
Equals(Object) |
Check if this object is the same as the provided object.
(Overrides StructuralCurveActionAbstractTDirection, TValueEquals(Object).) | |
Equals(StructuralAnalysisObjectBase) |
Check if this object is the same as the provided object.
(Inherited from StructuralAnalysisObjectBase.) | |
Equals(StructuralCurveActionTCurveStructuralReference) | Indicates whether the current object is equal to another object of the same type. | |
Equals(StructuralCurveActionAbstractTDirection, TValue) | Indicates whether the current object is equal to another object of the same type. (Inherited from StructuralCurveActionAbstractTDirection, TValue.) | |
GetHashCode |
Retrieves the hashcode of the object
(Overrides StructuralCurveActionAbstractTDirection, TValueGetHashCode.) |
Name | Description | |
---|---|---|
PropertyChanged | (Inherited from StructuralAnalysisObjectBase.) |
using System; using System.Collections.Generic; using System.Linq; using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.StructuralReferences.Curves; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralCurveActionOnBeamExample : BaseExample<StructuralCurveAction<CurveStructuralReferenceOnBeam>> { protected override IReadOnlyCollection<StructuralCurveAction<CurveStructuralReferenceOnBeam>> CreateAnalysisObjects(AnalysisModel model) { IReadOnlyDictionary<string, StructuralCurveMember> beams = model.OfType<StructuralCurveMember>().ToDictionary(x => x.Name, x => x); StructuralLoadCase loadCase = model.OfType<StructuralLoadCase>().Single(x => x.Name == "LC2"); return new[] { CreateStructuralCurveActionOnBeam("LF1", loadCase, beams["B5"], ActionDirection.Z, CoordinateSystem.Local), CreateStructuralCurveActionOnBeam("LF2", loadCase, beams["B6"], ActionDirection.Z, CoordinateSystem.Local), CreateStructuralCurveActionOnBeam("LF3", loadCase, beams["B7"], ActionDirection.Z, CoordinateSystem.Local), CreateStructuralCurveActionOnBeam("LF4", loadCase, beams["B10"], ActionDirection.Z, CoordinateSystem.Local), CreateStructuralCurveActionOnBeam("LF26", loadCase, beams["B36"], ActionDirection.Z, CoordinateSystem.Local), CreateStructuralCurveActionOnBeam("LF10", loadCase, beams["B16"], ActionDirection.Y, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF11", loadCase, beams["B17"], ActionDirection.Y, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF12", loadCase, beams["B18"], ActionDirection.Y, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF13", loadCase, beams["B19"], ActionDirection.X, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF14", loadCase, beams["B20"], ActionDirection.X, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF15", loadCase, beams["B21"], ActionDirection.X, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF16", loadCase, beams["B22"], ActionDirection.X, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF17", loadCase, beams["B23"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF18", loadCase, beams["B24"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF19", loadCase, beams["B25"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF20", loadCase, beams["B26"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF21", loadCase, beams["B27"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF22", loadCase, beams["B28"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF23", loadCase, beams["B29"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF24", loadCase, beams["B30"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF25", loadCase, beams["B31"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF5", loadCase, beams["B11"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF6", loadCase, beams["B12"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF7", loadCase, beams["B13"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF8", loadCase, beams["B14"], ActionDirection.Z, CoordinateSystem.Global), CreateStructuralCurveActionOnBeam("LF9", loadCase, beams["B15"], ActionDirection.Z, CoordinateSystem.Global), }; } private StructuralCurveAction<CurveStructuralReferenceOnBeam> CreateStructuralCurveActionOnBeam( string name, StructuralLoadCase loadCase, StructuralCurveMember beam, ActionDirection direction, CoordinateSystem coordinateSystem) { return new StructuralCurveAction<CurveStructuralReferenceOnBeam>(Guid.NewGuid(), name, CurveForceAction.OnBeam, ForcePerLength.FromKilonewtonsPerMeter(-1), loadCase, new CurveStructuralReferenceOnBeam(beam)){ Direction = direction, CoordinateSystem = coordinateSystem }; } } }
using System; using System.Collections.Generic; using System.Linq; using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.StructuralReferences.Curves; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralCurveActionOnEdgeExample : BaseExample<StructuralCurveAction<CurveStructuralReferenceOnEdge>> { protected override IReadOnlyCollection<StructuralCurveAction<CurveStructuralReferenceOnEdge>> CreateAnalysisObjects(AnalysisModel model) { StructuralLoadCase loadCase = model.OfType<StructuralLoadCase>().Single(x => x.Name == "LC2"); StructuralSurfaceMember surface = model.OfType<StructuralSurfaceMember>().Single(x => x.Name == "S8"); StructuralCurveEdge internalEdge1 = model.OfType<StructuralCurveEdge>().Single(x => x.Name == "ES1"); StructuralCurveEdge internalEdge2 = model.OfType<StructuralCurveEdge>().Single(x => x.Name == "ES2"); return new[] { CreateStructuralCurveActionOnEdge("LFS1", loadCase, surface, 3, CoordinateDefinition.Relative, 0, 1), CreateStructuralCurveActionOnEdge("LFS2", loadCase, surface, 1, CoordinateDefinition.Relative, 0, 1), CreateStructuralCurveActionOnEdge("LFS3", loadCase, surface, 2, CoordinateDefinition.Absolute, 0, 2.5D), new StructuralCurveAction<CurveStructuralReferenceOnEdge>(Guid.NewGuid(), "LFS4", CurveForceAction.OnEdge, ForcePerLength.FromKilonewtonsPerMeter(-3), loadCase, new CurveStructuralReferenceOnEdge(surface, internalEdge1)) { Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Local, CoordinateDefinition = CoordinateDefinition.Absolute, StartPointRelative = null, EndPointRelative = null, StartPointAbsolute = Length.Zero, EndPointAbsolute = Length.FromMeters(2.5D), Value2 = ForcePerLength.Zero, Distribution = CurveDistribution.Trapezoidal }, new StructuralCurveAction<CurveStructuralReferenceOnEdge>(Guid.NewGuid(), "LFS5", CurveForceAction.OnEdge, ForcePerLength.FromKilonewtonsPerMeter(-3), loadCase, new CurveStructuralReferenceOnEdge(surface, internalEdge2)) { Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Local, CoordinateDefinition = CoordinateDefinition.Absolute, StartPointRelative = null, EndPointRelative = null, StartPointAbsolute = Length.Zero, EndPointAbsolute = Length.FromMeters(2.5D), Value2 = ForcePerLength.Zero, Distribution = CurveDistribution.Trapezoidal } }; } private StructuralCurveAction<CurveStructuralReferenceOnEdge> CreateStructuralCurveActionOnEdge(string name, StructuralLoadCase loadCase, StructuralSurfaceMember surface, int edgeIndex, CoordinateDefinition coordinateDefinition, double from, double to) => new StructuralCurveAction<CurveStructuralReferenceOnEdge>(Guid.NewGuid(), name, CurveForceAction.OnEdge, ForcePerLength.FromKilonewtonsPerMeter(-3), loadCase, new CurveStructuralReferenceOnEdge(surface, edgeIndex)) { Direction = ActionDirection.Z, CoordinateDefinition = coordinateDefinition, CoordinateSystem = CoordinateSystem.Local, StartPointRelative = coordinateDefinition == CoordinateDefinition.Relative ? from : (double?)null, StartPointAbsolute = coordinateDefinition == CoordinateDefinition.Absolute ? Length.FromMeters(from) : (Length?)null, EndPointRelative = coordinateDefinition == CoordinateDefinition.Relative ? to : (double?)null, EndPointAbsolute = coordinateDefinition == CoordinateDefinition.Absolute ? Length.FromMeters(to) : (Length?)null }; } }
using System; using System.Collections.Generic; using System.Linq; using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.StructuralReferences.Curves; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralCurveActionOnRibExample : BaseExample<StructuralCurveAction<CurveStructuralReferenceOnRib>> { protected override IReadOnlyCollection<StructuralCurveAction<CurveStructuralReferenceOnRib>> CreateAnalysisObjects(AnalysisModel model) { StructuralCurveMemberRib rib = model.OfType<StructuralCurveMemberRib>().Single(x => x.Name == "B37"); StructuralLoadCase loadCase = model.OfType<StructuralLoadCase>().Single(x => x.Name == "LC2"); return new[] { new StructuralCurveAction<CurveStructuralReferenceOnRib>(Guid.NewGuid(), "LFS6", CurveForceAction.OnRib, ForcePerLength.FromKilonewtonsPerMeter(-3), loadCase, new CurveStructuralReferenceOnRib(rib)) { Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Global, CoordinateDefinition = CoordinateDefinition.Relative, StartPointRelative = 0.2D, EndPointRelative = 0.8D }, }; } } }
using System; using System.Collections.Generic; using System.Linq; using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.StructuralReferences.Curves; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralCurveActionOnSubregionEdgeExample : BaseExample<StructuralCurveAction<CurveStructuralReferenceOnSubregionEdge>> { protected override IReadOnlyCollection<StructuralCurveAction<CurveStructuralReferenceOnSubregionEdge>> CreateAnalysisObjects(AnalysisModel model) { StructuralLoadCase loadCase = model .OfType<StructuralLoadCase>() .Single(analysisObject => analysisObject.Name == "LC2"); StructuralSurfaceMemberRegion subRegion = model .OfType<StructuralSurfaceMemberRegion>() .Single(analysisObject => analysisObject.Name == "R2"); var curveActionOne = new StructuralCurveAction<CurveStructuralReferenceOnSubregionEdge>( Guid.NewGuid(), "LFS7", CurveForceAction.OnSubregionEdge, ForcePerLength.FromKilonewtonsPerMeter(-3), loadCase, new CurveStructuralReferenceOnSubregionEdge(subRegion, 1)) { Type = ActionLoadType.Standard, Distribution = CurveDistribution.Uniform, Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Local, Location = Location.Length, CoordinateDefinition = CoordinateDefinition.Relative, Origin = Origin.FromStart, Extent = ExtentOfForceOnBeam.Full, StartPointRelative = 0, EndPointRelative = 0.75, StartPointAbsolute = null, EndPointAbsolute = null, EccentricityEy = Length.FromMeters(0), EccentricityEz = Length.FromMeters(0) }; var curveActionTwo = new StructuralCurveAction<CurveStructuralReferenceOnSubregionEdge>( Guid.NewGuid(), "LFS8", CurveForceAction.OnSubregionEdge, ForcePerLength.FromKilogramsForcePerMeter(-3), loadCase, new CurveStructuralReferenceOnSubregionEdge(subRegion, 2)) { Type = ActionLoadType.Standard, Distribution = CurveDistribution.Trapezoidal, Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Global, Location = Location.Length, CoordinateDefinition = CoordinateDefinition.Absolute, Origin = Origin.FromStart, Extent = ExtentOfForceOnBeam.Full, StartPointRelative = null, EndPointRelative = null, StartPointAbsolute = Length.Zero, EndPointAbsolute = Length.FromMeters(2), EccentricityEy = Length.FromMeters(0), EccentricityEz = Length.FromMeters(0), Value2 = ForcePerLength.FromKilogramsForcePerMeter(1) }; return new[] { curveActionOne, curveActionTwo }; } } }
using System; using System.Collections.Generic; using System.Linq; using System.Text; using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.StructuralReferences.Curves; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralCurveActionOnOpeningEdgeExample : BaseExample<StructuralCurveAction<CurveStructuralReferenceOnOpeningEdge>> { protected override IReadOnlyCollection<StructuralCurveAction<CurveStructuralReferenceOnOpeningEdge>> CreateAnalysisObjects(AnalysisModel model) { var loadCase = model.OfType<StructuralLoadCase>().Single(analysisObject => analysisObject.Name == "LC2"); var opening = model.OfType<StructuralSurfaceMemberOpening>().Single(analysisObject => analysisObject.Name == "O7"); var curveActionOne = new StructuralCurveAction<CurveStructuralReferenceOnOpeningEdge>( Guid.NewGuid(), "LFS9", CurveForceAction.OnOpeningEdge, ForcePerLength.FromKilonewtonsPerMeter(2), loadCase, new CurveStructuralReferenceOnOpeningEdge(opening, 3)) { Type = ActionLoadType.Standard, Distribution = CurveDistribution.Uniform, Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Global, Location = Location.Length, CoordinateDefinition = CoordinateDefinition.Relative, Origin = Origin.FromStart, Extent = ExtentOfForceOnBeam.Full, StartPointRelative = 0.5, EndPointRelative = 1, StartPointAbsolute = null, EndPointAbsolute = null, EccentricityEy = Length.FromMeters(0), EccentricityEz = Length.FromMeters(0) }; var curveActionTwo = new StructuralCurveAction<CurveStructuralReferenceOnOpeningEdge>( Guid.NewGuid(), "LFS10", CurveForceAction.OnOpeningEdge, ForcePerLength.FromKilogramsForcePerMeter(-4), loadCase, new CurveStructuralReferenceOnOpeningEdge(opening, 3)) { Type = ActionLoadType.Standard, Distribution = CurveDistribution.Trapezoidal, Direction = ActionDirection.Z, CoordinateSystem = CoordinateSystem.Local, Location = Location.Length, CoordinateDefinition = CoordinateDefinition.Relative, Origin = Origin.FromStart, Extent = ExtentOfForceOnBeam.Full, StartPointRelative = 0, EndPointRelative = 1, StartPointAbsolute = null, EndPointAbsolute = null, EccentricityEy = Length.FromMeters(0), EccentricityEz = Length.FromMeters(0), Value2 = ForcePerLength.FromKilogramsForcePerMeter(2) }; return new[] { curveActionOne , curveActionTwo }; } } }