Releases: BHoM/documentation
Releases · BHoM/documentation
v5.2.β.0
BHoM
Feature
- Analytical_oM: Add identifier categorisation attribute for results
- Analytical_oM: Add IResultSeries interface
- Geometry_oM: Adding IElement2D interface to the PlanarSurface
- Graphics_oM: Add graphics render texture
- Graphics_oM: Adding RenderCurve class
- Lighting_oM: Tweaked and Added Lighting Results for Mesh and Series Result Support
- Structure_oM: Adding CorrugatedDeck and SlabOnDeck Surface Properties
External-api-changes
Compliance
BHoM_Adapter
Compliance
BHoM_Datasets
Compliance
BHoM_Engine
Feature
- Analytical_Engine: Refactor and efficiency of graph methods
- Significant speed improvement to Adjacency method
- Complete rewrite of EntityNeighbourhood to significantly quicker method making use of the Depth method. Most notable performance can be seen when finding Neighbourhood in both directions, and slightly larger Depth.
- Rewrite of the Geometry method for it to display more geometries, if set, and significant speed upgrade.
- Rewrite the way ProjectGraph works from excluding things not wanted, to pick out things sought for
- Diffing_Engine:
IPropertyDifference.Description
to contain modified object Name by default when possible- When diffing, the single property changes have now a Description which start by giving the Name of the modified object. The name is only given when it did not change between past and following object.
- A minor bug was also fixed, in that the Type was incorrectly reported before. Now the type is not exposed anymore, unless an option is turned on.
- More options to customise the Description have been implemented, but all of them are currently private and therefore not accessible, although they will be exposed soon.
- Diffing_Engine: more null guarding against empty IEnumerables in the ComparisonConfig
- Environment_Engine: Add tolerance param to Opening
- Facade_Engine: Improvements to Facade SolidVolume and MaterialComposition Methods
- Geometry_Engine: Adding methods required by IElement2D for PlanarSurface
- Geometry_Engine: Performance tweaks and thread handling
- Library_Engine: Add versioning for libraries
- Lighting_Engine: Added Create Methods for Lux Results, LuxSeries Results, and Mesh Results
- Result_Engine: Add support for IResultSeries type results for property extraction and display
- Results_Engine: Adding method for grouping by types of Identifiers
- Structure_Engine: Add layered shell methods
- Structure_Engine: Add metal deck surface property methods
Bug
- BHoM_Engine: fix Hash() method not working with CustomObjects
- Data_Engine: handle empty tags
- Data_Engine: Set Name and Tag in AsCustomObject()
- Diffing_Engine: fix
NumericalDifferenceInclusion()
that did not trigger check onIsNumerical()
correctly - Environment_Engine: Check for directory in ExportEPW
- Environment_Engine: Hard coded default acceptOnEdges to true
- Facade_Engine: MaterialComposition tweak to return valid empty value for valid empty frame edge
- Geometry_Engine: Fix only checking IsClockwise for closed curves
- Results_Engine: Fix FilterBy not filtering by all properties.
- Structure_Engine: Add check if bar contains reinforcement
Compliance
- CI: Update CI Code to new CSProject format
- Data_Engine: Add Round method from TAS_Toolkit
- Physical_Engine: Fix typo and punctuations
- Remove 5.1 Previous Version Attributes
- Structure_Engine: Add null check for reinforcement in material composition
- Update assembly file version to 5.2
BHoM_UI
Feature
Compliance
BHoMAnalytics_Toolkit
Compliance
CarbonQueryDatabase_Toolkit
Compliance
ClimateEmergency_Toolkit
Compliance
Clipper_Toolkit
Compliance
CSharp_Toolkit
Compliance
Dynamo_Toolkit
Compliance
EnergyPlus_Toolkit
Compliance
ETABS_Toolkit
Compliance
Excel_Toolkit
Bug
Compliance
File_Toolkit
Bug
Compliance
Grasshopper_Toolkit
Feature
- Add support for render texture
- Adding support for RenderCurve
- Caching of preview meshes to improve performance
Compliance
GSA_Toolkit
Bug
Compliance
HTTP_Toolkit
Compliance
iAuditor_Toolkit
Bug
Compliance
IES_Toolkit
Compliance
LadybugTools_Toolkit
Feature
Compliance
LifeCycleAssessment_Toolkit
Feature
Bug
Compliance
Localisation_Toolkit
Compliance
Lusas_Toolkit
Compliance
- [Update assembly file version to 5.2](https://github.com/BHoM/L...
v5.1.β.0
BHoM
Feature
- Analytical_oM: Documentation clarification and additions of results
- Analytical_oM: IResultCollection generic update
- Analytical_oM: Refresh of Result interfaces
- Environment_oM: TranslucentShade panel type
- Facade_oM: Extrusion Bounding Box Fragment
- Graphics_oM: Result display improvements
- LifeCycleAssessment_oM: Removal of Scope Object classes and Creation of Scope Fragment
- Structure_oM: Added Layer and Layered surface property
Bug
Compliance
- Diffing_oM: add required property to DiffingConfig to fix behaviour when custom ObjectDifference is needed
- Physical_oM: Removes all checks from the constructor of the MaterialComposition
- Provide versioning for Civil3D oM
- Reflection_oM: Migrate objects to Base_oM - Removing Reflection_oM
- All Reflection_oM objects moved to Base_oM
- Removal of
DeprecatedAttribute
(deprecated itself in v3.2) - Removal of Reflection_oM project
- Spatial_oM: Migrating grids and levels to Spatial
- Migrate Grids from Geometry to Spatial_oM
- Migrate Level from Geometry to Spatial_oM
- Add versioning from architectural grids and levels to migrated Spatial versions
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
BHoM_Adapter
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Remove PreviousVersion Attributes
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
BHoM_Datasets
Feature
Compliance
BHoM_Engine
Feature
- BHoM_Engine: ThreadStatic attribute taken off the debug log and replaced by a lock
- Data_Engine: tree children query added
- Environment_Engine: Create openings from a panel
- Environment_Engine: FilterPanelsByType now accepts a list of PanelType
- Facade_Engine: Method to Modify Section Profile Depth within FrameEdgeProperty
- Facade_Engine: SAM and CAM methods fixed and improved
- Result_Engine: Result display improvements
- Results_Engine: Simplifying Method Signature of DisplayMeshResults
- Spatial_Engine: Adding Geometry method for shapeprofiles
- Verification: Additional exceptions as errors for null checks
Bug
- Base_Engine: Making SetGeometry call TryRunExtensionMethod
- Diffing_Engine: Add function to get ObjectDifferences to correctly identify modified items in non-indexed/unsorted collections
- Reflection_Engine: LoadAllAssemblies fixed to load assemblies with dot in name
- Results_Engine: Checking ToString properties instead of IComparable for ResultFiltering
- Serialiser_Engine: Fix issue with classmaps of inner generic types
- Add convention for handling settings of all BSONClassMaps
External-api-changes
Compliance
- Align to changes in oM - moving Reflection_oM objects to Base_oM -> updating usings and codings to the new object locations
- Removes Reflection_oM dependencies from all projects
- Updates all usings from BH.oM.Reflection > BH.oM.Base
- Moves methods from Reflection_Engine to Base_Engine in line with previous agreements in issues 1645 and 2671
- Aligning with Grid and Level migration to Spatial
- Migrating all methods to do with Grids and Levels in Geometry_Engine to Spatial_Engine
- Aligning all other Engines to changes made
- BHoM_Engine: Fix typos
- CI: Exclusion added to the null checks
- Environment_Engine: Remove FindFragment
- Geometry_Engine: Add empty bounds methods for Face, Basis and TransformMatrix
- Humans_Engine: Align with making ViewQualityResults immutable
- Matter_Engine: Additional checks on Create for MaterialComposition
- Reflection_Engine: Include Replaced and ToBeRemoved back to the IsDeprecated check
- Remove PreviousVersion Attributes
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
BHoM_UI
Feature
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
BHoMAnalytics_Toolkit
Feature
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
CarbonQueryDatabase_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
ClimateEmergency_Toolkit
Compliance
Clipper_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
CSharp_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
DIALux_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
Dynamo_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
EnergyPlus_Toolkit
Compliance
- Align with changes in oM and Engine on Reflection -> Base
- Update AssemblyFileVersion to 5.1.0.0
- Update Copyright Headers
ETABS_Toolkit
Feature
- Add support for future ETABS versions
- Rename ETABS18Adapter to ETABSAdapter
- Make sure the ETABSAdapter starts the latest available version of ETABS on the computer
Bug
- [Fix spring stiffness for BarR...
v5.0.β.0
BHoM
Feature
- Base_oM: Adding Enumeration object
- BHoM: Add and refactor objects for Diffing
- Data_oM: Adding confidence enum to Source object
- Data_oM: Create LibrarySettings
- Diffing_oM: reworked
Diff
class; addedComparisonInclusion
and aComparisonConfig
base class- Added a
ComparisonInclusion
object that stores the result of the method of the same name, which can be implemented in specific Toolkits. This latter is called automatically by Diffing/Hash methods to determine if/how to include certain property differences. See BHoM/BHoM_Engine#2699 - Created a
ComparisonConfig
abstract class to allow Toolkits to implement more specific configurations. A default ComparisonConfig implementation is provided too. - Removed the previous solution that used ComparisonFunctions delegates.
- Added
ComparisonConfig
settings related to Numeric Tolerance and Significant Figures.
- Added a
- Enivironment_oM: Replace reference to "Zone" in Dwelling.cs
- Spatial_oM: Add support for tapered flange sections
- Structure_oM: Add timber design values to the Timber MaterialFragment class
- Structure_oM: Change default value of Node orientation to null
External-api-changes
Compliance
- Base_oM:
ComparisonConfig
properties description, naming and order revised for compliance- Renamed
CustomDataKeysToInclude
toCustomDataKeysToConsider
- Changed the ordering of the properties in
ComparisonConfig
for ease of use - Corrected/improved some property descriptions in
ComparisonConfig
- Renamed
- Base_oM: Adding missing virtual keyword on Enumeration properties
- BHoM: ISettings to implement IObject
- BHoM: Update default namespaces
- Diffing_oM: simplification of DiffingConfig and removing DiffingType
- Removed
BH.oM.Diffing.DiffingType
enum. It was only used inBH.Engine.Diffing.IDiffing()
to allow users to "steer" the automated process, but actually it complicated matters and was completely unused. - Removed 2 properties from
DiffingConfig
that should not have been there in the first place:CustomDataKey
andFragmentType
. Those allowed to specify (possibly conflicting) info on where the Diffing should fetch the objects Ids to be used. Now these are simply input parameters of the specific Diffing methods, separate from theDiffingConfig
. - Added an option to allow duplicate Ids in the input collections (for the rare cases where it could make sense
false
by default).
- Removed
- Graphics_oM: Refactor
Vertex
and rename it toRenderPoint
- Update Assembly Version
BHoM_Adapter
Feature
Bug
External-api-changes
Compliance
- Adapter_Engine: add reference for
HashComparer
- Added a
using
reference to support theHashComparer
that has been moved toBH.Engine.Base
fromBH.Engine.Diffing
.
- Added a
- Update Assembly Version
- Update default namespaces
BHoM_Datasets
Feature
External-api-changes
Compliance
BHoM_Engine
Feature
- Base_Engine: Adding basic support for Enumeration objects
- BHoM_Engine: Diffing and Hash to support Toolkit-specific requirements
BH.Engine.Base.Hash()
now fully supports theComparisonConfig.PropertiesToConsider
, down to the sub-properties.BH.Engine.Diffing.DifferentProperties()
now supportsComparisonConfig.PropertiesToConsider
.- The
BH.Engine.Diffing.IDiffing()
method is now capable of detecting otherDiffing()
methods that are defined in downstream toolkits and that should be invoked on objects coming from the toolkit's namespace. If the input objects come from multiple namespaces, the diffing is done by calling multiple methods and the results are merged. - This means that any Toolkit can define a toolkit-specific
Diffing
method that the baseIDiffing
can invoke automatically for the user. In most instances, we can expect those toolkit-specific methods to simply be doing some needed toolkit-specific object pre-processing, before calling one of the base methods which will do the heavy lifting. Example for Revit. - The toolkit-specific Diffing signature just needs to have 2 initial parameters of type IEnumerable (the two sets to compare) and an extra
DiffingConfig
parameter. Only one such method can exist in a Toolkit; if multiple are found, only the first discovered is used and an alert is raised. - This means that, like before, the users need to be only aware of the
IDiffing
method and do not need to know all of the subtleties behind the other methods, in most cases.
- Diffing_Engine: add
DiffWithCustomIds()
and related refactoring and simplifications - Diffing_Engine: allow Toolkit-specific methods to be called depending on presence of IPersistentAdapterId
- Diffing_Engine: Toolkit-specific Diffing methods; restructured Diff; numeric Tolerance
- Toolkitspecific Diffing now rely on TryRunExtensionMethod and a discovery of
*Diffing
methods that can be defined in specific namespaces. - Toolkitspecific
Query.ComparisonInclusion(SomeObject object)
methods are discovered and called by the Hash/Diffing functions when analysing object properties. TheComparisonInclusion
evaluates if/how specific properties should be included in the comparison; it can be implemented in specific Toolkits to allow for options that are specific to that Toolkit. - Alignments to the new
Diff
object structure. - Reworked the Custom numeric tolerances per property feature.
- General tidy up and quality of life improvements.
- Toolkitspecific Diffing now rely on TryRunExtensionMethod and a discovery of
- Environment_Engine Updated Method for isExternal.cs
- Environment_Engine: Add IsContaining method for an Environment Space
- Geometry_Engine: Add Length and area method to ellipse
- Graphics_Engine: added new RenderMesh extension method
- Added a
BH.Engine.Graphics.Query.RenderMesh(IObject obj)
method. This currently does two searches. First, it looks for anIRenderMesh
extension method first, which is currently defined in the TriangleNet_Toolkit. If that is not found, then aRenderMesh
extension method for the given object is searched. As we centralise the Meshing functionality more, we will be able to remove the former search.
- Added a
- Library_Engine: Enable user defined paths for libraries
- Library_Engine: Extract Confidence from Dataset
- Physical_Engine: Methods to query dimensions from Openings added
- Added
BH.Engine.Geometry.Query.Width
- Added
BH.Engine.Geometry.Query.Height
- Added
BH.Engine.Physical.Query.Height
- Added
BH.Engine.Physical.Query.Width
- Added
BH.Engine.Physical.Query.Bottom
- Added
- Reflection_Engine: assembly loading improved (2nd try)
- internal
BH.Engine.Reflection.Global
class introduced to store the reflected assemblies, types and methods as well as to monitor the current domain for any newly loaded assemblies BH.Engine.Reflection.Compute.ReflectAssembly
method added to extract all relevant information from an assembly in one placeBH.Engine.Reflection.Compute.LoadAssembly
method added to allow for loading single assembliesBH.Engine.Reflection.Compute.LoadAllAssemblies
refactored to allow for multiple calls in lifetime of theCompute
class- other methods refactored to leverage the above concept
- internal
- Reflection_Engine: LoadAllAssemblies refined to accept regular expression filters and allow parsing subfolders
- Reflection_Engine: reflection of non-BHoM types enabled
- [Spatial_Eng...
v4.3.β.0
BHoM
Feature
- Analytical_oM: Reformulate the IResult interface
- Modified
IResult
to become an empty interface (no required properties). - Added
IObjectIdResult
, that asks for anObjectId
- Added
ICasedResult
, that asks for aResultCase
- Added
ITimeStepResult
, that asks for aTimeStep
IAnalyticalResult
was added; this replicates what the oldIResult
used to be, by implementing all the abovementioned interfaces. All existing implementations ofIResult
were modified to referenceIAnalyticalResult
, so we maintain existing functionality.
- Modified
- Architecture_oM: IElement0D implemented by BuildersWork.Opening
- BHoM: IPersistentAdapterId not to require set on PersistentId
- Environment_oM: Added new objects for time dependent analysis grid results
- Humans_oM: Avalue analysis improvements
- MEP_oM: Add new fitting object
- Added
BH.oM.MEP.System.Fittings.Fitting
- Added
BH.oM.MEP.Enum.FittingType
- Modified
BH.oM.MEP.System.CableTray
- Removed
BH.oM.MEP.System.ConnectionProperties.IConnectionProperty
- Removed
BH.oM.MEP.System.ConnectionProperties.CableTrayConnectionProperty
- Added
- Structure_oM: Add RebarIntent objects for Bars and Panels
- Removed
MinimumCover
attribute fromConcreteSection
and migrated it toRebarIntent
- Changed how reinforcement is stored on a
ConcreteSection
, instead ofList<IBarReinforcement>
it now stores a singleBarRebarIntent
- Added a
BarRebarIntent
class that stores aList<IBarReinforcement>
and theMinimumCover
this inherits theIRebarIntent
interface as the overarching class for RebarIntent across different elements - Added
IRebarIntent
interface - Added
ReinforcementRegion
which defines the area of thePanel
that is being reinforced, this is using anICurve
and aBasis
- Added
PanelReinforcement
which stores the geometrical definition of the reinforcement, aligned to theOrientation
of theReinforcementRegion
i.e. local x is longitudinal and local y is transverse PanelReinforcement
also stores theMinimumCover
to allow the different layers of reinforcement to have different covers- Added
PanelRebarIntent
which inheritsIRebarIntent
andIFragment
storing the reinforcement intent of thePanel
and is added through theFragments
- Removed
- Structure_oM: Add ReinforcementDensity, BarRequiredArea and MeshRequiredArea classes
- Added
ReinforcementDensity
as aFragment
to be assigned toBar
andAreaElement
objects - Added
BarRequiredArea
/MeshRequiredArea
as aBarResult
/MeshElementResult
to receive results from calculations and/or software - Added
AreaPerUnitLength
attribute to theQuantities_oM
- Added
Compliance
- BHoM: Fix root namespaces for Diffing and Facade oMs
- BHoM: Removed GetShallowClone method from IBHoMObject and BHoMObject
- Update Assembly Version
BHoM_Adapter
Feature
Compliance
BHoM_Datasets
Feature
Bug
Compliance
BHoM_Engine
Feature
- Analytical_Engine: Add CleanRegion method
- Analytical_Engine: Add Region IsContaining method
- Architecture_Engine: IElement0D methods added to Architecture.BuildersWork.Opening
- Facade_Engine: Calculation Method to translate section U-values to Effective U-values by Area Weighting
- Facade_Engine: Improved Adjacency Methods and Added CurtainWall Methods
- Geometry_Engine: Added tolerance to Create PlanarSurface and methods it relies on
- Humans_Engine: Avalue analysis improvements
- Library_Engine: Add method for checking if Dataset is Prototype
- MEP_Engine: Add support for the new fitting object
- Modified
BH.Engine.MEP.Modify.SetGeometry
- Modified
BH.Engine.MEP.Query.Geometry
- Modified
- Reflection_Engine: Add method to detect if an item is part of the curated BHoM
- Reflection_Engine: Provide better support for setting a DateTime property with a string input
- Results_Engine: Aligning to IResult interface reformulation
- Spatial_Engine: Add query dominant vector
- Adds
BH.Engine.Spatial.Query.DominantVector
- Adds
- Structure_Engine: Add associated Engine methods for BarRebarIntent and PanelRebarIntent
- Refactor existing engine methods that make use of
IBarReinforcement
,LongitudinalReinforcement
orTransverseReinforcement
- Update
Create
methods that have inputs forMinimumCover
andList<IBarReinforcement>
- Added
Create
methods forBarRebarIntent
,PanelRebarIntent
,PanelReinforcement
andReinforcementRegion
- Added associated
IsNull
methods for the new objects
- Refactor existing engine methods that make use of
- Structure_Engine: Added methods for ReinforcementDensity, BarRequiredArea and MeshRequiredArea classes
- Added
Compute
methods to summate the required area inBarRequiredArea
andMeshRequiredArea
- Added
Compute
method to evaluate aReinforcementDensity
object based on aBarRequiredArea
- Made the
FindIdentifier
method public and migrated to the BHoM_Engine - Added descriptions for all
Min
andMax
methods in the Results_Engine - Added
MaxEnvelope
,MaxBarRequiredArea
andMaxMeshRequiredArea
methods - Added
MinEnvelope
,MinBarRequiredArea
andMinMeshRequiredArea
methods - Added
null
checks to theMin
andMax
methods in the Results_Engine
- Added
Bug
- Diffing_Engine: DiffWithFragmentId to pass the DiffConfig correctly
- Environment_Engine: Bug fixes for various methods
- Environment_Engine: Bug fixes to fix stack overflow & TidyPanels bug
- Facade_Engine: Fixed error handling and improved error/warning reporting for MaterialComposition
- Geometry_Engine: DistributeOutlines fixed not to require the collection of openings not to be empty
- Geometry_Engine: planar surface creation and DistributeOutlines checks/messages refined
- Geometry_Engine: Planar surface creation without openings fixed
- Reflection_Engine: Add ability to set Fragment property from list of objects
- Structure_Engine: Fix Query.CoordinateSystem crashing on self-intersecting Panels
- Verification: Make sure NullCheck method can call Generic methods
Compliance
- Analytical_Engine: Replaced calls to IClone with calls to DeepClone
- Architecture_Engine: replace calls to GetShallowClone
- BHoM_Engine: replaced calls to Query.Clone() and Query.IClone() with calls to BH.Engine.Base.DeepClone()
- Environment_Engine: Remove calls to GetShallowClone
- Facade_Engine: replace calls to GetShallowClone
- Lighting_Engine: Remove calls to GetShallowClone
- MEP_Engine: Fix project reference to Matter Engine
- MEP_Engine: replace calls to GetShallowClone
- Physical_Engine: replace calls to GetShallowClone
- Remove PreviousVersion attributes for previous milestones
- Security_Engine: Remove calls to GetShallowClone
- Structure_Engine: remove references to GetShallowClone
- [Structure_Engine: Replace calls to Clone, IClone, and GetShallowClone methods with calls to DeepClone and ShallowCl...
v4.2.β.0
BHoM
Feature
- Environment_oM: Move methods from SAP_Tk to core
- Facade_oM: Added Results and Fragments for UValues Applied to Frames and Openings
- Graphics_oM: Add GradientOptions and GradientCenteringOptions
- LifeCycleAssessment_oM: EPD Refactor to extend functionality
- Structure_oM: Adding UniformLoadSet and ContourLoadSet from RAM_oM
- Versioning_oM: Add oM from Versioning_Toolkit with VersioningEvent
Compliance
BHoM_Adapter
Compliance
- Handle nulls in Adapter_Engine methods
- Remove PreviousVersion attributes for previous milestones
- Update Assembly Version
BHoM_Datasets
Feature
Compliance
BHoM_Engine
Feature
- Facade_Engine: Added Methods to calculate UValues on elements based on new U and Psi fragments
- Architecture_Engine: Add distance method for Builders Work openings
- Environment_Engine: Add method for creating levels from regions
- Environment_Engine: Move methods from SAP_Tk to core
- Facade_Engine: Added ExternalEdges, GetEdgeType, and corresponding Create Methods
- Reflection_Engine: Add support for setting an enum property from a string
- Result_Engine, Graphics_Engine: Add DisplayMeshResults, MapResults, and methods for GradientOptions
- Serialiser_Engine: RegisterClassMaps added for entire assemblies
- Spatial_Engine: Remove Normal from RoundCoordinates
- Moved
FitPlane
methods forIElement
classes to theSpatial_Engine
. - Updated
RoundCoordinates
method for theIElement2D
class in theSpatial_Engine
. - Updated
RoundCoordinates
method for thePlanarSurface
class in theGeometry_Engine
.
- Moved
- Structure_Engine: Add conversion methods for FEMesh to Panel and vice versa for a limit use case
- Added
PanelToFEMesh
which converts aPanel
with 3 or 4Nodes
to anFEMesh
- Added
FEMeshToPanel
with converts anFEMesh
object in to aPanel
- Added
- Versioning_Engine: Add a VersioningEvents() and a VersioningKey(BsonDocument) method
- Versioning_Engine: Add BHoM version in serialisation
Bug
- Base_Engine: Create a useable DateTime for RandomObject
- BHoM_Engine: Adding null checks on geometry methods
- BHoM_Engine: Fix FilterByType
- Environment_Engine: Add the option to change panel type for panel objects
- Environment_Engine: Bug fixes on geometry methods
- Environment_Engine: Fix typo in method name + versioning for method as appropriate
- Environment_Engine: Skip IInternalEdges when set to null
- Geometry_Engine: point on plane projection fixed
- Reflection_Engine: Fix recursive ToText on types
- Reflection_Engine: Make sure no warning is shown when setting property of a CustomObject
- Serialisation_Engine: Fix Serialisation of Generics
- Serialiser_Engine: colour serialisation bug fixed
- Serialiser_Engine: Fix serialisation of Dictionary as top level object
- Spatial_Engine: Fixing RoundCoordinates(IElement) bug and unit test
- Updated
RoundCoordinates
method in theSpatial_Engine
forIElement2D
class. - Updated unit test for
RoundCoordinates
method in theSpatial_Engine
.
- Updated
Compliance
- Acoustic_Engine: Handle nulls
- Analytical_Engine: Handle nulls
- Architecture_Engine: Fix null handling
- BHoM_Engine: Handle nulls
- Data_Engine: Handle nulls
- Diffing_Engine: Handle nulls
- Environment_Engine: Null handling
- Facade_Engine: Handle nulls
- Graphics_Engine: Handle nulls
- Humans_Engine: Handle nulls
- Library_Engine: Handle nulls
- MEP_Engine: Fix null handling
- Physical_Engine: Null handling
- Reflection_Engine: Adding null handling
- Remove PreviousVersion attributes for previous milestones
- Structure_Engine: Fix null handling failures
- Update Assembly Version
Test-script
- CI/CD: Add test to make sure all methods can work with null inputs
- Geometry_Engine: Add unit tests based on method usage analytics
BHoM_UI
Feature
- Add ability to create a DateTime type from the CreateType component
- Provide a report of the upgraded component when opening a script
Compliance
- Migrate ISettings to the oM.Base namespace
- Remove PreviousVersion attributes for previous milestones
- Set .NET framework version to 4.5.2
- Update Assembly Version
BHoMAnalytics_Toolkit
Feature
- Usage data collection crowbared not to log Revit usage in case of RevitAPI assembly not being loaded
Compliance
CarbonQueryDatabase_Toolkit
Feature
Compliance
- Revert "Updates to support EPD refactor"
- Set .NET framework version to 4.5.2
- Update Assembly Version
ClimateEmergency_Toolkit
Compliance
Clipper_Toolkit
Compliance
CSharp_Toolkit
Compliance
DIALux_Toolkit
Compliance
Dynamo_Toolkit
Compliance
EnergyPlus_Toolkit
Compliance
ETABS_Toolkit
Compliance
Excel_Toolkit
Feature
- Add COM server to provide BHoM functionality in VBA
- Add support for DBNull when converting VBA nulls to C# nulls
- Add support for the versioning report window
- Provide better COM conversion for FragmentSet and Enums
Bug
- Add ability to force property types on CreateCustom
- Excel_Toolkit: Do not include empty cells when condensing a list
- [Force AddIn to clean after itself when excel is exited](https://github.com/BHoM/E...
v4.1.β.1
v4.1.β.0
BHoM
Feature
- Architecture_oM: BuildersWorkOpening class added together with necessary references
Opening
class added to Architecture_oM
- BHoM: Created ISpecification interface
- Environment_oM: Add opening configuration object
- Facade_oM: Added IElementM to FrameEdge
- Facade_oM: ConstructionOffsetFragment
- Graphics_oM: Add basic graphical objects
- Humans_oM: Refactor to c value objects
- Inspection_oM: Added two new properties to Issues
- Added 2 new properties to Issue object.
- LifeCycleAssessment_oM: Add new QuantityTypes, FoundationsScope Objects, and IScope
- New QuantityTypes for MEP related LCA
- All Scope objects now have IScope interface
- Addition of Column category to FoundationsScope
- LifeCycleAssessment_oM: Creation of ProjectLifeCycleAssessmentResults
- LifeCycleAssessment_oM: Make GWP Results settable
- MEP_oM: Add point-based MEP objects
- Reflection_oM: Add new attributes for supporting fragments
- Structure_oM: Add Auto Option to LoadPanelSupportConditions
- Test_oM: Adding EventMessage
- Test_oM: Implement IEvent interface
Bug
- Environment_oM: Update opening option to include opening type
- MEP_oM: Ensure materials implement correct interface
- Reflection_oM: Fix PreviousInput and Targets attributes serialisation
Compliance
- BHoM: Update Copyright_Header.txt file to reflect new year
- CI/CD: Fix CheckCore core.txt file
- Humans_oM: Add versioning for changes to CvalueAnalysis
- Lighting_oM: Make constructor public instead of protected
- Programming_oM: Remove ParentId property from INodeParam
- Reflection_oM: Fix non compliant IImmutable attributes
- Update Assembly Version
- Update Copyright Header to 2021
BHoM_Adapter
Feature
Compliance
- Adapter_Engine: Avoid signature duplication for AdapterId() methods
- Fix AdapterId versioning
- Update Assembly Version
- Update Copyright Header to 2021
BHoM_Datasets
Feature
Compliance
BHoM_Engine
Feature
- Architecture_Engine: missing Transform methods added
Transform
method added forBH.oM.Architecture.Elements.Room
- Architecture_Engine: Transform methods added for Ceiling, CeilingTile and Opening
Transform
methods added forCeiling
,CeilingTile
andOpening
- BHoM_Engine: adding Geometry3D methods
- CI/CD: Serialisation verification for methods and types
- Data_Engine: Methods to flatten and split the trees made of nested ILogicalRequests added
- added method to simplify trees made of nested
ILogicalRequests
- added method to split trees made of nested
ILogicalRequests
in a way that ensures that each resultant tree contains max. oneIRequest
of given type and all resultant trees combined constitute same request as the original tree - added a method to check whether a tree created by a set of nested
ILogicalRequests
contains two or moreIRequests
of given type that can conflict (fall into a logical and statement)
- added method to simplify trees made of nested
- Environment_Engine: Add new ExtrudeToVolume method
- Environment_Engine: Add opening creation from configuration options
- Environment_Engine: Map regionsA that are fully enclosing regionsB
- Environment_Engine: missing Transform methods added
Transform
method added forBH.oM.Environment.Elements.Space
- Facade_Engine: Add MaterialCompostion and SolidVolumes functionality
- Facade_Engine: ConvertOffsetDefinition
- Facade_Engine: Transform methods added
Transform
methods added for facade elements:FrameEdge
,Opening
,Panel
andCurtainWall
- Geometry_Engine: Cuboid IsContaining method.
- Geometry_Engine: IsRigidTransformation method added
IsRigidTransformation
query method added
- Humans_Engine: Cvalue analysis improvements
- Lighting_Engine: Add Base Lighting Engine Methods
- Lighting_Engine: added with the first method
- Lighting_Engine project added to the solution
Transform
method added forLuminaire
- MEP_Engine: Transform methods added for Duct and CableTray
Transform
methods added forDuct
andCableTray
- Physical engine: adding geometry3D method for Physical Floor
- Physical_Engine: Transform method added for IFramingElement
Transform
method added forIFramingElement
- Reflection_Engine: Add support for new fragments attributes
- Reflection_Engine: Added TryRunExtensionMethod
- Reflection_Engine: Adding check for Fragments in the DistinctProperties
- Reflection_Engine: ExtensionMethodToCall isolated from RunExtensionMethod
ExtensionMethodToCall
method isolated fromRunExtensionMethod
- Reflection_Engine: Fix bug on method with nested generic inputs called from the UI
- Reflection_Engine: Fixes necessary for the RunCode component
- Fix hardcoded separator instead of using the one provided as input in the ToText method
- Make sure assemblies are collected only once even for BHoM dlls
- Allow to collect indirect references in UsedAssemblies
- Reflection_Engine: Make the RecordEvent(Event) method public
- Reflection_Engine: SortExtensionMethods improved to return the most relevant method
SortExtensionMethods
improved to return the most relevant method when the typespecific one does not exist
- Security_Engine: Transform method added for CameraDevice
Transform
method added forCameraDevice
- Serialiser_Engine: add support for Json Arrays
- do not return a CustomObject upon deserialising a valid Json Array;
- allow ToJson to serialise json arrays.
- Serialiser_Engine: Align to forward versioning
- Spatial_Engine, Structure_Engine: OrientationAngleBar migrated to Spatial_Engine and renamed to OrientationAngleLinear
OrientationAngleBar
migrated to Spatial_Engine and renamed toOrientationAngleLinear
- Spatial_Engine: Add Query.IsFullyOnGrid() method
Query.IsFullyOnGrid()
Query method added in theSpatial_Engine
forIElement
class
- Spatial_Engine: Query Thickness of IProfiles
- Spatial_Engine: Rigid transformations for IElements0D, IElements1D and IElements2D added
- rigid transformations for IElements0D, IElements1D and IElements2D added
- Transform method added for
BH.oM.Graphics.Vertex
andBH.oM.Graphics.RenderMesh
- Structure_Engine: Transform methods added for structural elements
Transform
methods added forNode
,Bar
,RigidLink
,Edge
,Opening
,Panel
andFEMesh
- [V...
v4.0.β.0
BHoM
Feature
- Analytical_oM + Graphics_oM: Project graph to dependency diagram.
- Analytical_oM adding graph objects
- Analytical_oM: Add mesh result interface
- Architecture_oM: Add ceiling tile object
- BHoM: clarification of concept of Hash vs Diff; simplification of Query.Hash()
- BHoM: Introduce new AdapterIdFragment to replace CustomData usage in Adapter
- Environment_oM: Add Adiabatic Enum to PanelType
- Environment_oM: Allow Spaces to host multiple SpaceCriteria objects per Space
- Facade_oM: Creation of Initial Facade_oM
- Geometry_oM: Added InterpolationOrder and added shape to constructor for TaperedProfile
- Geometry_oM: Addition of Volume as a Get only Property to BoundaryRepresentation
- Graphics_oM: add ColourFragment
- Graphics_oM: Make RenderMesh a Fragment
- Humans_oM: Adding "Manager" property to Employee; added descriptions
- LifeCycleAssessment_oM: Implement more restrictive interface
- Scope objects changed from IBHoMObject to IElementM
- LifeCycleAssessment_oM: MEP Scope Refactor
- LifeCycleAssessment_oM: Modification of MEP Scope Object
- LifeCycleAssessment_oM: Update EPD Object Properties
- LifeCycleAssessment_oM: Update ObjectCategory.cs
- Lighting_oM: Initial Creation
- MEP_oM: Added Cable Tray definition
- Added new object
BH.oM.MEP.Elements.CableTray
andBH.oM.MEP.SectionProperties.CableTraySectionProperty
.
- Added new object
- MEP_oM: Addition of Generic Mechanical Equipment object
- MEP_oM: Addition of Light Fixture Object
- MEP_oM: AirTerminal Creation and Interface clean up
- Creation of
AirTerminal
- Cleaning Interfaces on Systems objects and volumeDamper
- Creation of
- MEP_oM: Compliance updates for matter-based workflows
- MEP_oM: Creation of VolumeDamper Object
- Object Creation
- MEP_oM: Organisation of MEP Namespaces
- MEP_oM: Support for ClimateEmergency Methods
- Additional properties added to Occupancy within Architecture_oM
IFixtureFlow
createdIFixtureUsage
createdCommercialFixtureUsage
andResidentialFixtureUsage
createdPlumbingFixtureFlow
created
- Physical_oM: Add Construction Properties to Door and Window objects
- Add IElementM to Door and Window
- Add Construction property to Door and Window
- Physical_oM: Create ExplicitBulk Element
- Physical_oM: Creation of BulkSolids
- Creation of
ISolid
- Creation of
BulkSolids
- Creation of
VolumeFragment
- Creation of
- Reflection_oM: Adding attributes to better control auto-create components
- Reflection_oM: QuantityAttribute expanded to InputClassificationAttribute, FolderPathAttribute and FilePathAttribute added
InputClassificationAttribute
addedQuantityAttribute
made inherit fromInputClassificationAttribute
FolderPathAttribute
andFilePathAttribute
added
- Security_oM: Added Security oM with initial CameraDevice definition
- Structure_oM: Add BarDifferentialTemperatureLoad and DifferentialTemperatureLoad
BarTemperatureLoad
renamed toBarUniformTemperatureLoad
andAreaTemperatureLoad
renamed toAreaUniformTemperatureLoad
- This is to reflect the addition of a
BarDifferentialTemperatureLoad
andAreaDifferentialTemperatureLoad
- The uniform temperature loads represent a constant global temperature applied to the entire element
- The differential temperature loads represent a difference in temperature between the faces of the profile
- The
BarDifferentialTemperatureLoad
can be applied in either thelocalx
orlocaly
- The
AreaDifferentialTemperatureLoad
is applied in the vertical direction only
- Structure_oM: Updates to BarVaryingDistributedLoad
- Rename the properties, using word Start and End instead of A and B
- Change to measure distance to both start and end from the start node instead of end being measured from the end node
- Adding property to control if the positions should be relative (01) or measured in meters.
- Test_oM: Return Test_oM to BHoM
Bug
- Reflection_oM: Add UTC time to events
- Reflection_oM: Improved name change support on method arguments
- Reflection_oM: Path attribute classes made non-abstract
- path attribute classes made nonabstract
Compliance
- Programming_oM: Remove dependency to GetShallowClone
- Spatial_oM: Migrate shape profiles from Geomatry_oM to Spatial_oM
- Structure_oM: Fixing default values of some properties
- Structure_oM: Remove Embodied Carbon from MaterialFragments
- Removed
EmbodiedCarbon
attribute fromMaterialFragments
to avoid overlap and conflicts with the work being done in the LCA_Toolkit
- Removed
- Structure_oM: Update LinkConstraint descriptions to Primary/Secondary nomenclature
- Update Assembly Version
Test-script
BHoM_Adapter
Feature
- Added "Setup" methods to do the Actions input setup that was in BHoM_UI
- Introduce new AdapterIdFragment to replace CustomData usage
Bug
Compliance
BHoM_Datasets
Feature
- Add eu steel section properties
- 'Added EU section properties to Datasets'
- LEED Baseline Datasets used in ClimateEmergency migrated methods
External-api-changes
- Align with changes to Structure_oM with removal of EmbodiedCarbon from MaterialFragments
- Reserialised SectionProperties dataset following the removal of
EmbodiedCarbon
fromMaterialFragments
- Reserialised Materials dataset following the removal of
EmbodiedCarbon
fromMaterialFragments
- Reserialised SectionProperties dataset following the removal of
- Update shape profiles to Spatial
Compliance
BHoM_Engine
Feature
- Analytical_Engine + Graphics_Engine: Project graph to dependency diagram.
- Analytical_Engine adding graph methods
- BHoM_Engine: add
Query.Hash()
extension method - BHoM_Engine: Added global & property-specific fractional precision in
Query.Hash()
- Data_Engine: Group objects by property values
- Diffing_Engine: clarification of concept of Hash vs Diff; leverage persistentId
- Environment_Engine: Add ability to group openings and panels by their type
- Environment_Engine: Add map to space method
- Environment_Engine: Adds features to the orientation method
- Environment_Engine: assign construction by type
- Environment_Engine: Update map to space method
- Facade_Engine: Add Key Methods for Facades Workflows
- Facade_Engine: Create Facade Engine With Base Create Methods
- [Geometry_Engine: Add split method for regions ...
v3.3.β.0
BHoM
Feature
- Acoustic_oM: Modify Room Object
- Analytical_oM: Add Analytical Graph. Deprecate Graph, GraphNode and GraphLink
- Analytical_oM: Add dimensional interfaces to analytical objects
- Analytical_oM: Add IRegion interface
- Add IRegion interface
- Make Environments Space implement new interface
- Make Architectual Room implement interface
- Diffing_oM: add "PropertiesToInclude" and max no of DifferentProperties in DiffConfig
- Adds the option to regulate MaxDifferences as in BHoM/BHoM_Engine#1900
- Adds the option to regulate the PropertiesToInclude as in BHoM/BHoM_Engine#1900
- Environment_oM: Add Attribute for Plumbing and Fire Protection on Space
- Environment_oM: Change default construction to null on Panels and Openings
- Environment_oM: Revise ProfileType and ProfileDay
- Geometry_oM: Add Mesh3D, and Environment Mesh
- Inspection_oM: Add initial Inspection objects for Audits and Issues
- LifeCycleAssessment_oM: Scope Object Updates
- MEP_oM: Object migration
- Structure_oM: Added ModeShape result classes and IDisplacement classes
- Structure_oM: Adding OrientationAngle to Panel
Bug
- MEP_oM: Fix constructor arguments for DuctSectionProperty
- Structure_oM: Fix ModalDynamics constructor
Compliance
- Acoustic_oM: Set Acoustic.Panel PanelID Property as virtual
- Structure_oM: Removing FramingElements and Properties
- Structure_oM: Renaming master/slave to primary/secondary
- Structure_oM: Turn Load into IELementLoad
- Update Assembly Version
BHoM_Adapter
Feature
Compliance
BHoM_Datasets
Feature
- Added generic Constructions and related sub-objects
- Including Warping constant for PFC UK_Steel sections
Compliance
BHoM_Engine
Feature
- Analytical_Engine: Add support for all methods required by IElements for analytical interfaces
- Analytical_Engine: Added methods for IsAligned, IsHorizontal and IsVertical to query Panel
- Added functionality to query whether a panel is aligned with user defined plane.
- Analytical_Engine: Added methods for IsOutlineRectangular, IsOutlineSquare and IsOutlinequad to query Panels
- Analytical_Engine: Adding support for IRegion
- BHoM_Engine: implemented GetHash() method in base Engine
- Added a Base Engine method to generate a Hash. This can be used as an "instance id" and to perform diffing.
- Data_Engine: Quality of life for DomainTree
- added tolerance to ItemsInRange as well
- Diffing_Engine: add "PropertiesToInclude" feature; control over max no of DifferentProperties; refactor
- Feature: added an "interface method" for diffing with a complex underlying logic to dispatch to the most appropriate Diffing method. This is intended to simplify the usage in scripts. Different Warnings/Notes guide the user in resolving possible problems depending on the inputs.
- Feature: stop detecting property differences when 'MaxPropertyDifferences' limit is reached
- Feature: simpler workflow where the Diffing can be done without Revisions. This obviously do not return any ModifiedObjects. See script.
- Feature: Diffing can now be done detecting changes only on selected Properties ('PropertiesToConsider`)
- Environment_Engine: Add ability to convert Brep and Surface to Environment Panels
- Environment_Engine: Filter by adjacencies query method
- Geometry_Engine: Add Centroid method for outline curves(s) with opening curve(s) in it.
- Added new
Centroid(this IEnumerable<ICurve> outlines, IEnumerable<ICurve> openings)
method in theGeometry_Engine
. - Added new
Centroid(PlanarSurface)
method in theGeometry_Engine
. - Updated
Centroid(IElement2D)
method in theSpatial_Engine
to use new method from theGeometry_Engine
and take tolerance as an input. - Added descriptions for
Centroid()
methods.
- Added new
- Geometry_Engine: Add IsEqual(NurbsCurve)
- Add
IsEqual
method inGeometry_Engine
forNurbsCurve
class.
- Add
- Geometry_Engine: Add MarchingSquares & MarchingCubes
- Geometry_Engine: implementing DiscontinuityPoints(PolyCurve) and adding tolerances to inputs
- updated
DiscontinuityPoints()
method for thePolyCurve
class to return real discontinuity points. - added tolerances to the inputs of every
DiscontinuityPoints()
method.
- updated
- Geometry_Engine: Minor method addition
- Added Create Vector from two Points
- Added IsNurbsCurve
- Implemented: Clone, ClosestPoint, IsEqual and IsInPlane for PlanarSurface
- Added IsEqual for Basis
- Implemented Flip for NurbsCurve
- Geometry_Engine: Support methods for Mesh3D
- Geometry_Engine: Update PointClustersDBSCAN to use DomainTree
- MEP_Engine: Supporting methods for MEP_oM additions
- Reflection_Engine: Consolidate run extension method
- Improve support of generics for RunExtensionMethod
- Add locks for accessing stored methods, making the method thread safe
- Storing compiled Functions instead of MethodInfo to improve performance
- Reflection_Engine: Fixes required for the new GetInfo component
- Reflection_Engine: List support for get set property
- Spatial_Engine: ElementVerticies for IElement0D
- Structure_Engine: Add support for local orientation of Panels and FEMeshes, and Orient methods
- Adding method for getting local orientation from Panel and FEMeshFaces
- Adding method for extracting CoordinateSystem(s) from Panel and FEMesh(Faces)
- Adding methods for setting local orientation(s) for Panels and FEMeshes
- Adding localX vector input for Panel and FEMesh creates
- Adding method, centralising, calculation of orientation angle for Bar and Area elements
- Adding method for setting normal to a Bar
- Adding method for orienting an element towards a point for Bar, Panel and FEMesh(Faces)
- Structure_Engine: Added ModeShapes to ResultRequest and IDisplacements to DeformedShape
- Structure_Engine: Adding method for checking objects on loads id assignment
- Structure_Engine: Small improvements to torsion constant calculations
- Structure_Engine: Update to area loads visualisation
- Area load visualisation to make use of LocalOrientation for displaying local loads
- Add support for displaying Arealoads on FEMeshes
- Add support for visualisation of ContourLoad and GeometricLineLoad
- Structure_Engine: Update Torsional constant calculation for BoxProfiles
Bug
- Data_Engine: Uncommenting code for getting all values from a Table
- Environment_Engine: Fix bug in MapToLevels
- Environment_Engine: Fix panel type setting bug
- Environment_Engine: Provide protection around some aspects of engine code
- Geometry_Engine: Adding more sample points to IsClockwise
- Geometry_Engine: Fix Centres bug for meshes
- [Geometry_Engine: F...