Click or drag to resize

StructuralCurveActionFree Class

[This is preliminary documentation and is subject to change.]

Defines a linear load that is not defined by the entity it acts on, but by a specific load border.
Inheritance Hierarchy
SystemObject
  ModelExchanger.AnalysisDataModel.BaseStructuralAnalysisObjectBase
    ModelExchanger.AnalysisDataModel.LoadsStructuralCurveActionFree

Namespace:  ModelExchanger.AnalysisDataModel.Loads
Assembly:  ModelExchanger.AnalysisDataModel (in ModelExchanger.AnalysisDataModel.dll) Version: 1.13.0+Branch.master.Sha.d583fc64569355d188a9c0818d257b6d0d3e1339
Syntax
C#
public sealed class StructuralCurveActionFree : StructuralAnalysisObjectBase, 
	ILoadAnalysisObject, IStructuralAnalysisObject, IAnalysisObject, IEquatable<StructuralCurveActionFree>, 
	IHasTwoLoadDirectionVectors<ForcePerLength>, IHasLoadDirectionVector<ForcePerLength>

The StructuralCurveActionFree type exposes the following members.

Constructors
  NameDescription
Public methodStructuralCurveActionFree(Guid, String, StructuralLoadCase, IReadOnlyListCurveCoordinate, ForcePerLength)
Public methodStructuralCurveActionFree(Guid, String, StructuralLoadCase, IReadOnlyListCurveCoordinate, ForcePerLength, ForcePerLength)
Create a linear load which belongs to the provided StructuralLoadCase who's border is defined by the provided CurveTCoordinate's and which is distributed Trapezoidal
Top
Properties
  NameDescription
Public propertyCoordinateSystem
Defines the co-ordinate system of the member in which the load is applied
Public propertyCurves
Public propertyDirection
Specifies the base direction of the load
Public propertyDirectionVectorX
When Direction is set to Vector, then this property defines the X portion of that vector.
Public propertyDirectionVectorX2
When [!:Direction] is set to Vector, then this property defines the X portion of that vector when Distribution is not uniform.
Public propertyDirectionVectorY
When Direction is set to Vector, then this property defines the Y portion of that vector.
Public propertyDirectionVectorY2
When [!:Direction] is set to Vector, then this property defines the Y portion of that vector when Distribution is not uniform.
Public propertyDirectionVectorZ
When Direction is set to Vector, then this property defines the Z portion of that vector.
Public propertyDirectionVectorZ2
When [!:Direction] is set to Vector, then this property defines the Z portion of that vector when Distribution is not uniform.
Public propertyDistribution
Defines how the load is distributed along the structural element
Public propertyId
The ID of the Analysis object. Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.)
Public propertyLoadCase
The StructuralLoadCase to which the load belongs
Public propertyLocation
Defines whether the load is "put directly on an inclined 1D member" or whether the "projection on plan" is defined.
Public propertyName
The name of the Analysis object. Needs to be unique within it's type
(Inherited from StructuralAnalysisObjectBase.)
Public propertyType
Defines what the load is caused by. Supports dynamic values
Public propertyValidity
Defines the validity of the free load
Public propertyValidityFrom
Defines where the validity starts
Public propertyValidityTo
Defines where the validity stops
Public propertyValue1
The first (or only, when Distribution is Uniform) size of the load
Public propertyValue2
The second size of the load. Only applicable when Distribution is not Uniform
Top
Methods
  NameDescription
Public methodEquals(Object)
Check if this object is the same as the provided object.
(Overrides StructuralAnalysisObjectBaseEquals(Object).)
Public methodEquals(StructuralAnalysisObjectBase)
Check if this object is the same as the provided object.
(Inherited from StructuralAnalysisObjectBase.)
Public methodEquals(StructuralCurveActionFree)
Indicates whether the current object is equal to another object of the same type.
Public methodGetHashCode
Retrieves the hashcode of the object
(Overrides StructuralAnalysisObjectBaseGetHashCode.)
Top
Events
  NameDescription
Public eventPropertyChanged (Inherited from StructuralAnalysisObjectBase.)
Top
Extension Methods
  NameDescription
Public Extension MethodToObjectIdentifier
Converts the provided IAnalysisObject into an AnalysisObjectIdentifier
(Defined by IAnalysisObjectExtensions.)
Top
Examples
Creating an instance
using System;
using System.Collections.Generic;
using System.Linq;
using ModelExchanger.AnalysisDataModel.Enums;
using ModelExchanger.AnalysisDataModel.Loads;
using ModelExchanger.AnalysisDataModel.Models;
using ModelExchanger.AnalysisDataModel.Subtypes;
using UnitsNet;

namespace ModelExchanger.AnalysisDataModel.Example.Loads
{
    public sealed class StructuralCurveActionFreeExample : BaseExample<StructuralCurveActionFree>
    {
        protected override IReadOnlyCollection<StructuralCurveActionFree> CreateAnalysisObjects(AnalysisModel model)
        {
            StructuralLoadCase loadCase = model.OfType<StructuralLoadCase>().Single(x => x.Name == "LC2");

            return new[]
            {
                new StructuralCurveActionFree(Guid.NewGuid(), "LF1", loadCase, new []
                {
                    CreateLineCurve(1, (0D, 0D, 0D), (5D, 12D, 0D)),
                    CreateLineCurve(2, (5D, 12D, 0D), (4D, 1D, 0D))
                }, ForcePerLength.FromKilonewtonsPerMeter(-2))
                {
                    Direction = ActionDirection.Z
                },
            };
        }

        private Curve<Coordinate> CreateLineCurve(int curve,
            (double x, double y, double z) start,
            (double x, double y, double z) end)
        => new Curve<Coordinate>(CurveGeometricalShape.Line, new []
        {
            new Coordinate($"C{curve}_Start", Length.FromMeters(start.x), Length.FromMeters(start.y), Length.FromMeters(start.z)),
            new Coordinate($"C{curve}_End", Length.FromMeters(end.x), Length.FromMeters(end.y), Length.FromMeters(end.z))
        });
    }
}
See Also