Click or drag to resize

RelConnectsStructuralMember Class

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

Defines a hinge on a 1D member (e.g. StructuralCurveMember)
Inheritance Hierarchy
SystemObject
  ModelExchanger.AnalysisDataModel.BaseStructuralAnalysisObjectBase
    ModelExchanger.AnalysisDataModel.StructuralElementsRelConnectsStructuralMember

Namespace:  ModelExchanger.AnalysisDataModel.StructuralElements
Assembly:  ModelExchanger.AnalysisDataModel (in ModelExchanger.AnalysisDataModel.dll) Version: 1.13.0+Branch.master.Sha.d583fc64569355d188a9c0818d257b6d0d3e1339
Syntax
C#
public sealed class RelConnectsStructuralMember : StructuralAnalysisObjectBase, 
	IEquatable<RelConnectsStructuralMember>, IStructuralElementAnalysisObject, IStructuralAnalysisObject, IAnalysisObject, 
	IHasTranslationConstraints<ForcePerLength?>, IHasTranslationConstraintsBase<Constraint<ForcePerLength?>>, 
	IHasRotationalConstraints<RotationalStiffness?>, IHasRotationalConstraintsBase<Constraint<RotationalStiffness?>>, 
	IHasParentId

The RelConnectsStructuralMember type exposes the following members.

Constructors
  NameDescription
Public methodRelConnectsStructuralMember
Create a hinge on a StructuralCurveMember
Top
Properties
  NameDescription
Public propertyId
The ID of the Analysis object. Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.)
Public propertyMember
The StructuralCurveMember on which the hinge is placed
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 propertyPosition
The position of the hinge on the curve member.
Public propertyRotationX
Rotational stiffness & the flexibility in rotation of the connection around local X axis
Public propertyRotationY
Rotational stiffness & the flexibility in rotation of the connection around local Y axis
Public propertyRotationZ
Rotational stiffness & the flexibility in rotation of the connection around local Z axis
Public propertyTranslationX
Translation & flexibility of the connection in the X direction;
Public propertyTranslationY
Translation & flexibility of the connection in the Y direction;
Public propertyTranslationZ
Translation & flexibility of the connection in the Z direction;
Top
Methods
  NameDescription
Public methodEquals(Object)
Check if this object is the same as the provided object.
(Overrides StructuralAnalysisObjectBaseEquals(Object).)
Public methodEquals(RelConnectsStructuralMember)
Indicates whether the current object is equal to another object of the same type.
Public methodEquals(StructuralAnalysisObjectBase)
Check if this object is the same as the provided object.
(Inherited from StructuralAnalysisObjectBase.)
Public methodGetHashCode
Retrieves the hashcode of the object
(Overrides StructuralAnalysisObjectBaseGetHashCode.)
Top
Events
  NameDescription
Public eventPropertyChanged (Inherited from StructuralAnalysisObjectBase.)
Top
Extension Methods
Examples
Creating an instance
using System;
using System.Collections.Generic;
using System.Linq;
using ModelExchanger.AnalysisDataModel.Enums;
using ModelExchanger.AnalysisDataModel.Models;
using ModelExchanger.AnalysisDataModel.StructuralElements;
using ModelExchanger.AnalysisDataModel.Subtypes;
using UnitsNet;

namespace ModelExchanger.AnalysisDataModel.Example.StructuralElements
{
    public sealed class RelConnectsStructuralMemberExample : BaseExample<RelConnectsStructuralMember>
    {
        protected override IReadOnlyCollection<RelConnectsStructuralMember> CreateAnalysisObjects(AnalysisModel model)
        {
            IReadOnlyDictionary<string, StructuralCurveMember> beams = model.OfType<StructuralCurveMember>().ToDictionary(x => x.Name, x => x);

            return new[]
            {
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H1", beams["B10"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H2", beams["B11"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H3", beams["B12"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H4", beams["B16"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H5", beams["B17"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H6", beams["B18"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H7", beams["B22"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H8", beams["B23"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H9", beams["B24"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H18", beams["B25"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H19", beams["B26"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H20", beams["B27"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H21", beams["B29"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY("H22", beams["B31"]),

               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationXY("H17", beams["B21"]),
               CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationXY("H10", beams["B28"]),

               new RelConnectsStructuralMember(Guid.NewGuid(), "H11", beams["B30"])
               {
                   Position = Position.Begin,
                   RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
                   RotationZ = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
               },
               new RelConnectsStructuralMember(Guid.NewGuid(), "H12", beams["B13"])
               {
                   Position = Position.End,
                   RotationX = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
                   RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
                   RotationZ = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
               },
               new RelConnectsStructuralMember(Guid.NewGuid(), "H13", beams["B14"])
               {
                   Position = Position.Both,
                   TranslationX = new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null)
               },
               new RelConnectsStructuralMember(Guid.NewGuid(), "H14", beams["B15"])
               {
                   Position = Position.Both,
                   TranslationY = new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
               },
               new RelConnectsStructuralMember(Guid.NewGuid(), "H15", beams["B19"])
               {
                   Position = Position.Both,
                   TranslationZ =  new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null)
               },
               new RelConnectsStructuralMember(Guid.NewGuid(), "H16", beams["B20"])
               {
                   Position = Position.Both,
                   TranslationX = new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   TranslationY = new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   TranslationZ = new Constraint<ForcePerLength?>(ConstraintType.Free, null),
                   RotationX = new Constraint<RotationalStiffness?>(ConstraintType.Free, null)
               },
            };
        }

        private RelConnectsStructuralMember CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationY(string name,
            StructuralCurveMember beam)
        => new RelConnectsStructuralMember(Guid.NewGuid(), name, beam)
        {
            Position = Position.Both,
            RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null)
        };

        private RelConnectsStructuralMember CreateRelConnectsStructuralMemberWithPositionBothAndFreeRotationXY(string name,
            StructuralCurveMember beam)
        => new RelConnectsStructuralMember(Guid.NewGuid(), name, beam)
        {
            Position = Position.Both,
            RotationX = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
            RotationY = new Constraint<RotationalStiffness?>(ConstraintType.Free, null),
        };
    }
}
See Also