StructuralSurfaceActionDistribution Class |
[This is preliminary documentation and is subject to change.]
Namespace: ModelExchanger.AnalysisDataModel.Loads
public sealed class StructuralSurfaceActionDistribution : StructuralAnalysisObjectBase, IEquatable<StructuralSurfaceActionDistribution>, ILoadAnalysisObject, IStructuralAnalysisObject, IAnalysisObject
The StructuralSurfaceActionDistribution type exposes the following members.
Name | Description | |
---|---|---|
StructuralSurfaceActionDistribution |
Creates a surface load distributed to other members
|
Name | Description | |
---|---|---|
DistributionTo |
Defines how the load will be distributed
| |
Edges |
The CurveTCoordinate's which define the shape of the load
| |
Id |
The ID of the Analysis object.
Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.) | |
Layer |
Custom created layer name. Used to group entities together
| |
LCSAdjustment |
Contains more information about LCS adjustments for the 2D member (eg rotation, LCS type, ...)
| |
Members1D |
Defines the subset of loaded StructuralCurveMembers. Only taken into account when Type is BeamsAndEdges | |
Name |
The name of the Analysis object.
Needs to be unique within it's type
(Inherited from StructuralAnalysisObjectBase.) | |
Type |
Defines where the load should be distributed
|
Name | Description | |
---|---|---|
Equals(Object) |
Check if this object is the same as the provided object.
(Overrides StructuralAnalysisObjectBaseEquals(Object).) | |
Equals(StructuralAnalysisObjectBase) |
Check if this object is the same as the provided object.
(Inherited from StructuralAnalysisObjectBase.) | |
Equals(StructuralSurfaceActionDistribution) | Indicates whether the current object is equal to another object of the same type. | |
GetHashCode |
Retrieves the hashcode of the object
(Overrides StructuralAnalysisObjectBaseGetHashCode.) |
Name | Description | |
---|---|---|
PropertyChanged | (Inherited from StructuralAnalysisObjectBase.) |
Name | Description | |
---|---|---|
ToObjectIdentifier |
Converts the provided IAnalysisObject into an AnalysisObjectIdentifier (Defined by IAnalysisObjectExtensions.) |
using ModelExchanger.AnalysisDataModel.Enums; using ModelExchanger.AnalysisDataModel.Loads; using ModelExchanger.AnalysisDataModel.Models; using ModelExchanger.AnalysisDataModel.StructuralElements; using ModelExchanger.AnalysisDataModel.Subtypes; using System; using System.Collections.Generic; using System.Linq; using UnitsNet; namespace ModelExchanger.AnalysisDataModel.Example.Loads { public sealed class StructuralSurfaceActionDistributionExample : BaseExample<StructuralSurfaceActionDistribution> { protected override IReadOnlyCollection<StructuralSurfaceActionDistribution> CreateAnalysisObjects(AnalysisModel model) { var nodeDictionary = model.OfType<StructuralPointConnection>().ToDictionary(node => node.Name); var beamDictionary = model.OfType<StructuralCurveMember>().ToDictionary(node => node.Name); return new[] { CreateStructuralSurfaceActionDistributionWithTypeNodes(nodeDictionary), CreateStructuralSurfaceActionDistributionWithTypeEdges(nodeDictionary), CreateStructuralSurfaceActionDistributionWithTypeBeamsAndEdges(nodeDictionary, beamDictionary), }; } private StructuralSurfaceActionDistribution CreateStructuralSurfaceActionDistributionWithTypeBeamsAndEdges( Dictionary<string, StructuralPointConnection> nodeDictionary, Dictionary<string, StructuralCurveMember> beamDictionary) { return new StructuralSurfaceActionDistribution( Guid.NewGuid(), "FL3", SurfaceActionDistributionType.BeamsAndEdges, new[] { CreateLineCurve(nodeDictionary, "N115", "N116"), CreateLineCurve(nodeDictionary, "N116", "N117"), new Curve<StructuralPointConnection>( CurveGeometricalShape.Arc3P, new[] { nodeDictionary["N117"], nodeDictionary["N118"], nodeDictionary["N119"], }), CreateLineCurve(nodeDictionary, "N119", "N115"), }, SurfaceActionDistributionTo.TwoWay) { Layer = "Load panel", LCSAdjustment = new LCSAdjustment<Member2DLCSType>( Member2DLCSType.TiltOfVectorDefinedByPoint) { X = Length.FromMeters(10), Y = Length.FromMeters(10), Z = Length.FromMeters(0) }, Members1D = new[] { beamDictionary["B46"], beamDictionary["B47"] } }; } private StructuralSurfaceActionDistribution CreateStructuralSurfaceActionDistributionWithTypeEdges(Dictionary<string, StructuralPointConnection> nodeDictionary) => new StructuralSurfaceActionDistribution( Guid.NewGuid(), "FL2", SurfaceActionDistributionType.Edges, new[] { CreateLineCurve(nodeDictionary, "N111", "N112"), CreateLineCurve(nodeDictionary, "N112", "N114"), CreateLineCurve(nodeDictionary, "N114", "N113"), CreateLineCurve(nodeDictionary, "N113", "N111") }, SurfaceActionDistributionTo.OneWayX) { LCSAdjustment = new LCSAdjustment<Member2DLCSType>(Member2DLCSType.YByVector) { Rotation = Angle.FromDegrees(45), X = Length.FromMeters(1), Y = Length.FromMeters(1), Z = Length.FromMeters(0) } }; private static StructuralSurfaceActionDistribution CreateStructuralSurfaceActionDistributionWithTypeNodes(Dictionary<string, StructuralPointConnection> nodeDictionary) => new StructuralSurfaceActionDistribution( Guid.NewGuid(), "FL1", SurfaceActionDistributionType.Nodes, new[] { CreateLineCurve(nodeDictionary, "N107", "N108"), CreateLineCurve(nodeDictionary, "N108", "N109"), CreateLineCurve(nodeDictionary, "N109", "N110"), CreateLineCurve(nodeDictionary, "N110", "N107"), }, SurfaceActionDistributionTo.TwoWay ) { Layer = "Load Panel" }; private static Curve<StructuralPointConnection> CreateLineCurve( Dictionary<string, StructuralPointConnection> nodeDictionary, string nameOfBeginNode, string nameOfEndNode) { return new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new[] { nodeDictionary[nameOfBeginNode], nodeDictionary[nameOfEndNode] }); } } }