Skip to content

Refactoring and documentation based on "Universal" common interfaces #17

@alelom

Description

@alelom

Broken rules:

There are some keys interfaces that drive everything, defining the formal structure, dependency and organization of the BHoM.

We need to push a reorganization of their arrangement, tweak some conventions and namings, and relocate appropriately certain Engine methods that use/depend on them.

Suggestions to restore compliance:

WIP diagram:
image

Engines

BHoM_Engine

  • Move the IGeometry and IGeometry3D methods into the Geometry_Engine.

Analytical_Engine-Graphics_Engine

  • Methods that generalize the IResult representation.
  • [ ]

Results_Engine

The Results engine should be deleted, as it currently depends on Structure_oM and Analytical_oM and Graphic_oM and its categorization is not meaningful.

  • Move the Max, Min, Total, AbsoluteMax methods into Structure.Query.
  • Move the DisplayMeshResults into Graphic_oM. Add Analytical_oM dependency in Graphic_oM.
  • Move Analytical_Engine: Group, IsNull, MapResults (to be renamedMappedResult).
  • Delete the Result_Engine.

Reflection_Engine

Any objects/methods left obviously is code that is needed as part of the Framework for Adapters, UIs etc. and is distinct from the already existing Programming namespace that is "Programming as a discipline". i.e. creating Programming representation of a concept much like a Structural or Acoustics representation say

Object models

Base_oM

  • Add description to the BHoMGroup and IBHoMGroup.
  • Move the ISpecification interface in the CIH_Toolkit.
  • Review the ComparisonConfig and if it makes sense to move it in the Diffing_oM.
  • Review the usage of ISettings interface - if not used, remove; or see if it can be moved below.

Analytical_oM

Graphical_oM

Reflection_oM / Programming_oM / Data_oM

EDIT: Updated the diagram to latest WIP and point around Reflection namespace in light of updated diagram

Metadata

Metadata

Labels

type:complianceNon-conforming to code guidelines

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions