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\