- 
                Notifications
    You must be signed in to change notification settings 
- Fork 15
The BHoM Toolkit
Before reading this page, please check out:
This page explains how to develop what we call a Toolkit.
A Toolkit is a Visual Studio solution that can contain one or more of the following:
- A BHoM_Adapter project, that allows to implement the connection with an external software.
- A BHoM_Engine project, that should contain the Engine methods specific to your Toolkit.
- A BHoM_oM project, that should contain any oM class (types) specific to your Toolkit.
In order to implement a new Toolkit, we prepared a Toolkit Template that does all the scaffolding for you: create an new Toolkit using the BHoM Toolkit Template.
Once you have created the Visual Studio solution using the template, you only need to implement the Adapter, and any Engine method and/or oM class that the Adapter should be using.
Let's get started!
Use the template repository to create a new repository. See the readme there.
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.
See https://github.com/BHoM/documentation/wiki/BH.oM-%E2%80%90-Define-New-Objects and https://github.com/BHoM/documentation/wiki/BH.Engine-%E2%80%90-Create-New-Algorithms for more information.
The Engine should contain the functions applicable to the objects you've defined in the oM.
See https://github.com/BHoM/documentation/wiki/BH.Engine-%E2%80%90-Create-New-Algorithms for more information.
See the dedicated page to Implementing an Adapter.
- 
Introduction to the BHoM: 
 What is the BHoM for?
 Structure of the BHoM
 Technical Philosophy of the BHoM
- 
Getting Started: 
 Installing the BHoM
 Using the BHoM
 Submitting an Issue
 Getting started for developers
- 
Use GitHub & Visual Studio: 
 Using the SCRUM Board
 Resolving an Issue
 Avoiding Conflicts
 Creating a new Repository
 Using Visual Studio
 Using Visual Studio Code
- 
Contribute: 
 The oM
 The Engine
 The Adapter
 The Toolkit
 The UI
 The Tests
- 
Guidelines: 
 Unit convention
 Geometry
 BHoM_Engine Classes
 The IImmutable Interface
 Handling Exceptional Events
 BHoM Structural Conventions
 BHoM View Quality Conventions
 Code Versioning
 Wiki Style
 Coding Style
 Null Handling
 Code Attributes
 Creating Icons
 Changelog
 Releases and Versioning
 Open Sourcing Procedure
 Dataset guidelines
- 
Foundational Interfaces: 
 IElement Required Extension Methods
- 
Continuous Integration: 
 Introduction
 Check-PR-Builds
 Check-Core
 Check-Installer
- 
Code Compliance: 
 Compliance
- 
Further Reading: 
 FAQ
 Structural Adapters
 Mongo_Toolkit
 Socket_Toolkit