Skip to content
BHoM documentation
2024
Initializing search
GitHub
BHoM documentation
GitHub
Welcome
Basics
Basics
What is the BHoM for?
Installing BHoM
Using the BHoM
BHoM Toolkits
Technical philosophy of the BHoM
BHoM oM
BHoM oM
The Object Model (oM): define new objects
BHoM Unit conventions
Base oM
Base oM
Attributes
Attributes
BHoM Attributes
Interfaces
Interfaces
IImmutable
Dimensional oM
Dimensional oM
Extension methods required for the IElement interface
Geometry oM
Geometry oM
Introduction to BHoM Geometry
Structure oM
Structure oM
Structural and geometrical conventions
Shear Area Derivation
BHoM Engine
BHoM Engine
What is the BHoM Engine?
BHoM Engine Classes
Humans Engine
Humans Engine
View Quality Conventions
BHoM Adapter
BHoM Adapter
Introduction to the BHoM_Adapter
Adapter actions
Adapter Actions: advanced parameters
Implement an Adapter
The CRUD methods
Structural Engineering adapters
BHoM UI
BHoM UI
BH.UI: Expose your code to User Interfaces
DevOps
DevOps
Introduction to DevOps
BHoM releases
BHoM change log
Open Sourcing Procedure
Setting up a new Repo
Bots
Bots
Introduction to Bots in BHoM
BHoMBot
Code Compliance and CI
Code Compliance and CI
Code compliance
Continuous Integration (CI)
CI Checks
CI Checks
Check All
Check Branch Compliance
Check Code Compliance
Check Compliance
Check Copyright Compliance
Check Core
Check Dataset Compliance
Check Documentation Compliance
Check Installer
Check Null Handling
Check-PR-Builds
Check Project Compliance
Check Ready To Merge
Check Required
Check Serialisation
Check Unit Tests
Check Versioning
Compliance Checks
Compliance Checks
AssemblyInfo compliance
AttributeHasEndingPunctuation
EngineClassMatchesFilePath
HasConstructor
HasDescriptionAttribute
HasOneConstructor
HasOutputAttribute
HasPublicGet
HasSingleClass
HasSingleNamespace
HasUniqueMultiOutputAttributes
HasUniqueOutputAttribute
HasValidConstructor
HasValidCopyright
HasValidMultiOutputAttributes
HasValidOutputAttribute
HasValidPreviousVersionAttribute
HiddenInputsAreLast
ImplementsRequiredMethods
InputAttributeHasMatchingParameter
InputAttributeIsUnique
InputAttributesAreInOrder
InputParameterStartsLower
IsDocumentationURLValid
IsExtensionMethod
IsInputAttributePresent
IsPublicClass
IsPublicProperty
IsStaticClass
IsUsingCustomData
IsValidConvertMethodName
IsValidCreateMethod
IsValidCreateMethodName
IsValidDataset
IsValidEngineClassName
IsValidIImmutableObject
IsVirtualProperty
MethodNameContainsFileName
MethodNameStartsUpper
ModifyReturnsDifferentType
ModifyReturnsSameType
ObjectNameMatchesFileName
PreviousInputNamesAttributeHasMatchingParameter
PreviousInputNamesAttributeIsUnique
Project References and Build Paths
PropertyAccessorsHaveNoBody
UIExposureHasDefaultValue
Development Cycle
Development Cycle
Introduction to the Development Cycle
2022
2023
2024
Operating Procedures
Operating Procedures
Introduction to our Operating Procedures
Beta Patching
Beta Testing
End of milestone
Preparing a new milestone
Producing a beta installer
Contributing
Contributing
Getting started for contributors
Editing the documentation
Submitting an Issue
Resolving an Issue
Pull Requests
Implementing a new Toolkit
Best practices
Best practices
Branching Strategy
Coding together avoiding conflicts
Icons
Merge Teams
Using the SCRUM Board
Posting test files
Development FAQ
Guides and Tutorials
Guides and Tutorials
Visual Programming with BHoM
Visual Programming with BHoM
Getting started for visual programmers
Diffing and Hashing
Diffing and Hashing
Diffing: tracking changes between objects
Hash – an object's identity
Configuring object comparison: ComparisonConfig
Configuring Revit objects comparison (RevitComparisonConfig)
Revit Toolkit
Revit Toolkit
Revit Toolkit intro
Revit Adapter
Revit Adapter
Introduction to the Revit Adapter
Revit Adapter setup in Revit
Revit Adapter setup in Grasshopper
Revit Adapter setup in Excel
Matching Revit elements with BHoM objects
Warnings and Errors
Pull
Pull
Revit Pull
Revit Pull in Grasshopper
Revit Pull in Excel
Conversion from Revit
Requests and data filtering
Action config
Handling of parameters on Pull
Pull from links
Pull of geometry and object representations
Pull of material takeoffs
Explicit mapping of Revit families to BHoM types on Pull
Revit Pull examples
Push
Push
Revit Push
Revit Push in Grasshopper
Revit Push in Excel
Conversion to Revit
Revit Push modes
Action config
Handling of parameters on Push
Updating Revit types
Revit family library
Revit Push examples
Remove
Remove
Revit Remove
Revit Remove in Grasshopper
Revit Remove in Excel
Action config
Revit Remove examples
Coding with BHoM
Coding with BHoM
Getting started for developers
IDEs
IDEs
Coding BHoM in a Grasshopper CSharp script component
Using Visual Studio Code For BHoM Development
BHoM coding templates
Best practices
Best practices
BHoM's coding style and conventions
BHoM Debugging and Edit-and-continue
Logging and exceptions
Null handling
Targeting multiple API versions
How to use Git
Datasets
Datasets
Creation of Datasets
Accessing Datasets in code
Diffing and Hashing
Diffing and Hashing
Diffing and Hashing: guide for developers
Revit Toolkit
Revit Toolkit
Revit Toolkit intro
Revit Adapter Details
Pull from Revit Details
Push to Revit Details
Remove from Revit Details
Programmatic filtering
Geometry conversion
Unit Conventions
Handling of Parameters
Testing
Testing
BHoM Testing
Data driven tests
Versioning
Versioning
What is BHoM versioning?
Versioning guide: implementing versioning for your changes
Technical background on Versioning
2022 Q1 Reflection oM Engine migration to Base oM Engine
Backwards compatibility
Change to a property name.
Creating your own versioning
How to check your versioned changes are working ?
Object name change and associated custom create method
2024
Back to top