AGI provides a variety of ways to extend our products. These extensibility mechanisms can be divided into two distinct areas--user interface extensibility and engine extensibility. User interface extensibility allows you to create custom graphical user interfaces (GUI) and controls for STK to provide user-defined workflows which can combine STK and in-house functionality. Engine extensibility options (STK Engine Plugins) allow users to customize just those aspects of the modeling that are really non-generic while leveraging all the other generic capabilities of the COTS software.
A clickable decision tree provides an overview of your options.
At first, one may think that writing a software component to achieve higher fidelity modeling is too high a hill to climb. Certainly, the best situation would involve the software already incorporating the higher fidelity model to use. AGI is constantly improving its products by adding more fidelity and capability---but these features are mostly focused on providing generic capabilities that can be used by a wide customer base. Higher fidelity models are by their nature non-generic and applicable to only a few customers.
Generally, the non-generic portion of a model is narrow in scope. The larger portion can simply utilize existing generic models. Certainly, if the price to pay to incorporate a custom model requires reimplementation of all the generic capabilities as well, then you're creating a total custom software solution yourself---one that needs to be continually tested, maintained, validated, and upgraded to meet your changing needs.
The big advantage to using Plugins is the programming code you don't need to write. In contrast to writing all the code yourself, plugins work by implementing only the custom portion of a model and leveraging all of the generic capabilities provided by the plugin point. The only thing that needs to be programmed is the specific custom model itself, the part of the model that is most important to the plugin creator.
STK 11.2.1 Programming Interface