Click or drag to resize

StructuralCurveMember Class

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

Defines a general 1D member
Inheritance Hierarchy
SystemObject
  ModelExchanger.AnalysisDataModel.BaseStructuralAnalysisObjectBase
    ModelExchanger.AnalysisDataModel.StructuralElementsStructuralCurveMember

Namespace:  ModelExchanger.AnalysisDataModel.StructuralElements
Assembly:  ModelExchanger.AnalysisDataModel (in ModelExchanger.AnalysisDataModel.dll) Version: 1.13.0+Branch.master.Sha.d583fc64569355d188a9c0818d257b6d0d3e1339
Syntax
C#
public sealed class StructuralCurveMember : StructuralAnalysisObjectBase, 
	IEquatable<StructuralCurveMember>, IStructuralElementAnalysisObject, IStructuralAnalysisObject, IAnalysisObject, 
	IHasColor, IHasInternalNodes, ICanHaveRelationWithStructuralObjectIds, IHasParentId, IHasLength, 
	IHasBeginAndEndEccentricities

The StructuralCurveMember type exposes the following members.

Constructors
  NameDescription
Public methodStructuralCurveMember
Create a 1D member which exists out of the given curves and cross section
Top
Properties
  NameDescription
Public propertyAnalysisEccentricityYBegin
Eccentricity of the force system line in Y direction of the local coordinate system at the beginning of the element.
Public propertyAnalysisEccentricityYEnd
Eccentricity of the force system line in Y direction of the local coordinate system at the end of the element.
Public propertyAnalysisEccentricityZBegin
Eccentricity of the force system line in Z direction of the local coordinate system at the beginning of the element.
Public propertyAnalysisEccentricityZEnd
Eccentricity of the force system line in Z direction of the local coordinate system at the end of the element.
Public propertyArbitraryDefinition
Contains the arbitrary definition
Public propertyBehaviour
The behaviour of this 1D member in the Structural Analysis model
Public propertyBucklingLength
Buckling length for individual directions may be specified on each 1D member
Public propertyCode exampleColor
The color of the object. Primarily used when exporting to BIM+
Public propertyCrossSection
The StructuralCrossSection out of which the 1D member is constructed
Public propertyCurves
Public propertyId
The ID of the Analysis object. Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.)
Public propertyInternalNodes
Contains the nodes connected to this StructuralCurveMember instance but are not part of the geometry
Public propertyCode exampleLayer
Custom created layer name. Used to group entities together
Public propertyLCSAdjustment
Contains more information about LCS adjustments for the 1D member (eg rotation, LCS type, ...)
Public propertyLength
The length (from start to end) of the member. The application providing the ModelExchanger.AnalysisDataModel should calculate this field.
Public propertyName
The name of the Analysis object. Needs to be unique within it's type
(Inherited from StructuralAnalysisObjectBase.)
Public propertyParentId
The ID of the parent object of the same type
Public propertyResults
1D Analysis results
Public propertyStructuralEccentricityYBegin
Eccentricity of the system line in Y direction of the local coordinate system at the beginning of the element.
Public propertyStructuralEccentricityYEnd
Eccentricity of the system line in Y direction of the local coordinate system at the end of the element.
Public propertyStructuralEccentricityZBegin
Eccentricity of the system line in Z direction of the local coordinate system at the beginning of the element.
Public propertyStructuralEccentricityZEnd
Eccentricity of the system line in Z direction of the local coordinate system at the end of the element.
Public propertySystemLine
The position of the system-lines on the cross-section of the 1D member
Public propertyType
The type of the 1D member. Supports dynamic values
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(StructuralCurveMember)
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 CSInfrastructure;
using CSInfrastructure.Extensions;
using ModelExchanger.AnalysisDataModel.Enums;
using ModelExchanger.AnalysisDataModel.Libraries;
using ModelExchanger.AnalysisDataModel.Models;
using ModelExchanger.AnalysisDataModel.StructuralElements;
using ModelExchanger.AnalysisDataModel.Subtypes;
using UnitsNet;

