Click or drag to resize

StructuralMaterial Class

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

Defines a material
Inheritance Hierarchy
SystemObject
  ModelExchanger.AnalysisDataModel.BaseStructuralAnalysisObjectBase
    ModelExchanger.AnalysisDataModel.LibrariesStructuralMaterial

Namespace:  ModelExchanger.AnalysisDataModel.Libraries
Assembly:  ModelExchanger.AnalysisDataModel (in ModelExchanger.AnalysisDataModel.dll) Version: 1.13.0+Branch.master.Sha.d583fc64569355d188a9c0818d257b6d0d3e1339
Syntax
C#
public sealed class StructuralMaterial : StructuralAnalysisObjectBase, 
	ILibraryElementAnalysisObject, IStructuralAnalysisObject, IAnalysisObject, IEquatable<StructuralMaterial>

The StructuralMaterial type exposes the following members.

Constructors
  NameDescription
Public methodStructuralMaterial
Create a material with a type and quality
Top
Properties
  NameDescription
Public propertyCode exampleDesignProperties
Custom design characteristics of the material. The format of the data has to follow this convention: "label of the design property" "|" "value of the design property"
Public propertyEModulus
Young's modulus of elasticity
Public propertyGModulus
Shear modulus
Public propertyId
The ID of the Analysis object. Needs to be unique within the entire model
(Inherited from StructuralAnalysisObjectBase.)
Public propertyName
The name of the Analysis object. Needs to be unique within it's type
(Inherited from StructuralAnalysisObjectBase.)
Public propertyPoissonCoefficient
Poisson coefficient
Public propertyCode exampleQuality
The quality of the material
Public propertyStructuralName
The name of the material in a Structural Model to which this material is mapped.
Public propertyCode exampleSubtype
The subtype of the material.
Public propertyThermalExpansion
The coefficient of thermal expansion of the material
Public propertyType
The type of material
Public propertyUnitMass
Self-weight of the material
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(StructuralMaterial)
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.Libraries;
using ModelExchanger.AnalysisDataModel.Models;
using UnitsNet;

namespace ModelExchanger.AnalysisDataModel.Example.Libraries
{
    public sealed class StructuralMaterialExample : BaseExample<StructuralMaterial>
    {
        protected override IReadOnlyCollection<StructuralMaterial> CreateAnalysisObjects(AnalysisModel model)
        {
            return CreateConcreteMaterials()
                .Concat(CreateSteelMaterials())
                .Concat(CreateAluminiumMaterials())
                .Concat(CreateTimberMaterials())
                .Concat(CreateMasonryMaterials())
                .Concat(CreateGeneralMaterials())
                .ToList();
        }

        /// <summary>
        /// Creates concrete materials
        /// </summary>
        /// <returns>A collection of concrete materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateConcreteMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT1", MaterialType.Concrete, "C20/25")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(2500D),
                    EModulus = Pressure.FromMegapascals(3.0000E4D),
                    GModulus = Pressure.FromMegapascals(1.2500E5D),
                    PoissonCoefficient = 0.2D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT2", MaterialType.Concrete, "C25/30")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(2500D),
                    EModulus = Pressure.FromMegapascals(3.1500E4D),
                    GModulus = Pressure.FromMegapascals(1.3125E4D),
                    PoissonCoefficient = 0.2D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT3", MaterialType.Concrete, "C30/37")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(2500D),
                    EModulus = Pressure.FromMegapascals(3.2800E4D),
                    GModulus = Pressure.FromMegapascals(1.3667E4D),
                    PoissonCoefficient = 0.2D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                }
            };
        }

        /// <summary>
        /// Creates steel materials
        /// </summary>
        /// <returns>A collection of steel materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateSteelMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT4", MaterialType.Steel, "S235")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(7850D),
                    EModulus = Pressure.FromMegapascals(2.1000E5D),
                    GModulus = Pressure.FromMegapascals(8.0769E4D),
                    PoissonCoefficient = 0.3D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT5", MaterialType.Steel, "S235")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(7850D),
                    EModulus = Pressure.FromMegapascals(2.1000E5D),
                    GModulus = Pressure.FromMegapascals(8.0769E4D),
                    PoissonCoefficient = 0.3D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                }
            };
        }

        /// <summary>
        /// Creates aluminium materials
        /// </summary>
        /// <returns>A collection of aluminium materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateAluminiumMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT6", MaterialType.Aluminium, "EN-AW 5083")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(2700D),
                    EModulus = Pressure.FromMegapascals(7.0000E4D),
                    GModulus = Pressure.FromMegapascals(2.6923E4D),
                    PoissonCoefficient = 0.3D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT7", MaterialType.Aluminium, "EN-AW 8011A")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(2700D),
                    EModulus = Pressure.FromMegapascals(7.0000E4D),
                    GModulus = Pressure.FromMegapascals(2.6923E4D),
                    PoissonCoefficient = 0.3D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                }
            };
        }

        /// <summary>
        /// Creates timber materials
        /// </summary>
        /// <returns>A collection of timber materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateTimberMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT8", MaterialType.Timber, "D30 (EN 338)")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(640D),
                    EModulus = Pressure.FromMegapascals(1.1000E4D),
                    GModulus = Pressure.FromMegapascals(6.9000E2D),
                    PoissonCoefficient = 0D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT9", MaterialType.Timber, "C22 (EN 338)")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(410D),
                    EModulus = Pressure.FromMegapascals(1.0000E4D),
                    GModulus = Pressure.FromMegapascals(6.3000E2D),
                    PoissonCoefficient = 0D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                },
                new StructuralMaterial(Guid.NewGuid(), "MAT10", MaterialType.Timber, "GL 30c (EN 14080)")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(430D),
                    EModulus = Pressure.FromMegapascals(1.3000E4D),
                    GModulus = Pressure.FromMegapascals(6.5000E2D),
                    PoissonCoefficient = 0D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                }
            };
        }

        /// <summary>
        /// Creates masonry materials
        /// </summary>
        /// <returns>A collection of masonry materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateMasonryMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT11", MaterialType.Masonry, "Masonry")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(650D),
                    EModulus = Pressure.FromMegapascals(3.1000E3D),
                    GModulus = Pressure.FromMegapascals(1.2400E3D),
                    PoissonCoefficient = 0.25D,
                    ThermalExpansion = CoefficientOfThermalExpansion.Zero
                }
            };
        }

        /// <summary>
        /// Creates general materials
        /// </summary>
        /// <returns>A collection of general materials</returns>
        private IReadOnlyCollection<StructuralMaterial> CreateGeneralMaterials()
        {
            return new StructuralMaterial[]
            {
                new StructuralMaterial(Guid.NewGuid(), "MAT12", MaterialType.Other, "General material")
                {
                    UnitMass = Density.FromKilogramsPerCubicMeter(1000D),
                    EModulus = Pressure.FromMegapascals(1.0000E4D),
                    GModulus = Pressure.FromMegapascals(5.0000E3D),
                    PoissonCoefficient = 0.50D,
                    ThermalExpansion = CoefficientOfThermalExpansion.FromInverseKelvin(0.63D)
                }
            };
        }
    }
}
See Also