diff --git a/.ci/code/Engine_Test/Engine_Test.csproj b/.ci/code/Engine_Test/Engine_Test.csproj index cc9c2f33d..e3211dee7 100644 --- a/.ci/code/Engine_Test/Engine_Test.csproj +++ b/.ci/code/Engine_Test/Engine_Test.csproj @@ -3,8 +3,8 @@ netstandard2.0 https://github.com/BHoM/BHoM_Engine - 9.0.0.0 - 9.3.0.0 + 10.0.0.0 + 10.0.0.0 diff --git a/.ci/code/Serialiser_Test/Serialiser_Test.csproj b/.ci/code/Serialiser_Test/Serialiser_Test.csproj index ffc9f9996..7ff4fd671 100644 --- a/.ci/code/Serialiser_Test/Serialiser_Test.csproj +++ b/.ci/code/Serialiser_Test/Serialiser_Test.csproj @@ -3,8 +3,8 @@ netstandard2.0 https://github.com/BHoM/BHoM_Engine - 9.0.0.0 - 9.3.0.0 + 10.0.0.0 + 10.0.0.0 diff --git a/.ci/unit-tests/Base_Engine_Tests/Base_Engine_Tests.csproj b/.ci/unit-tests/Base_Engine_Tests/Base_Engine_Tests.csproj index 516b23891..5d79626ee 100644 --- a/.ci/unit-tests/Base_Engine_Tests/Base_Engine_Tests.csproj +++ b/.ci/unit-tests/Base_Engine_Tests/Base_Engine_Tests.csproj @@ -1,8 +1,8 @@ - 9.3.0.0 - 9.0.0.0 + 10.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine false Debug;Release;Test diff --git a/.ci/unit-tests/Serialiser_Engine_Tests/Serialiser_Engine_Tests.csproj b/.ci/unit-tests/Serialiser_Engine_Tests/Serialiser_Engine_Tests.csproj index ac4b15642..7c327191e 100644 --- a/.ci/unit-tests/Serialiser_Engine_Tests/Serialiser_Engine_Tests.csproj +++ b/.ci/unit-tests/Serialiser_Engine_Tests/Serialiser_Engine_Tests.csproj @@ -1,8 +1,8 @@ - 9.3.0.0 - 9.0.0.0 + 10.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine false Debug;Release;Test diff --git a/.ci/unit-tests/Structure_Engine_Tests/Structure_Engine_Tests.csproj b/.ci/unit-tests/Structure_Engine_Tests/Structure_Engine_Tests.csproj index f347e098b..9aff17377 100644 --- a/.ci/unit-tests/Structure_Engine_Tests/Structure_Engine_Tests.csproj +++ b/.ci/unit-tests/Structure_Engine_Tests/Structure_Engine_Tests.csproj @@ -1,8 +1,8 @@ - 9.3.0.0 - 9.0.0.0 + 10.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine false Debug;Release;Test diff --git a/.ci/unit-tests/TestHelper_Engine/TestHelper_Engine.csproj b/.ci/unit-tests/TestHelper_Engine/TestHelper_Engine.csproj index 5b8973d20..da7ea8ea8 100644 --- a/.ci/unit-tests/TestHelper_Engine/TestHelper_Engine.csproj +++ b/.ci/unit-tests/TestHelper_Engine/TestHelper_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.TestHelper - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Acoustic_Engine/Acoustic_Engine.csproj b/Acoustic_Engine/Acoustic_Engine.csproj index d8d6818cd..080a7a7ac 100644 --- a/Acoustic_Engine/Acoustic_Engine.csproj +++ b/Acoustic_Engine/Acoustic_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Acoustic - 9.3.0.0 + 10.0.0.0 diff --git a/Analytical_Engine/Analytical_Engine.csproj b/Analytical_Engine/Analytical_Engine.csproj index 232737846..aee138432 100644 --- a/Analytical_Engine/Analytical_Engine.csproj +++ b/Analytical_Engine/Analytical_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Analytical - 9.3.0.0 + 10.0.0.0 diff --git a/Architecture_Engine/Architecture_Engine.csproj b/Architecture_Engine/Architecture_Engine.csproj index 64d8f56b9..5a4067aeb 100644 --- a/Architecture_Engine/Architecture_Engine.csproj +++ b/Architecture_Engine/Architecture_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Architecture - 9.3.0.0 + 10.0.0.0 Off diff --git a/BHoM_Engine/BHoM_Engine.csproj b/BHoM_Engine/BHoM_Engine.csproj index ebd215a20..8b3a47885 100644 --- a/BHoM_Engine/BHoM_Engine.csproj +++ b/BHoM_Engine/BHoM_Engine.csproj @@ -1,7 +1,7 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine true 5.0.0 @@ -9,7 +9,7 @@ BHoM Copyright © https://github.com/BHoM BH.Engine.Base - 9.3.0.0 + 10.0.0.0 Debug;Release;Test diff --git a/Data_Engine/Data_Engine.csproj b/Data_Engine/Data_Engine.csproj index a2aae800f..b02e00880 100644 --- a/Data_Engine/Data_Engine.csproj +++ b/Data_Engine/Data_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Data - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Diffing_Engine/Diffing_Engine.csproj b/Diffing_Engine/Diffing_Engine.csproj index bcfcf77c6..df9c7f3af 100644 --- a/Diffing_Engine/Diffing_Engine.csproj +++ b/Diffing_Engine/Diffing_Engine.csproj @@ -1,14 +1,14 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM true BH.Engine.Diffing - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Environment_Engine/Environment_Engine.csproj b/Environment_Engine/Environment_Engine.csproj index 7ecc51671..ef72c8b76 100644 --- a/Environment_Engine/Environment_Engine.csproj +++ b/Environment_Engine/Environment_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Environment - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Facade_Engine/Facade_Engine.csproj b/Facade_Engine/Facade_Engine.csproj index 8d3422338..ccd92f1f3 100644 --- a/Facade_Engine/Facade_Engine.csproj +++ b/Facade_Engine/Facade_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Facade - 9.3.0.0 + 10.0.0.0 diff --git a/Geometry_Engine/Geometry_Engine.csproj b/Geometry_Engine/Geometry_Engine.csproj index a2a8a1f33..164dd45fd 100644 --- a/Geometry_Engine/Geometry_Engine.csproj +++ b/Geometry_Engine/Geometry_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Geometry - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Graphics_Engine/Graphics_Engine.csproj b/Graphics_Engine/Graphics_Engine.csproj index 93c0bac31..4d8abb083 100644 --- a/Graphics_Engine/Graphics_Engine.csproj +++ b/Graphics_Engine/Graphics_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Graphics - 9.3.0.0 + 10.0.0.0 diff --git a/Ground_Engine/Ground_Engine.csproj b/Ground_Engine/Ground_Engine.csproj index abc0f6a56..c10de158b 100644 --- a/Ground_Engine/Ground_Engine.csproj +++ b/Ground_Engine/Ground_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Ground - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Humans_Engine/Humans_Engine.csproj b/Humans_Engine/Humans_Engine.csproj index 503dd244e..845139008 100644 --- a/Humans_Engine/Humans_Engine.csproj +++ b/Humans_Engine/Humans_Engine.csproj @@ -2,14 +2,14 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM true BH.Engine.Humans - 9.3.0.0 + 10.0.0.0 diff --git a/Library_Engine/Library_Engine.csproj b/Library_Engine/Library_Engine.csproj index 7d58de8bf..9df71ad18 100644 --- a/Library_Engine/Library_Engine.csproj +++ b/Library_Engine/Library_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Library - 9.3.0.0 + 10.0.0.0 diff --git a/Lighting_Engine/Lighting_Engine.csproj b/Lighting_Engine/Lighting_Engine.csproj index 9944930bd..ff4266376 100644 --- a/Lighting_Engine/Lighting_Engine.csproj +++ b/Lighting_Engine/Lighting_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Lighting - 9.3.0.0 + 10.0.0.0 diff --git a/MEP_Engine/MEP_Engine.csproj b/MEP_Engine/MEP_Engine.csproj index f73a12155..80a5b744d 100644 --- a/MEP_Engine/MEP_Engine.csproj +++ b/MEP_Engine/MEP_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.MEP - 9.3.0.0 + 10.0.0.0 diff --git a/Matter_Engine/Matter_Engine.csproj b/Matter_Engine/Matter_Engine.csproj index 342bdcd96..ae3c319bf 100644 --- a/Matter_Engine/Matter_Engine.csproj +++ b/Matter_Engine/Matter_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Matter - 9.3.0.0 + 10.0.0.0 diff --git a/Physical_Engine/Physical_Engine.csproj b/Physical_Engine/Physical_Engine.csproj index 5c8c22bf5..dd59771c9 100644 --- a/Physical_Engine/Physical_Engine.csproj +++ b/Physical_Engine/Physical_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Physical - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Planning_Engine/Planning_Engine.csproj b/Planning_Engine/Planning_Engine.csproj index da960ffd5..d1b37f3ff 100644 --- a/Planning_Engine/Planning_Engine.csproj +++ b/Planning_Engine/Planning_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Planning - 9.3.0.0 + 10.0.0.0 diff --git a/Programming_Engine/Programming_Engine.csproj b/Programming_Engine/Programming_Engine.csproj index 4e642a2d8..149e71e96 100644 --- a/Programming_Engine/Programming_Engine.csproj +++ b/Programming_Engine/Programming_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Programming - 9.3.0.0 + 10.0.0.0 diff --git a/Reflection_Engine/Reflection_Engine.csproj b/Reflection_Engine/Reflection_Engine.csproj index 4641837b4..345f37df9 100644 --- a/Reflection_Engine/Reflection_Engine.csproj +++ b/Reflection_Engine/Reflection_Engine.csproj @@ -1,14 +1,14 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM true BH.Engine.Reflection - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Results_Engine/Results_Engine.csproj b/Results_Engine/Results_Engine.csproj index 9a6949544..688411f96 100644 --- a/Results_Engine/Results_Engine.csproj +++ b/Results_Engine/Results_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Results - 9.3.0.0 + 10.0.0.0 diff --git a/Search_Engine/Search_Engine.csproj b/Search_Engine/Search_Engine.csproj index 0f935bbaa..a8fa1bee0 100644 --- a/Search_Engine/Search_Engine.csproj +++ b/Search_Engine/Search_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Search - 9.3.0.0 + 10.0.0.0 true diff --git a/Security_Engine/Security_Engine.csproj b/Security_Engine/Security_Engine.csproj index 8e60145bf..3cb168b58 100644 --- a/Security_Engine/Security_Engine.csproj +++ b/Security_Engine/Security_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Security - 9.3.0.0 + 10.0.0.0 diff --git a/Serialiser_Engine/Serialiser_Engine.csproj b/Serialiser_Engine/Serialiser_Engine.csproj index 05bf8bd68..47c5fcdab 100644 --- a/Serialiser_Engine/Serialiser_Engine.csproj +++ b/Serialiser_Engine/Serialiser_Engine.csproj @@ -1,14 +1,14 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM true BH.Engine.Serialiser - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Settings_Engine/Settings_Engine.csproj b/Settings_Engine/Settings_Engine.csproj index 6727f5b22..4ce629e0d 100644 --- a/Settings_Engine/Settings_Engine.csproj +++ b/Settings_Engine/Settings_Engine.csproj @@ -3,8 +3,8 @@ netstandard2.0 https://github.com/BHoM/BHoM_Engine - 9.3.0.0 - 9.0.0.0 + 10.0.0.0 + 10.0.0.0 BH.Engine.Settings ..\Build\ diff --git a/Spatial_Engine/Spatial_Engine.csproj b/Spatial_Engine/Spatial_Engine.csproj index a2732f6fc..fd0d9416a 100644 --- a/Spatial_Engine/Spatial_Engine.csproj +++ b/Spatial_Engine/Spatial_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Spatial - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Structure_Engine/Query/MaterialComposition.cs b/Structure_Engine/Query/MaterialComposition.cs index d51a101da..d1d03c103 100644 --- a/Structure_Engine/Query/MaterialComposition.cs +++ b/Structure_Engine/Query/MaterialComposition.cs @@ -1,198 +1,190 @@ -/* - * This file is part of the Buildings and Habitats object Model (BHoM) - * Copyright (c) 2015 - 2026, the respective contributors. All rights reserved. - * - * Each contributor holds copyright over their respective contributions. - * The project versioning (Git) records all such contribution source information. - * - * - * The BHoM is free software: you can redistribute it and/or modify - * it under the terms of the GNU Lesser General Public License as published by - * the Free Software Foundation, either version 3.0 of the License, or - * (at your option) any later version. - * - * The BHoM is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public License - * along with this code. If not, see . - */ - - -using BH.Engine.Base; -using BH.oM.Base.Attributes; -using BH.oM.Dimensional; -using BH.oM.Physical.Materials; -using BH.oM.Quantities.Attributes; -using BH.oM.Structure.Elements; -using BH.oM.Structure.Fragments; -using BH.oM.Structure.MaterialFragments; -using BH.oM.Structure.Reinforcement; -using BH.oM.Structure.SectionProperties; -using BH.oM.Structure.SurfaceProperties; -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; - -namespace BH.Engine.Structure -{ - public static partial class Query - { - /***************************************************/ - /**** Public Methods ****/ - /***************************************************/ - - [Description("Returns a Bar's homogeneous MaterialComposition.")] - [Input("bar", "The Bar to material from.")] - [Output("materialComposition", "The kind of matter the Bar is composed of.")] - public static MaterialComposition MaterialComposition(this Bar bar) - { - if (bar.IsNull()) - return null; - - if (bar.SectionProperty == null || bar.SectionProperty.Material == null) - { - Engine.Base.Compute.RecordError("The Bars MaterialComposition could not be calculated as no Material has been assigned."); - return null; - } - - return Engine.Matter.Create.MaterialComposition(bar.GeneralMaterialTakeoff()); - } - - /***************************************************/ - - [Description("Returns an AreaElement's homogeneous MaterialComposition.")] - [Input("areaElement", "The AreaElement to material from.")] - [Output("materialComposition", "The kind of matter the AreaElement is composed of.")] - public static MaterialComposition MaterialComposition(this IAreaElement areaElement) - { - if (areaElement.IIsNull() || areaElement.Property.IsNull()) - return null; - - return Engine.Matter.Create.MaterialComposition(areaElement.GeneralMaterialTakeoff()); - } - - /***************************************************/ - - [Description("Returns a ConcreteSection's MaterialComposition, taking into account any Reinfrocement.")] - [Input("property", "The ConcreteSection to query.")] - [Output("materialComposition", "The MaterialComposition of the ConcreteSection.")] - public static MaterialComposition MaterialComposition(this ConcreteSection property) - { - if (property.IsNull()) - return null; - - GeneralMaterialTakeoff takeoff = property.GeneralMaterialTakeoff(1, null, null); - return Matter.Create.MaterialComposition(takeoff); - } - - /***************************************************/ - - [Description("Returns a Pile's homogeneous MaterialComposition.")] - [Input("pile", "The Pile to get material from.")] - [Output("materialComposition", "The kind of matter the Pile is composed of.")] - public static MaterialComposition MaterialComposition(this Pile pile) - { - if (pile.IsNull()) - return null; - - return Engine.Matter.Create.MaterialComposition(pile.GeneralMaterialTakeoff()); - } - - /***************************************************/ - - [Description("Returns a PileFoundation's homogeneous MaterialComposition.")] - [Input("pileFoundation", "The PileFoundation to get material from.")] - [Output("materialComposition", "The kind of matter the Pile is composed of.")] - public static MaterialComposition MaterialComposition(this PileFoundation pileFoundation) - { - if (pileFoundation.IsNull()) - return null; - - return Engine.Matter.Create.MaterialComposition(pileFoundation.GeneralMaterialTakeoff()); - } - - /***************************************************/ - - [Description("Returns a Stem's homogeneous MaterialComposition.")] - [Input("stem", "The Stem to query.")] - [Output("materialComposition", "The MaterialComposition of the Stem.")] - public static MaterialComposition MaterialComposition(this Stem stem) - { - if (stem.IsNull() || stem.Material.IsNull()) - return null; - - return Engine.Matter.Create.MaterialComposition(stem.GeneralMaterialTakeoff()); - } - - /***************************************************/ - - [Description("Returns a RetainingWall's homogeneous MaterialComposition based on the Stem and Footing.")] - [Input("retainingWall", "The RetainingWall to query.")] - [Output("materialComposition", "The MaterialComposition of the RetainingWall.")] - public static MaterialComposition MaterialComposition(this RetainingWall retainingWall) - { - if (retainingWall.IsNull() && retainingWall.Stem.IsNull() && retainingWall.Footing.IsNull()) - return null; - - - return Engine.Matter.Create.MaterialComposition(retainingWall.GeneralMaterialTakeoff()); - } - - /***************************************************/ - /**** Public Methods - Interface ****/ - /***************************************************/ - - [Description("Returns a SectionProperty's MaterialComposition.")] - [Input("property", "The SectionProperty to query.")] - [Output("materialComposition", "The MaterialComposition of the SectionProperty.")] - public static MaterialComposition IMaterialComposition(this ISectionProperty property) - { - return property.IsNull() ? null : MaterialComposition(property as dynamic); - } - - /***************************************************/ - - [PreviousVersion("9.3", "BH.Engine.Structure.Query.IMaterialComposition(BH.oM.Structure.SurfaceProperties.ISurfaceProperty, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.BuiltUpDoubleRibbed, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.BuiltUpRibbed, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.Cassette, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.SlabOnDeck, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.ToppedSlab, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.CorrugatedDeck, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [PreviousVersion("9.3", "BH.Engine.Structure.Query.MaterialComposition(BH.oM.Structure.SurfaceProperties.Layered, BH.oM.Structure.Fragments.ReinforcementDensity)")] - [Description("Returns a SurfaceProperty's MaterialComposition.")] - [Input("property", "The SurfaceProperty to query.")] - [Input("reinforcementDensity", "ReinforcementDensity assigned to the SurfaceProperty.")] - [Output("materialComposition", "The MaterialComposition of the SurfaceProperty.")] - public static MaterialComposition MaterialComposition(this ISurfaceProperty property, ReinforcementDensity reinforcementDensity = null) - { - if (property.IsNull()) //Specific MaterialComposition(SurfaceProp) methods must check for material null- some properties ignore the base material. - return null; - - return Engine.Matter.Create.MaterialComposition(property.IGeneralMaterialTakeoff(1, "", reinforcementDensity)); - } - - /***************************************************/ - /**** Private methods - Default ****/ - /***************************************************/ - - [Description("Returns a SectionProperty's homogeneous MaterialComposition.")] - [Input("property", "The SectionProperty to query.")] - [Output("materialComposition", "The MaterialComposition of the SectionProperty.")] - private static MaterialComposition MaterialComposition(this ISectionProperty sectionProperty) - { - return sectionProperty.IsNull() ? null : (MaterialComposition)Physical.Create.Material(sectionProperty.Material); - } - - - /***************************************************/ - - - - } -} - +/* + * This file is part of the Buildings and Habitats object Model (BHoM) + * Copyright (c) 2015 - 2026, the respective contributors. All rights reserved. + * + * Each contributor holds copyright over their respective contributions. + * The project versioning (Git) records all such contribution source information. + * + * + * The BHoM is free software: you can redistribute it and/or modify + * it under the terms of the GNU Lesser General Public License as published by + * the Free Software Foundation, either version 3.0 of the License, or + * (at your option) any later version. + * + * The BHoM is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public License + * along with this code. If not, see . + */ + + +using BH.Engine.Base; +using BH.oM.Base.Attributes; +using BH.oM.Dimensional; +using BH.oM.Physical.Materials; +using BH.oM.Quantities.Attributes; +using BH.oM.Structure.Elements; +using BH.oM.Structure.Fragments; +using BH.oM.Structure.MaterialFragments; +using BH.oM.Structure.Reinforcement; +using BH.oM.Structure.SectionProperties; +using BH.oM.Structure.SurfaceProperties; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; + +namespace BH.Engine.Structure +{ + public static partial class Query + { + /***************************************************/ + /**** Public Methods ****/ + /***************************************************/ + + [Description("Returns a Bar's homogeneous MaterialComposition.")] + [Input("bar", "The Bar to material from.")] + [Output("materialComposition", "The kind of matter the Bar is composed of.")] + public static MaterialComposition MaterialComposition(this Bar bar) + { + if (bar.IsNull()) + return null; + + if (bar.SectionProperty == null || bar.SectionProperty.Material == null) + { + Engine.Base.Compute.RecordError("The Bars MaterialComposition could not be calculated as no Material has been assigned."); + return null; + } + + return Engine.Matter.Create.MaterialComposition(bar.GeneralMaterialTakeoff()); + } + + /***************************************************/ + + [Description("Returns an AreaElement's homogeneous MaterialComposition.")] + [Input("areaElement", "The AreaElement to material from.")] + [Output("materialComposition", "The kind of matter the AreaElement is composed of.")] + public static MaterialComposition MaterialComposition(this IAreaElement areaElement) + { + if (areaElement.IIsNull() || areaElement.Property.IsNull()) + return null; + + return Engine.Matter.Create.MaterialComposition(areaElement.GeneralMaterialTakeoff()); + } + + /***************************************************/ + + [Description("Returns a ConcreteSection's MaterialComposition, taking into account any Reinfrocement.")] + [Input("property", "The ConcreteSection to query.")] + [Output("materialComposition", "The MaterialComposition of the ConcreteSection.")] + public static MaterialComposition MaterialComposition(this ConcreteSection property) + { + if (property.IsNull()) + return null; + + GeneralMaterialTakeoff takeoff = property.GeneralMaterialTakeoff(1, null, null); + return Matter.Create.MaterialComposition(takeoff); + } + + /***************************************************/ + + [Description("Returns a Pile's homogeneous MaterialComposition.")] + [Input("pile", "The Pile to get material from.")] + [Output("materialComposition", "The kind of matter the Pile is composed of.")] + public static MaterialComposition MaterialComposition(this Pile pile) + { + if (pile.IsNull()) + return null; + + return Engine.Matter.Create.MaterialComposition(pile.GeneralMaterialTakeoff()); + } + + /***************************************************/ + + [Description("Returns a PileFoundation's homogeneous MaterialComposition.")] + [Input("pileFoundation", "The PileFoundation to get material from.")] + [Output("materialComposition", "The kind of matter the Pile is composed of.")] + public static MaterialComposition MaterialComposition(this PileFoundation pileFoundation) + { + if (pileFoundation.IsNull()) + return null; + + return Engine.Matter.Create.MaterialComposition(pileFoundation.GeneralMaterialTakeoff()); + } + + /***************************************************/ + + [Description("Returns a Stem's homogeneous MaterialComposition.")] + [Input("stem", "The Stem to query.")] + [Output("materialComposition", "The MaterialComposition of the Stem.")] + public static MaterialComposition MaterialComposition(this Stem stem) + { + if (stem.IsNull() || stem.Material.IsNull()) + return null; + + return Engine.Matter.Create.MaterialComposition(stem.GeneralMaterialTakeoff()); + } + + /***************************************************/ + + [Description("Returns a RetainingWall's homogeneous MaterialComposition based on the Stem and Footing.")] + [Input("retainingWall", "The RetainingWall to query.")] + [Output("materialComposition", "The MaterialComposition of the RetainingWall.")] + public static MaterialComposition MaterialComposition(this RetainingWall retainingWall) + { + if (retainingWall.IsNull() && retainingWall.Stem.IsNull() && retainingWall.Footing.IsNull()) + return null; + + + return Engine.Matter.Create.MaterialComposition(retainingWall.GeneralMaterialTakeoff()); + } + + /***************************************************/ + /**** Public Methods - Interface ****/ + /***************************************************/ + + [Description("Returns a SectionProperty's MaterialComposition.")] + [Input("property", "The SectionProperty to query.")] + [Output("materialComposition", "The MaterialComposition of the SectionProperty.")] + public static MaterialComposition IMaterialComposition(this ISectionProperty property) + { + return property.IsNull() ? null : MaterialComposition(property as dynamic); + } + + /***************************************************/ + + [Description("Returns a SurfaceProperty's MaterialComposition.")] + [Input("property", "The SurfaceProperty to query.")] + [Input("reinforcementDensity", "ReinforcementDensity assigned to the SurfaceProperty.")] + [Output("materialComposition", "The MaterialComposition of the SurfaceProperty.")] + public static MaterialComposition MaterialComposition(this ISurfaceProperty property, ReinforcementDensity reinforcementDensity = null) + { + if (property.IsNull()) //Specific MaterialComposition(SurfaceProp) methods must check for material null- some properties ignore the base material. + return null; + + return Engine.Matter.Create.MaterialComposition(property.IGeneralMaterialTakeoff(1, "", reinforcementDensity)); + } + + /***************************************************/ + /**** Private methods - Default ****/ + /***************************************************/ + + [Description("Returns a SectionProperty's homogeneous MaterialComposition.")] + [Input("property", "The SectionProperty to query.")] + [Output("materialComposition", "The MaterialComposition of the SectionProperty.")] + private static MaterialComposition MaterialComposition(this ISectionProperty sectionProperty) + { + return sectionProperty.IsNull() ? null : (MaterialComposition)Physical.Create.Material(sectionProperty.Material); + } + + + /***************************************************/ + + + + } +} + diff --git a/Structure_Engine/Structure_Engine.csproj b/Structure_Engine/Structure_Engine.csproj index 3d174075a..73769a164 100644 --- a/Structure_Engine/Structure_Engine.csproj +++ b/Structure_Engine/Structure_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Structure - 9.3.0.0 + 10.0.0.0 ..\Build\ diff --git a/Verification_Engine/Verification_Engine.csproj b/Verification_Engine/Verification_Engine.csproj index b1fe91123..a1f3476a2 100644 --- a/Verification_Engine/Verification_Engine.csproj +++ b/Verification_Engine/Verification_Engine.csproj @@ -2,13 +2,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 6.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Verification - 9.3.0.0 + 10.0.0.0 Off ..\Build\ true diff --git a/Versioning_Engine/Versioning_Engine.csproj b/Versioning_Engine/Versioning_Engine.csproj index 65b06c50c..6fc81ba8f 100644 --- a/Versioning_Engine/Versioning_Engine.csproj +++ b/Versioning_Engine/Versioning_Engine.csproj @@ -1,13 +1,13 @@ netstandard2.0 - 9.0.0.0 + 10.0.0.0 https://github.com/BHoM/BHoM_Engine 5.0.0 BHoM Copyright © https://github.com/BHoM BH.Engine.Versioning - 9.3.0.0 + 10.0.0.0 ..\Build\