Code structure - BHoM/Revit_Toolkit GitHub Wiki
The code of Revit_Toolkit is different from standard BHoM pattern, which is caused by the fact that all code base referencing Revit API needs to run inside the Revit thread. It is split into two realms:
- BHoM side - standard BHoM toolkit structure:
- Revit_oM (
BH.oM.Adapters.Revit) - Revit_Toolkit-specific classes, mainly settings/config and wrappers for Revit types - Revit_Engine (
BH.Engine.Adapters.Revit) - methods to process the objects from Revit_oM - Revit_Adapter (
BH.Adapter.Revit) - BHoM side of Revit-specific implementation ofBHoMAdapterwithout CRUD, which is sitting on the Revit side of the solution (see below)
- Revit_oM (
- Revit side:
- Revit_Core_Adapter (
BH.Revit.Adapter.Core) - Revit side of Revit-specific implementation ofBHoMAdapter, including adapter action methods, CRUD as well as Revit Listener plugin and event handlers - Revit_Core_Engine (
BH.Revit.Engine.Core) - methods to process Revit objects (filter, convert, query etc.)
- Revit_Core_Adapter (
The relationship and interaction between Revit side and BHoM side of the Adapter is explained in Adapter Details section, including a flowchart explaining the process on high level. Similarly, each of the adapter actions is mapped out in action specific section: