Inventor API
Inventor API is exposed using technology from Microsoft called "Automation". Automation interfaces are common among applications written for Windows.
There are different ways to access the Inventor API.
Macro
VBA, or Visual Basic for Applications, is a programming environment that is accessed from within Inventor. Programs written using VBA are frequently referred to as "macros".
Macro is typically used by end-users to write small programs to automate repetitive tasks, although it is not limited to this.
A Macro program has the same access to all of the features of the API as any of the other methods of accessing the API.
Add-Ins
Add-Ins are a special type of Inventor program.
Inventor starts the Add-In automatically whenever Inventor is run. This has a huge advantage in that the add-in is able to insert itself into Inventor user-interface.
Add-ins have a distinct advantage over Macro in delivering your program to users and managing your source code.
An Add-Ins program can be written using languages such as Visual Basic, C#, and Visual C++.
Standalone EXE
A standalone EXE is a program that runs on its own and connects to Inventor. This type of program is typically used in the case where you have a program that doesn't require the user to interactively work with Inventor.
For example a batch plotting utility can be an EXE that runs independently of Inventor. It might monitor a database watching for new records to be added which describe documents that need to be plotted.
When a new record is created in the database, the EXE starts Inventor, opens the desired document and plots it.
A Standalone EXE program can be written using languages such as Visual Basic, C#, and Visual C++.
Apprentice Server
Apprentice is an ActiveX server that can be used by other applications to get access to Inventor data.
Apprentice is useful in any standalone application that needs access to information contained within Inventor documents.