Skip to content

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

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Labels

type:complianceNon-conforming to code guidelines

Type

No type

Fields

No fields configured for issues without a type.

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions