Click or drag to resize

StructuralSurfaceMember Class

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

Defines a 2D member
Inheritance Hierarchy
SystemObject
  ModelExchanger.AnalysisDataModel.BaseStructuralAnalysisObjectBase
    ModelExchanger.AnalysisDataModel.StructuralElementsStructuralSurfaceMember

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

The StructuralSurfaceMember type exposes the following members.

Constructors
Properties
  NameDescription
Public propertyAlignment
Position of the system plane.
Public propertyAnalysisEccentricityZ
Eccentricity of the force system line in Z direction of the local coordinate system
Public propertyArea
The area of the member The application providing the ModelExchanger.AnalysisDataModel should calculate this field.
Public propertyBehaviour
Behaviour of the 2D member will during analysis
Public propertyCode exampleColor
The color of the object. Primarily used when exporting to BIM+
Public propertyEdges
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 rib 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 2D member (eg rotation, LCS type, ...)
Public propertyMaterial
The material out of which the 2D member is constructed
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 propertyShape
Shape of the 2D member in the sense of the planarity of the system plane.
Public propertyStructuralEccentricityZ
Eccentricity of the system line in Z direction of the local coordinate system
Public propertyThickness
The thickness of the 2D member
Public propertyType
Type of the 2D member. Supports user-defined 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(StructuralSurfaceMember)
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 with constant thickness
private IReadOnlyCollection<StructuralSurfaceMember> CreateSurfacesWithConstantThickness(
    IReadOnlyDictionary<string, StructuralMaterial> materials,
    IReadOnlyDictionary<string, StructuralPointConnection> nodes)
{
    return new[]
    {
        new StructuralSurfaceMember(Guid.NewGuid(), "S1",
            new[]
            {
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N1"], nodes["N2"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N2"], nodes["N3"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N3"], nodes["N4"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N1"]})
            }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S2", new []
            {
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] {nodes["N6"], nodes["N7"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] {nodes["N7"], nodes["N5"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] {nodes["N5"], nodes["N8"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new [] {nodes["N8"], nodes["N6"]})
            },
            materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color= "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S3", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N3"] }),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N3"], nodes["N9"] }),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N9"], nodes["N4"] })
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S4", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N8"], nodes["N5"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N5"], nodes["N10"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N10"], nodes["N8"]})
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S5", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N3"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N3"], nodes["N5"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Arc3P, new []{ nodes["N5"], nodes["N91"], nodes["N8"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N8"], nodes["N4"]})
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S6", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N1"], nodes["N2"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N2"], nodes["N7"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N7"], nodes["N6"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N6"], nodes["N1"]})
        }, materials["MAT1"], Length.FromMillimeters(250D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S7", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N6"], nodes["N1"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N1"], nodes["N4"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N8"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N8"], nodes["N6"]})
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S8", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N60"], nodes["N61"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N61"], nodes["N3"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N3"], nodes["N4"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N60"]})
        }, materials["MAT1"], Length.FromMillimeters(18))
        {
            Color = "#FFFFFF00".ToColorUint(),
            LCSAdjustment = new LCSAdjustment<Member2DLCSType>(Member2DLCSType.TiltOfVectorDefinedByPoint)
            {
                X = Length.FromMeters(-4),
                Y = Length.FromMeters(1),
                Z = Length.Zero
            }
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S9", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N1"], nodes["N62"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N62"], nodes["N60"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N60"], nodes["N4"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N4"], nodes["N1"]})
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint()
        },
        new StructuralSurfaceMember(Guid.NewGuid(), "S10", new []
        {
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N62"], nodes["N63"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N63"], nodes["N64"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N64"], nodes["N60"]}),
            new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new []{ nodes["N60"], nodes["N62"]}),
        }, materials["MAT1"], Length.FromMillimeters(18D))
        {
            Color = "#FFFFFF00".ToColorUint(),
            LCSAdjustment = new LCSAdjustment<Member2DLCSType>(Member2DLCSType.XByVector)
            {
                X = Length.FromMeters(1D),
                Y = Length.Zero,
                Z = Length.Zero,
                Rotation = Angle.FromDegrees(45D)
            }
        }
    };
}
Creating an instance with varying thickness
private IReadOnlyCollection<StructuralSurfaceMember> CreateSurfacesWithVaryingThickness(
    IReadOnlyDictionary<string, StructuralMaterial> materials,
    IReadOnlyDictionary<string, StructuralPointConnection> nodes)
{
    return new[]
    {
        new StructuralSurfaceMember(Guid.NewGuid(), "S1v", new[]
            {
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new[] {nodes["N3"], nodes["N95"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new[] {nodes["N95"], nodes["N96"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new[] {nodes["N96"], nodes["N5"]}),
                new Curve<StructuralPointConnection>(CurveGeometricalShape.Line, new[] {nodes["N5"], nodes["N3"]})
            },
            materials["MAT1"],
            new MemberThickness<StructuralPointConnection>(nodes["N3"], Length.FromMillimeters(300D), nodes["N5"],
                Length.FromMillimeters(300D), nodes["N95"], Length.FromMillimeters(150D))
        )
    };
}
See Also