v5.0.β.0
Pre-release
Pre-release
·
337 commits
to main
since this release
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_Engine: Add support for tapered flange sections
- Structure_Engine: Add warping constants for tapered flange and angle sections
- Structure_Engine: Create TotalThickness method
Bug
- Architecture_Engine: Geometry() query for BuildersWork.Opening refactored to return Point
- BHoM_Engine: fix for
Hash()
not dealing correctly with Enum types - Diffing_Engine: alignments to changes to ComparisonConfig; minor bug fixes
- Aligned the Diffing_Engine and base BHoM_Engine to the renamed
ComparisonConfig.CustomDataToConsider
- Bug fix in
ObjectDifferences()
:ComparisonConfig.NameSpaceExceptions
now correctly used - Bug fix in
ObjectDifferences()
:ComparisonConfig.MaxNesting
now correctly used - IDiffing: minor bug fix in incorrect dispatching object
- Minor bug fix in DiffingWithHash: null checks, result better display of result
- Aligned the Diffing_Engine and base BHoM_Engine to the renamed
- Facade_Engine: Panel Create method bug fixed for Opening FrameEdgeProperty
- Reflection_Engine: Create.AllTypes made more precise
- Reflection_Engine: Ensure type description is shown if input classification is available
- Serialiser_Engine: Serialisation of properties of type MethodInfo enabled
- Structure_Engine: Improve calculations of warping constants
External-api-changes
Compliance
- BHoM_Engine: Adding description to Create.Enumeration and Compute.ParseEnum
- BHoM_Engine: Update default namespaces
- Graphics_Engine: Align to Graphics_oM
Vertex
toRenderPoint
refactoring - Remove PreviousVersion Attributes
- Structure_Engine: Material composition for ISecitonProperty as dynamic and ReinforcementDensity
- Update Assembly Version
- Update TypesToFromJson.cs
Test-script
BHoM_UI
Feature
External-api-changes
Compliance
BHoMAnalytics_Toolkit
External-api-changes
Compliance
CarbonQueryDatabase_Toolkit
External-api-changes
Compliance
ClimateEmergency_Toolkit
External-api-changes
Compliance
Clipper_Toolkit
External-api-changes
Compliance
CSharp_Toolkit
External-api-changes
Compliance
DIALux_Toolkit
External-api-changes
Compliance
Dynamo_Toolkit
External-api-changes
Compliance
EnergyPlus_Toolkit
External-api-changes
Compliance
ETABS_Toolkit
External-api-changes
Compliance
Excel_Toolkit
Feature
- Excel_Adapter prototype re-implemented
- Provide a COM adapter constructor that takes fileName as Input
External-api-changes
Compliance
- Cell address creation method taking objects removed along with its support methods
- Update Assembly Version
File_Toolkit
Feature
- Changed default Push Type to
DeleteThenCreate
- Changed default Push Type from
UpdateOrCreateOnly
toDeleteThenCreate
- Changed default Push Type from
External-api-changes
Compliance
Grasshopper_Toolkit
Feature
Bug
External-api-changes
Compliance
GSA_Toolkit
Feature
External-api-changes
Compliance
HTTP_Toolkit
External-api-changes
Compliance
iAuditor_Toolkit
External-api-changes
Compliance
IES_Toolkit
External-api-changes
Compliance
LadybugTools_Toolkit
Feature
- Update PythonToolkit dependency
- Added installation method for this toolkits Python interface.
External-api-changes
Compliance
LifeCycleAssessment_Toolkit
Bug
External-api-changes
Compliance
Localisation_Toolkit
External-api-changes
Compliance
Lusas_Toolkit
External-api-changes
Compliance
MachineLearning_Toolkit
External-api-changes
Compliance
MidasCivil_Toolkit
External-api-changes
Compliance
Mongo_Toolkit
Feature
- Change default PushType; remove MongoConfig and rely on Push inputs
- The default
Push
behaviour is now to "append"; you need to set thePushType
toDeleteThenCreate
to "replace", and any otherPushType
results in appending. - The MongoConfig has been deleted as redundant. When
Push
ing, thetag
is accessible through the Push inputs, and the behaviour obtained through thereplace
boolean can be replicated by setting thePushType
. When doingExecute
, thereplace
boolean in the MongoConfig was already not used, as it was substituted for the boolean available in theTransfer
command a while ago.
- The default
Bug
External-api-changes
Compliance
OpenStreetMap_Toolkit
External-api-changes
Compliance
Psychrometrics_Toolkit
External-api-changes
Compliance
Python_Toolkit
Feature
- Enable project/toolkit-specific environment creation
- Overhauled toolkit to provide more flexible and accessible functionality, reducing risk of versioning issues between toolkits and Python code.
External-api-changes
Compliance
RAM_Toolkit
External-api-changes
Compliance
Revit_Toolkit
Feature
- Add GetUnitTypeId method supporting Format Options in Revit 2018-2021
- Add method for adding insulation on ducts and pipes
- Add method for creating solid objects from list of boundaries and filled regions.
- Add method to query closest element from another element (REBASE)
- Added
Core.Query.ClosestElement
- Added
Core.Query.HasLocation
- Added
- Handling of host information refined, support for FamilyInstances hosted on linked elements plus ToRevit convert for Architecture.BuildersWork.Opening added
ToRevit
convert method forBH.oM.Architecture.BuildersWork.Opening
addedRevitHostFragment
introduced to consistently store the information about host Id as well as its original document in case when it is a linkRevitIdentifiers
refined to reflect the changes in handling of host/link informationFindHost
andContainingElement
methods added to enable geometrical search for host elementsCreate.FamilyInstance
refined to accept host elements from linked modelsModify.SetLocation
refined to support host elements from linked modelsLinkInstance
queries refined to support the above changesHostId
query replaced withHostInformation
to return both Id and document infoSetType
method cleaned up
- IFromRevit method cleaned up
- return type of
IFromRevit
as well asRead
methods changed toList<IBHoMObject>
- discipline ambiguity removed from
Read
method signatures (input of typeDiscipline
removed from all methods takingRevitPullConfig
) Read(Document, List<ElementId>, RevitPullConfig, RevitSettings)
extracted from the wider Read(Document, IRequest, RevitPullConfig, RevitSettings) method- minor tweaks to align with the above changes
- return type of
- Revit_Engine: add Revit-specific Diffing method
- Revit_Engine: aligments and simplifications of the RevitDiffing backend
- The new public
RevitDiffing
methods are simpler and offer multiple usage options to users - Added a new
RevitComparisonConfig
for Revitspecific diffing options - Implemented the
Query.ComparisonInclusion()
function that takes aRevitParameter
input; it also uses theRevitComparisonConfig
for revitspecific options. ThisQuery.ComparisonInclusion()
function is called automatically by the Diffing/Hash functions, and it determines if and howRevitParameter
's properties should be included. - The private
Diffing
method is also simpler and leverages the new mechanism above
- The new public
- Revit_Engine: RevitDiffing to consider non-Revit objects and base the diff on RevitIdentifier
Bug
- Dynamo stopped from crashing because of BHoM loading different version of assemblies on startup
- Framing elements stopped from being pushed with wrong length in case of default Start/End Extension param value not equal to zero
- Pushing braces based on object name matching fixed
- Query.OpeningSurfaces_Curtain to use Create.PlanarSurface to generate output
- Revit stability issues fixes
- Update Revit_Engine.csproj to include RevitDiffing.cs
External-api-changes
Compliance
- Align to Graphics_oM
Vertex
toRenderPoint
refactoring - Legacy versioning fixed
- Reimplement versioning for deleted panel create methods.
- Remove PreviousVersion Attributes
- Revit_oM:
RevitComparisonConfig
to inherit fromBaseComparisonConfig
, notComparisonConfig
- Update Assembly Version
Documentation
RFEM_Toolkit
Feature
- Basic loads
- Added support for push/pull of basic loads and loadcases
External-api-changes
Compliance
Rhinoceros_Toolkit
External-api-changes
Compliance
Robot_Toolkit
Bug
External-api-changes
Compliance
SAP2000_Toolkit
Feature
External-api-changes
Compliance
Socket_Toolkit
External-api-changes
Compliance
STL_Toolkit
External-api-changes
Compliance
TAS_Toolkit
External-api-changes
Compliance
TriangleNet_Toolkit
External-api-changes
Compliance
Versioning_Toolkit
Feature
- Add Versioning for v5.0 plus versioning checks for 4.3
- Versioning of PinnedButtonInfo added
- Versioning of Revit_Toolkit changes made in #1127