namespace ModelExchanger.AnalysisDataModel.Example.StructuralElements
{
    public sealed class StructuralCurveMemberExample : BaseExample<StructuralCurveMember>
    {
        protected override IReadOnlyCollection<StructuralCurveMember> CreateAnalysisObjects(AnalysisModel model)
        {
            IReadOnlyDictionary<string, StructuralCrossSection> crossSections = model.OfType<StructuralCrossSection>().ToDictionary(x => x.Name, x => x);
            IReadOnlyDictionary<string, StructuralPointConnection> nodes = model.OfType<StructuralPointConnection>().ToDictionary(x => x.Name, x => x);
            IReadOnlyDictionary<string, StructuralCurveMemberVarying> arbitraryDefinitions = model.OfType<StructuralCurveMemberVarying>().ToDictionary(x => x.Name, x => x);
            return new StructuralCurveMember[]
            {
                new StructuralCurveMember(Guid.NewGuid(), "B1", new [] { new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] { nodes["N11"], nodes["N12"] }) }, crossSections["CS1"])
                {
                    Color = "#FF00E400".ToColorUint(),
                    ArbitraryDefinition = arbitraryDefinitions["AD1"]
                },
                new StructuralCurveMember(Guid.NewGuid(), "B2", new [] { new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] { nodes["N13"], nodes["N14"] }) }, crossSections["CS12"])
                {
                    Color = "#FF00E400".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY)
                    {
                        X = Length.Zero,
                        Y = Length.FromMeters(1D),
                        Z = Length.Zero,
                        Rotation = Angle.FromDegrees(45D)
                    }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B3", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N15"], nodes["N17"]})}, crossSections["CS23"])
                {
                    Color = "#FF808080".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B4", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] { nodes["N16"], nodes["N18"]})}, crossSections["CS27"])
                {
                    Color = "#FF808080".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY)
                    {
                        X = Length.Zero,
                        Y = Length.FromMeters(1D),
                        Z = Length.Zero
                    }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B5", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N9"], nodes["N12"]})}, crossSections["CS28"])
                {
                    Color = "#FFFFFF00".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B6", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N12"], nodes["N14"] }) }, crossSections["CS28"])
                {
                    Color = "#FFFFFF00".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B7", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N14"], nodes["N10"] }) }, crossSections["CS28"])
                {
                    Color = "#FFFFFF00".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B10", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N21"], nodes["N22"]}) }, crossSections["CS2"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY){ Rotation = Angle.FromDegrees(45D), X = Length.Zero, Y = Length.FromMeters(1), Z = Length.Zero }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B11", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N23"], nodes["N24"]}) }, crossSections["CS3"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY){ Rotation = Angle.FromDegrees(125D), X = Length.Zero, Y = Length.FromMeters(1), Z = Length.Zero }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B12", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N25"], nodes["N26"]}) }, crossSections["CS4"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY){ Rotation = Angle.FromDegrees(360D), X = Length.Zero, Y = Length.FromMeters(1), Z = Length.Zero }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B13", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N25"], nodes["N27"]}) }, crossSections["CS5"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY){ Rotation = Angle.FromDegrees(45D), X = Length.Zero, Y = Length.FromMeters(1), Z = Length.Zero }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B14", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N23"], nodes["N28"]}) }, crossSections["CS6"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                    LCSAdjustment = new LCSAdjustment<CurveLCSType>(CurveLCSType.VectorY){ Rotation = Angle.FromDegrees(33D), X = Length.Zero, Y = Length.FromMeters(1), Z = Length.Zero  }
                },
                new StructuralCurveMember(Guid.NewGuid(), "B15", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N21"], nodes["N29"]}) }, crossSections["CS7"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B16", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N30"], nodes["N31"]}) }, crossSections["CS8"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B17", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N32"], nodes["N33"]}) }, crossSections["CS9"])
                {
                    Color = "#FFFF00FF".ToColorUint(),
                },
                new StructuralCurveMember(Guid.NewGuid(), "B18", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N34"], nodes["N35"]}) }, crossSections["CS10"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B19", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N34"], nodes["N36"]}) }, crossSections["CS11"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B20", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N32"], nodes["N37"]}) }, crossSections["CS13"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B21", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N30"], nodes["N38"]}) }, crossSections["CS14"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B22", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N39"], nodes["N40"]}) }, crossSections["CS15"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B23", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N41"], nodes["N42"]}) }, crossSections["CS16"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B24", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N43"], nodes["N44"]}) }, crossSections["CS17"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B25", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N43"], nodes["N45"]}) }, crossSections["CS18"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B26", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N41"], nodes["N46"]}) }, crossSections["CS19"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B27", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N39"], nodes["N47"]}) }, crossSections["CS20"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B28", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N12"], nodes["N18"]}) }, crossSections["CS21"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B29", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N12"], nodes["N19"]}) }, crossSections["CS22"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B30", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N14"], nodes["N17"]}) }, crossSections["CS24"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B31", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N14"], nodes["N20"]}) }, crossSections["CS25"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B35", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N65"], nodes["N61"]}) }, crossSections["CS26"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B36", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Arc3P, new []{ nodes["N10"], nodes["N92"], nodes["N91"]}) }, crossSections["CS26"])
                {
                    Color = "#FFFFFF00".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B37", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N95"], nodes["N97"]}) }, crossSections["CS26"])
                {
                    Color = "#FFFF00FF".ToColorUint()
                },
                new StructuralCurveMember(Guid.NewGuid(), "B38", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N96"], nodes["N98"]}) }, crossSections["CS26"]),

                new StructuralCurveMember(Guid.NewGuid(), "B39", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N84"], nodes["N5"]})}, crossSections["CS23"])
                {
                    Type = Member1DType.Column
                }, 
                new StructuralCurveMember(Guid.NewGuid(), "B40", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N17"], nodes["N84"]})}, crossSections["CS24"])
                {
                    Type = Member1DType.WallBracing
                },
                new StructuralCurveMember(Guid.NewGuid(), "B41", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N5"], nodes["N15"]})}, crossSections["CS24"])
                {
                    Type = Member1DType.WallBracing
                },

                new StructuralCurveMember(Guid.NewGuid(), "B46", new [] { new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N120"], nodes["N121"]})}, crossSections["CS1"])
                {
                    Type = Member1DType.Beam
                },
                new StructuralCurveMember(Guid.NewGuid(), "B47", new []{ new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N122"], nodes["N123"]})}, crossSections["CS1"])
                {
                    Type = Member1DType.Beam
                }
            };
        }
    }
}
See Also

Reference

FlexibleEnum