-
Notifications
You must be signed in to change notification settings - Fork 16
Getting started for developers
Welcome Developers! 🚀
Please follow the steps below:
- Use git
clone
(or use GitHub desktop) to download the repositories in the list below. - Use your preferred IDE to build the solutions in the order as they appear below. We recommend Visual Studio Community.
Choose, clone and build the repos in the order specified below.
Once you have built everything you need, you must re-build BHoM_UI. This is because BHoM_UI triggers a process that distributes all compiled dlls in the right UI folders.
This means that every time you change your code and recompile a Toolkit, you have to recompile also BHoM_UI for the changes to appear in your UI of choice (be it Rhino, Dynamo, others).
To reduce rebuild iterations, you might want to start the Debugging with your UI application attached. Not IDEs support this however (notably, not the Express editions of Visual Studio, but only the Community ones).
An alternative that always works is simply attaching to the process.
Depending on the User interface software you want to use, you might want to build the following:
- Rhinoceros_Toolkit
- Grasshopper_Toolkit (requires Rhinoceros_Toolkit)
- Excel_Toolkit
- Dynamo_Toolkit
These repos are sometimes used as stand-alone, and sometimes are also referenced by other repos.
You might find them useful 🚀
- BHoM_Datasets - makes Datasets available (some test scripts might be using them)
- Socket_Toolkit - send messages through Sockets. Some toolkits use this.
- Mongo_Toolkit - database connection. Some toolkits use this.
- Versioning_Toolkit - allows retro-compatibility of components (auto upgrade to newest version).
Toolkits provide the connection to other software.
Clone and build any toolkit you want to use!
Some examples:
- For FEA analysis
- Robot_Toolkit (for students, Robot offers a free version)
- [GSA_Toolkit]https://github.com/BHoM/GSA_Toolkit
- [ETABS_Toolkit9]https://github.com/BHoM/ETABS_Toolkit)
- Many others avaiable!
- Others:
- [Speckle_Toolkit](https://github.com/BHoM/Speckle_Toolkit
See 🚩the note above🚩.
-
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