The term API is an abbreviation for Application Programming Interface. It is a set of definitions and protocols used to develop and integrate application software, allowing communication between two software applications through a set of rules.
Thus, we can speak of an API as a formal specification that establishes how one software module communicates or interacts with another, to fulfill one or many functions.
One of the main functions of APIs is to make it easier for developers to work with the API’s parent application, in our case Revit, effectively saving time and money. For example, if you are creating an application that is an online store, you will not need to create a payment system from scratch, or another system to check if there is available stock of a product. You can use the API of an existing payment service such as PayPal, and ask your distributor for an API that allows you to know the stock they have.
By taking advantage of the capabilities of existing tools via their APIs, it will not be necessary to reinvent the wheel in the creation of new versions of each needed service. Instead, you will be able to use features and functions that others have already created. Imagine in our online store example that every online store has its own unique payment system. For normal users it is much more comfortable to be able to operate with common, known services that almost everyone uses.
Returning to the Revit API, let’s pursue the goal of creating a Revit plugin.
What is a plugin?
Plugins are small add-on programs that extend the functionality of web applications and desktop programs. As a general rule, when we install a plugin, the software in question acquires a new function. Plugins are familiar to most users from web browsers. If, for example, you want to view PDF documents in these client programs, you must first install a plugin for Adobe Acrobat Reader (or other software for PDF files), otherwise, the browser will not be able to process the PDF document type.
Plugins are not only used in web browsers; they are common in any type of program or application. The operation is always the same: the installation of the plugin implies the expansion of the software with new features/functions without the need to tweak the code of the entire program.
The use of plugins is possible thanks to standardized programming interfaces, better known by the name Application Programming Interfaces (APIs). APIs unify the transmission of data between different parts of programs by accessing shared libraries. In a simplified way, a plugin uses certain elements of the main program without modifying its source code. That is why it can be installed outside of requesting the application provider to make updates to their application.
What is the function of a plugin?
The main purpose of the plugin is to provide additional functions to web applications or computer programs, to Revit in our case. If a company wishes, for example, to integrate certain automated calculations on the Revit project, it can develop and install a specific plugin for it. As the plugin definition itself indicates, these only extend existing programs, so it cannot work on its own, but must operate in combination with the main program (Revit).
One of the advantages of plugins is that they allow you to easily equip programs and applications with new features without noticeably increasing the size of the main application or being tied to the main application’s development and release schedule. The program code containing the new features is entirely contained within the plugin, so uninstalling the plugin automatically restores the main application to its previous state. This procedure also allows a software user or third-party vendor to extend a program without making any changes to the source code.
Voyansi’s Software Team regularly creates plugins to extend the functionality of Revit for our customers based on their unique needs as dictated by their industry, workflows, project needs, or any other scenario in which Revit’s basic functionality does not meet their needs. These plugins are tools that increase efficiency, performance, accuracy, and consistency while reducing the volume of tedious tasks and human error that often occurs in complex calculations and workflows.
In the next Blog in this series, we will review an example of a Revit plugin created by Voyansi to address a Revit behavior that causes a tedious, repetitive operation when a user wants to align Text Notes throughout a project.