The BHoM Toolkit
A Toolkit is a set of tools (definitions, functionality, and connectivity) used for a specific purpose.
Structure of a Toolkit
In short, a Toolkit can contain one or more of the following projects:
- A BHoM_oM project, that contains the definitions specific to your Toolkit (the types, or the schema, needed for your purposes).
- A BHoM_Engine project, that contains the functionality specific to your Toolkit.
- A BHoM_Adapter project, that contains the connectivity required to interface with an external software.
If you are an User, head to one of the sections linked above to learn more (oM, Engine, Adapter).
If you are interested in programming, creating your own new Toolkit, or contributing to the code of an existing one, keep reading.
Implementing a new Toolkit
In order to implement a new Toolkit, we prepared a Toolkit Template that prepares a Visual Studio solution with all the scaffolding done for you: create an new Toolkit using the BHoM Toolkit Template.
Create a new software Toolkit using the BHoM Toolkit Template
Create a new Toolkit repository
Use the template repository to create a new repository. See the readme there.
Implement the oM
The oM should contain property-only classes that make the schema for your Toolkit. All functionality should be placed in the Engine. Functionality that is specific to a class should be defined in the Engine as an extension method.
Implement the Engine
The Engine should contain the functions applicable to the objects you've defined in the oM.
See The Engine for more information.
Implement the Adapter
See the dedicated page to Implementing an Adapter.