-
Notifications
You must be signed in to change notification settings - Fork 16
Home
The BHoM (Buildings and Habitats object Model) is a collaborative computational development project for the built environment. It is a collective effort to share code and standardise the data that we use to design, everyday – across all activities and all disciplines.
It is not an attempt to standardise exact processes – these must be flexible...
It is also not an attempt to standardise the software we use...
But in standardising the data but not the data-base, we provide great opportunities for efficiencies, for collaboration and most of all, to change the way we work.
It is crafted as cross-discipline, software-agnostic and office/region/country-invariant, and therefore would be nothing without our active community and wide range of contributors.
The whole BHoM project uses an open-source model for project architecture, co-creation and planning. So explore, experiment and contribute to both the source code and the wiki. Sharing and building our code together in this open-source type approach means we can feed off and pool our disparate knowledge, experience and expertise towards a common goal – better design.
There are many ways to contribute and get involved at different levels - see Getting Started below.
Also, as well as creating a common language of BHoM objects - the large number of repositories contain a variety of different plugins and code to operate on BHoM objects and link the BHoM with our favourite software and tools. Much of the core code is written in C#. But we also have code in JavaScript, C++, Python and visual programming languages such as Grasshopper User Objects and Dynamo Custom Nodes all forming part of the BHoM.
- Using the SCRUM Board
- Resolving an Issue
- Working Together - Avoiding Clashes
- Creating a new Repository
- Using Visual Studio
- BH.oM: Organise your Design Data
- BH.Engine: Create New Algorithms
- BH.Adapter: Linking to Commercial Software
- BH.UI: Expose your Code to UIs
- BHoM_Test: Raise Confidence in the Code (coming soon)
-
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