The Architecture
The main class
This class is the entrypoint of our code. That's why the .addin file in the project is configured to use this class as the entrypoint.
It is responsible for a couple of important things:
- It adds the buttons to the Revit ribbon toolbar
- It initializes the dependency injected classes we use throughout the application
- It sets up the logging system
The main class looks as follows: TODO
C-Sharp projects
We split up our codebase into different projects to keep things organized. The project containing the specific addin and startup code is called <CompanyName>.<ProjectName>.AddIn
Examples of our other projects are:
- ASRR.Core - This project contains all the core functionality that is not specific to Revit. This includes things like logging, dependency injection, etc.
- ASRR.Revit.Core - This project contains the code that is responsible for the Revit specific functionality. This includes things like reading the Revit model, converting it to our own format, etc.
- ASRR.Revit.Exporter - This project contains the code that is responsible for exporting the Revit model to a format that can be used by our application. This includes things like reading the Revit model, converting it to our own format, etc.