• Getting Started
  • Tutorials
  • Api Documentation
Show / Hide Table of Contents
  • Introduction
    • Getting Started
      • Application
      • Commands
      • Views and MVC
    • Main Concepts
      • Inversion of Control
      • Separation of Concerns
      • Modularity
      • Immutability
      • Testability
      • Versioning
    • IOC Container
      • Container Registration
      • Container Resolve
      • Container Scopes
      • Container Scopes
    • Mapping and Cloning
    • Http Client
    • Logging
    • Messaging
    • Json Serialization
    • Progress Indication
    • MVC
    • State Management
    • Extensible Storage

Main Concepts

Onbox is a framework specifically designed to help Revit API developers to leverage modern web paradigms to build consistent multi-platform applications, from Addins, to Dynamo nodes, Forge Design Automation. It is also possible to use Onbox to facilitate the use of architectural patterns to achieve code reusability with ASP.Net and even leveraging usage of scripts to convert data models to other programming languages!

With that being said, the framework doesn't try to wrap every Revit API functionality, nor to use every feature of dotnet or C#, there is no "complexity-as-a-feature", the libraries are designed to solve problems in the simplest way possible. They are, however, trying to be flexible and extensible.

Most of services provide a abstracted interface that can be used to wrap implementations and potentially replaced when it makes sense, developers can swap the default HttpService to RestSharp, Mapper to something like AutoMapper or anything along those lines. Onbox's internal libraries are also not trying to be the replacement or direct competitor for any of these libraries, the goal is to provide a safe basic implementation, avoiding dll conflicts at the same time provinding flexibility to your specific needs.

New functionality are extremely welcome, specially by adding new libraries that can plugged into the depency injection system without the need to change the default implementations, in fact the MVC libraries are built with this concept in mind, they can be easly removed and replace without any diruption on the other parts of the framework.

  • Improve this Doc
Back to top Generated by DocFX