Refactoring and documentation based on "Universal" common interfaces

未关闭
#17 3 条评论 0 个 reaction 已指派 2 人 在 GitHub 查看

@al-fisher 已经在做这个了。

开始于 2021年7月26日。

评估

这个 Issue 还没有评估数据。

描述

type:compliance

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
  • Review / action the historic issue: https://github.com/BHoM/BHoM_Engine/issues/1645. Current thought is that if we move all methods that can be moved from the Reflection_Engine in the BHoM_Engine, what remains really is something that should be placed in a Code or Framework Engine? i.e. is Reflection the right name anymore?

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
  • https://github.com/BHoM/BHoM/issues/1260
  • Reformulate the IResult interface, including creating a compositional set of interfaces: IResult, IObjectResult, ICaseResult, ITimedResult, Structure.IResult
  • Formalize the requirement of the IResult interface: a flat list of data primitives.
Graphical_oM
Reflection_oM / Programming_oM / Data_oM
  • Review / action the historic issue: https://github.com/BHoM/BHoM_Engine/issues/1645. And see above

  • Consider grouping Programming_oM with "Disciplines namespaces"; consider renaming to something more discipline-y (e.g. Scripting_oM)

  • Create a Library_oM and move there the Data, source from the Data_oM

  • Move out as much stuff as possible from the Data_oM to appropriate oMs: Requests -> Analytical_oM, etc. (see if dependency chain can be respected)

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

主要语言
没有语言数据
星标
0
派生
0
PR 合并指标
30 天内没有已合并 PR

环境准备

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

BHoM/admin 的其他 Issue

查看 BHoM/admin 的全部 Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。