Creation of Revit programs Inventor programs AutoCAD programs
In order to provide an overview of the possibilities for expanding the corresponding Autodesk systems, we would like to provide the relevant information here. We also explain the associated database systems.
The following systems are explained:
- Autodesk Revit
 - Autodesk Inventor
 - Autodesk AutoCAD
 - Microsoft SQL
 - SQLite
 
Autodesk Revit
Autodesk Revit provides a comprehensive .NET API that can be used to automate repetitive workflows and extend core Revit functions.
The programming language used must be .NET-compatible, so VB.NET, C#, and C++/CLI, among others, can be used. While simple commands can be developed for simple tasks, plug-ins are a way of extending Revit with complex functions.
For more complex applications, Autodesk Revit provides an API (Application Programming Interface), which contains interfaces to numerous Revit functions.
Plug-ins are usually developed in C# (or VB .NET), which can not only extend the Revit interface with individual functions, but also provide completely new dialog boxes. Depending on the desired functions of the plug-in, different libraries can be loaded that provide access to different parts of the Revit application.
Communication with external applications and databases is also easily possible in plug-ins. For example, it is possible to communicate with web servers to retrieve external information, but local databases can also be integrated (more on this in the section on SQLite).
Revit PlugIns are compiled to .dll files, which can be loaded automatically if they are saved in the correct location. As soon as a plug-in has been installed, the user will ideally no longer notice any difference to native Revit functions.
Autodesk Inventor
For Autodesk Inventor, an extensive API offers the possibility to extend the functionality of Inventor almost indefinitely with your own functions and also to adapt the user interface to your own wishes.
Complex functions and programs can be seamlessly integrated in the form of add-ins, which are automatically loaded each time Inventor is started. This gives you access to the entire functionality of Inventor: any work that can be carried out manually can be automated using a plug-in.
The programming languages VB .NET and C# are primarily used for plug-in development.
Autodesk AutoCAD
Using the ObjectARX programming environment, developers are able to extend and adapt the functionality of AutoCAD with their own applications.
Every function that can be carried out manually can be automated using the API. This not only speeds up the creation of drawings, it also simplifies communication with other software systems and complex plug-ins can be used to adapt the entire functionality of AutoCAD to your own requirements.
C++, C# and VB .NET can be used for development.
In addition, macros can be created via a VBA development environment and connections to other programs that support VBA can be established.
Development with Visual Lisp is also supported. This can be used to develop applications that call AutoCAD functions, change system variables and provide the user with interaction options via dialogs.
MySQL
MySQL is one of the most widely used relational database systems.
It is available under an open source license and is frequently used in commercial and non-commercial applications. The use of MySQL is particularly popular for web applications.
A MySQL database is usually located on an associated MySQL server.
Various clients can execute SQL commands via a connection to this server and thus save, edit or retrieve data.
SQLite
SQLite is a relational database system that provides support for most SQL language commands.
The key difference to other database systems is that the SQLite system can be integrated directly into client applications without the need for additional server software to operate the database.
For the application, this means that the product information could also be available without existing Internet use. In addition, the SQLite library is extremely small (often in the region of less than one megabyte).