Releases: BHoM/documentation
Releases · BHoM/documentation
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...
v3.2.β.1
v3.2.β.0
BHoM
Feature
- Architecture_oM: Created Occupancy Under Arch oM
- Added occupancy object under architecture oM
- BHoM: Add a constructor from List for FragmentSet
- Data_oM: Add generic graph query methods
- Data_oM: DomainTree and INode
- Add
INode<T>
as a base interface for datatrees - Add
Domain
defining a numerical domain - Add
DomainBox
defining a bounding box for an arbitrary amount of dimensions - Add
DomainTree
, which allows for fast queries based onDomainBox
es
- Add
- Data_oM: LogicalNotRequest implemented
LogicalNotRequest
has been implementedRequests
property has been removed fromILogicalRequest
- Diffing_oM: Corrections to the HashFragment and DiffConfig
HashFragment
now correctly implementsIImmutable
and its properties are getonlyHashFragment
propertyHash
renamed toCurrentHash
- Removed legacy properties from
HashFragment
(Name, BHoM_Guid, etc.) that had to be there for the oldIBHoMFragment
implementation to work. - Added descriptions in
HashFragment
. DiffConfig
: removedFragments
from thePropertiesToIgnore
. This adds the ability to diff also the Fragments;HashFragment
is ignored automatically in the Engine (see related PR).
- Diffing_oM: remove CustomData from the default "Ignores" of DiffConfig
- Diffing_oM: update type definitions
- Environment_oM: Add ACH to Exhaust Object
- Environment_oM: Add Acoustics Object
- Environment_oM: Add Air as PanelType
- Environment_oM: Add AnalysisGrid and Mesh Results
- Environment_oM: Add Hole as OpeningType
- Environment_oM: Add IElementM to suitable objects
- Environment_oM: Add space perimeter curve to Space object
- Environment_oM: Create Exhaust Object
- Added exhaust object
- Environment_oM: Modify Space Object and Ventilation
- Environment_oM: Revised Profile Object, Created ProfileDay, Revised ProfileType
- Environment_oM: Update to objects from discussion #779
- Create new
Time
object - Update
SpaceTime
to useLocation
andTime
- Update
Building
to useLocation
- Update gains
- Remove
AirHandlingUnit
- Create new
- Environment_oM: Updated Ventilation Object with AirChangeRate property
- Added airchangerate property to the ventilation object
- Environments_oM: Updated Infiltration Gain Object Properties
- Properties for Infiltration gain updated to reflect standard practice
- Geometry_oM: Add Conditional Explicit Casts Between Curve Types.
- from
PolyCurve
to anyICurve
- from
Ellipse
toArc
,Circle
- from
Arc
toCircle
,Ellipse
- from
Polyline
toLine
- from
NurbsCurve
toLine
,Polyline
- from
- Geometry_oM: Explicit casts for Curves
ICurve
toPolyCurve
Line
,Polyline
,Ellipse
,Circle
toNurbsCurve
Circle
toEllipse
Line
toPolyline
- Geometry_oM: Make PlanarSurface IImmutable
- Graphics_oM: additions for the new ToRenderMesh infrastructure
- ILifeCycleAssessmentConstruction
- LifeCycleAssessment_oM: Add LifeCycleAssessment results objects for element and project results
- LifeCycleAssessment_oM: iEnvironmentalProductDeclaration MaterialFragments
- LifeCycleAssessment_oM: IMaterialProperties and IFragment
- LifeCycleAssessment_oM: Migration of LifeCycleAssessment objects
- LifeCycleAssessment_oM: Update Scope objects to work with IElementM
- MEP_oM: Added Fire Protection Object
- MEP_oM: Created Pipe Type Enum
- MEP_oM: Modified Air Handling Unit and Added AHU Part
- Reflection_oM: Adding PreviousVersion attribute for versioning support
- Reflection_oM: Provide a distinction between deleted and replaced instead of deprecated
- Reflection_oM: Update output to allow larger number of outputs
- Spatial_oM: Adding in inital 2D-layout objects
- Spatial_oM: Adding project
- Structure_oM, Spatial_oM: Add Transverse Reinforcement and Curve Layouts
ExplicitCurveLayout
,OffsetCurveLayout
andICurveLayout
classes added in theSpatial_oM
TransverseReinforcement
class added inStructure_oM
.
- Structure_oM: Add IProperty interface to all property type objects
- Structure_oM: Add modifier fragment to Section and Surface Properties
- Structure_oM: Add Node Modal Mass Result
- Structure_oM: Implement IElementM for Area elements
- Structure_oM: Make all results immutable and add ModeNumber
- Add new
IStructuralResult
interface, containingModeNumber
- Update all structural result classes to implement new interface and add
ModeNumber
property - Make all structural results immutable
- Add new
- Structure_oM: Override name property for structural properties
- Structure_oM: Refactor bar reinforcement
- Complete refactor of bar Reinforcement objects making use of layouts in spacial_oM
- All old reinforcement classes marked as
ToBeRemoved
- Adding Rebar object to the Physical_oM
Bug
- Diffing_oM: added constructor to DeltaPayload class to fix serialisation error
- LifeCycleAssessment_oM: Fixed Scope Objects
- LifeCycleAssessment_oM: Update ProjectArea Enum
- Reflection_oM: Fix invalid IImmutable constructor parameter names
External-api-changes
Compliance
- Architecture_oM: Remove Common_oM dependant Objects
- BHoM: Make oM properties virtual
- BHoM: Migrate IResult to Analytical_oM
- Common_oM: Move IPhase & ConstructionPhase to Planning_oM
- Common_oM: Remove Common_oM
- Diffing_oM: Fix non-compliant constructor for StreamPointer
- Environment_oM: Fix AnalysisGrid for IImutability
- LifeCycleAssessment_oM: Fix invalid constructor
- Reflection_oM: Fix PreviousVersionAttribute constructor
- Spatial_oM: Correct reference to Reflection_oM
- Update Assembly Version
Documentation
- Data_oM: logical IRequest descriptions cleaned up
- Update README.md and docs
- Update of README.md
- Update of CONTRIBUTING.md
- Update of GOVERNANCE.md
BHoM_Adapter
Feature
External-api-changes
Compliance
- All copy locals to false and correct build folder for Release
- Make oM properties virtual
- Renamed folder
Structure_AdapterModule
toStructure_AdapterModules
- Update Assembly Version
Documentation
BHoM_Datasets
Feature
External-api-changes
Co...
v3.1.β.0
BHoM
Feature
- Architecture_oM: Update room to be IElement2D
- Base_oM: Base BHoMObject Properties now all Virtual
- Local override of base BHoMObject Properties is now enabled. This is useful where the parent BHoMObject properties are also essential and defining properties for the child object. Allows setting of both context specific defaults and descriptions by the child object.
- Creation of new Dimensional_oM
- Data_oM: Add attribute dictionary to GraphNode and GraphLink
- Data_oM: LogicalAnd and LogicalOr requests added
- Data_oM: SelectionRequest added
SelectionRequest
has been added
- DeepLearning_oM: add ImageFormat and Interpolation method enums
- Added
ImageFormat
enum to inject image loading format - Added
InterpolationMethod
to inject the right method when resampling images
- Added
- Dimensional_oM: Creation of the matter element IElementM
- Creation of
MaterialComposition
which stores a collection ofMaterial
s and their ratios - Set
Physical.IFramingElement
asIElementM
- Set
Structure.Bar
asIElementM
- Creation of
- Environment_oM: AnalyticalConstruction fragment
- Environment_oM: Modifications to Space Object
- Geometry_oM: TaperedProfile added
- Added
TaperedProfile
class
- Added
- Physical_oM: Add IElementXD to physical objects
- Programming_oM: Adding Initial code
- Quantities_oM : Creation of initial Quantities_oM and Quantity Attributes
- Quantities_oM: Adding mass per unit area and mass per unit length
- Reflection_oM: Add InputFromProperty attribute
- Reflection_oM: Adding quantity attributes to inputs and outputs
- Structure_oM: Add full compliment of strains to BarStrain and update BarResult descriptions
- Added full compliment of strain results in
BarStrain
to mirrorBarStress
- Updated description of
BarForce
andBarStress
to remove any mention of normal force
- Added full compliment of strain results in
- Structure_oM: Adding Timber, Aluminium and generic sections and materials
- Adding TimberSection
- Adding AluminiumSection
- Adding GenericSection to be used for section types not yet explicitly supported
- Adding GenericIsotropicMaterial
- Adding GenericOrthotropicMaterial
- Adding new IGeometricalSection interface for all sections based on IProfiles
IMaterialFragment
now implementsIBHoMFragment
Bug
Compliance
- Acoustic_oM: Compliance Update
- BHoM: Fix CI files
- BHoM: Rename IBHoMFragment -> IFragment
- BHoM: Update assembly file version to 3.1.0.0
- BHoM: Update compliance test file
- Data_oM: Compliance Update
- DeepLearning_oM: Compliance Update
- Dimensional_oM: Add Description Attributes to IElement Interfaces
- Dimensional_oM: Migrate IElementXD interfaces from Geometry_oM to Dimensional_oM
- Also adds appropriate references in other oM's
- Correct dependencies for Dimensional_oM
- Environment_oM : Add IBHoMFragment to EnvironmentMaterial Fragments
- Geometry_oM: Compliance Update
- Geometry_oM: Updates to Object Descriptions
- MEP_oM: Compliance Update
- Quantities_oM: Compliance Update
- Update Copyright
- Update Copyright Header
- Update Issue and PR Templates
Documentation
- Environment_oM: Updated object descriptions
- Updates in descriptions for Environment and MEP objects
- Geometry_oM: Adding description and quantity attributes
- Structure_oM: Adding description attributes
- Structure_oM: Adding Descriptions to
- Adding missing descriptions to all classes in Structure_oM
- Adding MomentPerUnitAngle quantity
- Structure_oM: Update description of orientation angle for Bar
BHoM_Adapter
Feature
- Adapter_Engine: extraction of CRUD methods compatible with specific objects types
- Add CreateNonExisting push type and methods
- Added description of PushTypes in the enum to be visible in UI's tooltip
- Added null check in AssignNextFreeId
- FileSettings object
Bug
- Always assign new ids for objects being created
- Removing check if AdapterNameId already exists in custom data before assigning fresh id to objects being created.
- Fix reference to Diffing oM
Compliance
- Adapter refactoring Level 04
- CRUD base actions are called ICreate, IDelete, etc in order to follow Engine convention of interface methods "to be implemented"
- New field m_AdapterSettings. This is where default settings to be used for the Adapter can be set once per build.
- Replaced the
config Dictionary<string,object>
input for all Adapter Actions with a new classActionConfig
. It contains configs common to all Toolkits. It can be inherited in specific Toolkits to create other adapterspecific Configs. - Delete has been renamed to Remove.
- UpdateProperty has been renamed to UpdateTag. It only handles tag which is the only correct use. Other cases must fall in Push scenarios.
- MapSpecialProperties has been splitted in 2 separate methods:
CopyBHoMObjectProperties
that copies only IBHoMObject basic properties over;ICopyTypeSpecificProperties
that's meant to copy type specific properties. Specific implementation of that must be done in specific Toolkits. - Introduction of
PushType
(and PullType) enum. Allow to select the type of Push being done (FullCRUD, DeleteThenCreate, CreateOnly, etc). - Added a Push Type and code implementation:
DeleteThenCreate
- Folder and files reorganisation:
-
- Created new Adapter_oM project
-
- Created new Adapter_Engine project
-
- All methods and class definition that could be moved up to those project have been moved. Exceptions are only those methods that have to be left in the BHoMAdapter partial class in order to allow overrides in specific Toolkits.
-
- General widespread tidy up of the code.
- Introduced the concept of Adapter Modules. See this comment for a description.
- Compliance issues - moved offending methods from Engine to the Adapter project
- Renamed PushType.FullCRUD to FullPush
- Update CI file
- Update CI files
- Update Copyright
- Update IElement references with the Dimensional_oM
- Update Issue and PR Templates
- Updated assembly version
BHoM_Engine
Feature
- Architecture_Engine: Add extension methods for Room
- BHoM_Engine: Creation of Spatial_Engine
- BHoM_Engine: Instantiating new FragmentSet in ShallowClone method
- BHoM_Engine: RemoveFragment returns the same BHoMObject if the given fragment is not found
- Data_Engine - Issue 1396 - Add method to create numerical series
- Data_Engine: Add attribute dictionary to GraphNode and GraphLink
- Data_Engine: Create methods for LogicalAnd and LogicalOr requests added
- Data_Engine: Enable advanced sorting and filtering BHoM object lists, by wrapping 'Linq' methods
- Add OrderBy and ...
v3.0.β.0
Changelog
BHoM
- Add embodied carbon to material fragments
- Added property EmbodiedCarbon as a double for structural material fragments.
- BHoM: Activate dependency CI checks
- BHoM: Fragments to be
IObject
instead ofIBHoMObject
- Changed IBHoMFragment to implement IObject instead of IBHoMObject.
- BHoM: Removing BHoM_Test and Testing_oM
- Remove BHoM_Test project and files
- Remove Testing_oM project and files
- Update Diffing_oM in light of the above changes:
IsEqualConfig
moved from Testing_oM to Diffing_oM, renamed toDiffConfig
- Added few properties to
DiffConfig
now that is specific for the diffing - Stream now has a
DiffConfig StreamDiffConfig
property to store the default settings
- BHoM: Update assembly info
- Data_oM and Structure_oM: Adding Structural result requests
- Added
Data.oM.IResultRequest
for all result extraction requests. - Added
BH.oM.Structure.Requests.BarResultRequest
for controlling extraction of BarResults - Added
BH.oM.Structure.Requests.NodeResultRequest
for controlling extraction of NodeResults - Added
BH.oM.Structure.Requests.MeshResultRequest
for controlling extraction of MeshResults - Added
BH.oM.Structure.Requests.GlobalResultRequest
for controlling extraction of Global reactions and Modal results
- Added
- Data_oM: Add table class
- Data_oM: Adding Dataset and Source object
- Data_oM: DBSCANObject implements IObject
IObject
has been implemented byDBSCANObject
- DeepLearning_oM: implement most common artificial neural network schemas
- Add the
DeepLearning
namespace to the BHoM and some simple concepts: - Added neural network objects:
Graph
andSequential
- Added most frequently used neural network operations:
-
- Average Pooling 2d
-
- Convolution 2d
-
- Gated Recurrent Unit
-
- Linear
-
- Long Short Term Memory
-
- Max Pooling 2d
-
- Max Unpooling 2d
-
- Transposed Convolution 2d
- Added most frequently used activation functions:
-
- LeaklyReLU
-
- LogSoftmax
-
- ReLU
-
- Sigmoid
-
- Softmax
-
- Tanh
- Added most frequently used loss functions and their numerically stable equivalents when used with logits:
-
- Binary Cross Entropy
-
- Cross Entropy
-
- L1
-
- Mean Square Error
-
- Negative Log Likelihood
- Added most frequently used optimisers:
-
- Adam
-
- Stochastic Gradient Descent
- Add the
- Environment_oM Add description attributes
- Environment_oM: Update fragments
- Removes inheritance of
BHoMObject
from Environment Fragments
- Removes inheritance of
- Environment_oM: Update to compliance
- Fragments in BHoMObject now stored in a FragmentSet instead of in a List
- Added the
FragmentSet
class that inherits fromKeyedCollection
to store the Fragments. - Modified Fragments to be
KeyedCollection<Type, IBHoMFragment>
instead ofList<IBHoMFragment>
in IBHoMObject interface and BHoMObject class
- Added the
- Geometry_oM: Extension of definition of NurbsSurface to handle trims
BH.oM.Geometry.SurfaceTrim
class has been addedBH.oM.Geometry.NurbsSurface
definition has been extended with additional properties in order to handle trims +IImmutable
interface has been implemented
- Graphics_oM: Adding RenderMesh
- Adds the Class
Vertex
which contains aPoint
and aColor
- Adds the Class
RenderMesh
which contains aList<Vertex>
and aList<Face>
- Adds the Class
- Graphics_oM: Gradient object
- MEP_oM: Add objects for initial oM definition
- Add Equipment objects to MEP oM
- Add Part objects to MEP oM
- Removed unused
CrudConfig
; FragmentSet implementsIObject
. - Structure_Common_oM: Updates to IResultCollection and MeshResult
- Making
IResultCollection : IResult
- Renaming MeshReslt to MeshElementResult
- Renaming MeshResults to MeshResult
- Implementing IResult interface on new MeshResult and updating property names
- Making
- Structure_oM: Add BarDisplacement class
- Add BarDisplacement class to handle global displacement in global coordinates
- BarDeformation should now handle local deformations in local coordinates
- Added descriptions to help differentiate between the classes.
- Structure_oM: add contour and geometric line loads
- Structure_oM: Fixing parameter name of MeshResult constructor
- Structure_oM: MeshFaceId correctly assigned in constructor for MeshElementResults
- Bug fixed for meshFaceId being assigned incorrectly
- Removing setters from all parameters in MeshElementResults, making it fully immutable
- Structure_oM: Rename Queries to Requests
- Renaming Query to Request For NodeResultRequest and GlobalResultRequest
- Adding LoadAxis to NodeResultRequest
- Update code owners
- Update the README installer link
BHoM_Adapter
- BHoM_Adapter - refactoring - Level 3 changes
- Adapter Actions:
-
- All Adapter actions (Push, Pull, etc) now live in different files (Push.cs, Pull.cs, etc) in a folder named
AdapterActions
. - The
Delete
Adapter Action now lives in a file (temporarily?) namedRemove.cs
, while awaiting on the decision on a better naming to distinguish it from the CRUD delete. Discussion here.
- All Adapter actions (Push, Pull, etc) now live in different files (Push.cs, Pull.cs, etc) in a folder named
- Removed the
UpdateProperty
Adapter Action, as discussed here. - Added a dispatch pattern in the
Pull()
that calls the appropriateRead()
/ReadResults()
method depending on the base parent type of the providedrequest
, usingas dynamic
. - CRUD methods:
-
- Removed the parameter
replaceAll
from theCreate()
method signature. It was never properly used.
- Removed the parameter
-
- Changes in the Read/ReadResults methods:
- Added empty
protected virtual Read(IRequest)
Wrapper virtual method - Added empty
protected virtual ReadResult(IRequest)
Wrapper virtual method - These Read methods will now be required in single Toolkit implementations in order for the Read to work with different types of Requests. The appropriate read method will now be called by the
as dynamic
pattern in the Pull, as introduced above in the "Adapter Actions" changes.
-
- Made all CRUD Wrapper Methods
virtual
for consistency.
- Made all CRUD Wrapper Methods
-
- Tidy up in the arrangement of the CRUD methods:
- Moved the "Protected Abstract CRUD Methods" in their respective files in the CRUD folder (
Create.cs
,Read.cs
, etc.). From now on, we will call those Basic CRUD methods. - Renamed the
UpdateOnly.cs
file toUpdate.cs
. - Moved the UpdateProperty in the same file as the UpdateOnly,
Update.cs
. - Added comment sections to clearly separate Basic CRUD methods and Wrapper CRUD methods. Wrapper methods are now those that are meant to add some functionality and then call the Basic CRUD method.
- Added comments to clarify when such or such method should be implemented/overridden
- Adapter properties:
-
- Deleted the superseded
ErrorLog
Adapter property.
- Deleted the superseded
-
- Changes to the Adapter
Config
public property: - Renamed
SeparateProperties
toHandleDependencies
. Changed its default value from False to True. - Changed the default value of
ProcessInMemory
from True to False. - Removed
MergeWithComparer
property. It was never used.
- Changes to the Adapter
- Adapter other methods:
-
- Renamed
Replace()
method toCRUD()
- Renamed
- File_Adapter:
-
- File_Adapter: changes to comply with the changes above.
-
- File_Adapter: removed the
Legacy
folder and its content (was all commented/unused code).
- File_Adapter: removed the
- BHoM_Adapter refactoring Lvl3_01 - workaround to have the CRUD working for non-BHoMObjects
- Added a
WrapNonBHoMObjects()
method. Wraps nonBHoMObjects into Custom BHoM Objects so they can make use of the Adapter Replace/Crud methods as the BHoMObjects (they get an ID, CustomData, etc). - Added
AdapterConfig.WrapNonBHoMObjects
that defines default Toolkit behaviour for that method. Defaults to false, as it should be used only in few specific Toolkits. - Added a push
config
boolean option that overrides the defaultAdapterConfig
setting if specified, so the user has control over the specific Push case.
- Added a
- BHoM_Adapter: Mapping of IDs to dependencyObjects
- Fixed a bug w...
v2.4.β.1
v2.4.β.0
Changelog
BHoM
- Add Room object to Architecture oM
- Add Theatron to Architecture_oM and Humans_oM
- ALL: Update file assembly and set copy local to false
- Update all projects assembly file version to
2.4.0.0
- Set all BHoM dependencies on all projects to not copy local
- Add Diffing_oM code owners
- Update all projects assembly file version to
- Architecture_oM: additions to room and new ceiling object
- Added
Ceiling
object - Added
Location
point to Room
- Added
- BHoM: Diffing_oM initial implementation
- Added Diffing_oM project
- Added
BH.oM.Diffing.Delta
class
- Environment_oM: Add Climate objects
- Added SpaceTime Climate object
- Added Location Climate object
- Added Sun Climate object
- Added
Climate
toBH.oM.Environment
namespace
- Environment_oM: Add Plug Gain
- Migrate Grids and Levels from Architecture to Geometry.SettingOut
- Planning_oM : Adding Description Property to Milestone
BHoM_Adapter
- BHoM_Adapter: Update AssemblyFileVersion, set CopyLocal to false
- Update AssemblyFileVersion to 2.4.0.0
- Set CopyLocal to False
- File_Adapter: Fix file adapter bug
- Fixed File_Adapter bug for pushing new files which don't exist yet
- refactoring-Level1 changes
- Objects are now deep cloned at the start of the Push
ReplaceThroughApi()
has been simplified
- Refactoring-level2
- Renamed Adapter method
PullTo
toMove
to be consistent with UI naming - Move method now accepts 2 config parameters:
pullConfig
andpushConfig
- Renamed Adapter method
BHoM_Engine
- Add Theatron to Architecture_Engine and Humans_Engine
- ALL: Update file assembly version and set copy local to false for BHoM references
- Update all projects assembly file version to
2.4.0.0
- Update all BHoM references for all projects to not copy local
- Add code owners for Diffing_Engine
- Update all projects assembly file version to
- BHoM_Engine: Add and Query Fragments
- Add node to Modify
AddFragments
- Add node Query
FindFragment
- Add node to Modify
- BHoM_Engine: fix fragment adding bug
- Ensure that only one instance of a fragment can be added to an object at this time
- BHoM_Engine: refactor to follow BHoM_Adapter refactoring Level1
- Common_Engine: Add Translate Methods For IElements
- Diffing_Engine : Initial implementation
- First prototype of the Diffing_Engine that performs Collection-level and property-level diffing for objects.
- Environment engine Bug Fixes and Enhancements
- Added
InvalidPanels
- Added Fix for a
FloorGeometry
- Added warning to
ToSpace
- Added new
ToSpace
to support list - Added Query for Wall, Floor, Roof, Shade
- Fix Tilt and improve point selection for plane
- Added
- Environment Engine Exposed tolerance parameter for NormalAwayFromSpace
- Environment_Engine, Geometry_Engine - Add tolerance setting
- Environment_Engine: Add defaults for gain computes to allow gains to be returned
- Added default inputs to gain computes to return gains even if not all gains are required (e.g. sensible/latent)
- Environment_Engine: Add plug gain
- Add plug and equipment gain create and compute methods
- Environment_Engine: Add Solar Position Compute Methods
- Environment_Engine: expose multiple tolerance to prevent incorrect opening additions
- Expose
ContainingTolerance
on adding openings
- Expose
- Environment_Engine: Expose tolerance when adding openings geometrically
- Environment_Engine: Fix Polyline crash bug
- Fix crashing of Polyline query method if no edges exist
- Environment_Engine: Fix Solar Position Calculation
- Environment_Engine: Panels by level filter
- Added ability to filter Environment Panels by level
- Environment_Engine: Set Roof Panel Bug fix
- Bug fix PanelsList
- EnvironmentEngine: Add People Gain and Occupancy Compute
- Add People Gain and Occupancy Compute
- Geometry_Engine: Added Functions for Distance
- Added functions related to Distance(ICurve, ICurve).
- Added Testfile. The testfile uses "Distance()" method, which uses the distance between our points calculated by "CurveProximity()" method.
- Geometry_Engine: Change variable name to minimumSegmentLength
- Rename
distanceTolerance
tominmumSegmentLength
inCleanPolyline
- Add
RemoveLeastSignificantVertices
method separately fromCleanPolyline
for greater user control - Add
RemoveShortSegments
method separately fromCleanPolyline
for greater user control - Modify
CleanPolyline
to use the two separate methods - Add
tolerance
to allcentroid
methods
- Rename
- Geometry_Engine: Expose tolerances
- Expose tolerance parameter on
Normal
query forCurve
inputs - Expose tolerance parameter on
Centroid
query forCurve
inputs - Deprecate existing
Normal
andCentroid
queries as a result of the above
- Expose tolerance parameter on
- Geometry_Engine: Fix Clean Polyline and Fix Normal Away From Space
- Fix clean polyline
- Fix NormalawayfromSpace
- Migrating grids and levels from Architecture to Geometry.SettingOut
BH.oM.Architecture.Elements.Grid
andLevel
Creates deprecated.Grid
andLevel
added toBH.oM.Geometry.SettingOut
- Environment methods based on
Level
deprecated and updated to utiliseBH.oM.Geometry.SettingOut.Level
- Physical_Engine: Query methods for topology workflows
- Add query methods to extract physical objects from collections of BHoM objects to the Physical Engine
- Add query methods to obtain polyline representations of Physical objects to the Physical Engine
- Add query methods to obtain Environment representations of Physical objects to the Environment Engine
- Move method from Environment Engine to BHoM Engine to query objects by type for use by multiple engines
- Planning_Engine : Update Create method to include Description Property
- Prototyping reflection of external libraries
- Migrated
GroupMethodsByName
from the UI to theData_Engine
and renamed it toGroupByName
, since it is a generic method - Refactored the UI method
CompileFunction
toEngine.Reflection.Convert.ToFunc
in order to transform any delegate to aFunc<object[], object>
- Provide a way to expose instance methods, and any method that returns
void
- Migrate
Engine.Serialiser.Create.MethodBase
toEngine.Reflection.Create.MethodBase
. TheList<string> paramTypes
now is the list of name of the types, rather than their json representation - Added a way to create
MethodBase
s via aList<Type>
as well, for robustness and performance - Migrate
Engine.Serialiser.Create.MethodInfo
toEngine.Reflection.Create.MethodInfo
- Add the
IsExposed
method to centralise the check of which methods to expose to the UIs. - Add
Engine.Reflection.Query.ExternalMethodList
as a way to collect methods from external libraries - Add ability to collect methods declared in nested classes
- Migrated
- Reflection_Engine - Issue 703 - Fix Depth of Arrays in UnderlyingType
- Update the
Engine.Reflection.Query.UnderlyingType
to return the correct depth for theArray
type.
- Update the
- Reflection_Engine: added methods' inputs parameters names in menu description
- Added parameter input names into the menu when browsing methods.
- Reflection_Engine: CreateType throws exeptions that stop the data flow in visual programming if in a loop
- Reflection_Engine: shorten the params input description if longer than a max value
- Serialiser_Engine: Fix ToJson() method for when input is null
- Structure_Engine: Closes #1127 Adds name to create method for RigidLink
- Added name to create method for
RigidLink
.
- Added name to create method for
- [Structure_Engine: Fix crash when integ...
v2.3.β.0
Changelog
BHoM
- Environment_oM: Changed Gains properties to better match what engineers would expect to see
- Added Interface for Fragments to Base oM
- Added FragmentProperties to Base oM object
- Removed Fragment prototype from Environment objects to avoid clashes with base objects
- Geometry_oM: IElement parent interface for IElement0D, IElement1D and IElement2D added to allow the methods work on objects having different number of dimensions
- Deprecated several classes in BH.oM.Structure, BH.oM.Common and BH.oM.Architecture. See issue 502.
- Environment_oM: Return space Location Point back to Environment Space
- Geometry_oM: Added BoundingBox Operator NullCheck to prevent crashes in the UI
- Reflection_oM: Added the DoNotExpose attribute to allow flagging methods, constructor, fields and properties that we do not want to expose to the UIs.
BHoM_Adapter
- Minor refactor of the File_Adapter: check for extension, renaming of input
- Added a check in the Push method to trigger the Read() only when it's needed (pushed geometries have a tag and a comparer)
BHoM_UI
- Add support for Exploding multiple types on same output name
- The menu for CreateObject component now lists non-BHoM objects in
NonBHoMObjects
instead ofEngine
- The
CreateQuery
component only exposes methods from theCreate
class, thus appearing just once in the global menu - The component-local menu and the global search menu are now aligned to show consistent content.
- Now consistently hiding, from both the global and the local menu, any reflected object that is either deprecated or not implemented.
- Rename Queries into Requests
- Include interface types into the CreateTypes component
- Add keyboard control to SearchMenu
- Improving output names and descrition for Adapter operation components
BHoM_Datasets
- Added US Data.
Dynamo_Toolkit
- Rename Queries into Requests
ETABS_Toolkit
- Added compatibility with ETABSv17
- Reading of Etabs Meshes implemented. First rough implementation of reading meshStresses.
Excel_Toolkit
- Use more complete namespaces for Formula names
- Improve startup performances
- Fix occasional crash on exit
- Fix Create methods with non-BHoM return types being misfiled
- Add GlobalSearchMenu
- Cache inputs for method calls to prevent multiple calls with same parameters
- Rename Queries into Requests
- Automatically calculate sheets in which a BHoM function has been used
GSA_Toolkit
- Undefined material is now Pulled as a tentative steel material to avoid interrupting the process. A warning is issued when this happens.
Grasshopper_Toolkit
- Preview does not slow down grasshopper with Big Data
- The
IObject
parameter now has the option to either display a maximum number of objects or completely disable the preview - Grasshopper now doesn't crash if the bhom geometry pipeline fails
- Rename Queries into Requests
- Solving problem of CustomObject component running twice
Lusas_Toolkit
(No changelog for this beta)
Mongo-Toolkit
- Rename Queries into Requests
- Add description for the constructors of the Mongo adapter and their inputs/outputs
RAM_Toolkit
- Storeys are now created independently and are now required for Pushing any object unless they already exist in the model. Other objects (bards, floors) are snapped to specific storey; walls have bottom and top snapped to their respective storey.
Rhino_Toolkit
- Convert.ToBHoM(NurbsSurface) now preserves domain information
- Fixed Convert.ToRhino(PanelPlanar) breaks on null
- Adding basis to non-equivalent rhino types for when converting from BHoM. Rhino plane can still be used as input for methods wanting a basis.
Robot_Toolkit
- Loads with no (zero) value are not pushed.
- Corrected bug with exports of outstands for box section convert
- Corrected bug when Pulling bars that could lead to crash for some edge cases.
Socket_Toolkit
- Rename Queries into Requests
TAS_Toolkit
- Updated gains to meet BHoM
- Changed how panel edges are made to remove redundant points
- Changed pulling floating point numbers to be rounded to 3dp
XML_Toolkit
- Corrected bug that made ConstructionID query fail if the construction was null.
- Fixed pull error when pulling from an XML file without constructions
- Added some missing descriptions on components
- Fixed ability to pull constructions for panels for gbXML
- Fixed PanelType being pulled correctly when going from gbXML to BHoM
- Fixed connected spaces being set correctly when going from gbXML to BHoM
- Changed Panel IDs to not include hyphens or spaces
- Changed material export to work with current IES implementations.