Some people are curious of what is NXOpen and how can we develop for NX.
Well basically there are two different things:
(1) Development of NX Core
(2) Development of NX Customization
NXCore
For the first group, Siemens is responsible for developing the software and therefore hire its own people to do so.
NX Customization
For the customization, in theory any one could do it, by basically using loading the custom project before starting. To do so, we use the NXOpen API, which is actually available for several programming languages: python, c# and c++. The official sources can be found [1]. In fact NXOpen is not a simple API, but a collection of API’s that we can use to build the programs, the API for Python can be found here [2].
Example
As one example, we use the interface #include<NXOpen/NXObjectManager.hxx> to build objects from it or use its functions, e.g. NXObjectManager::Get(tagIterator). It is easier also to use the corresponding namespaces so no mess is dont with functions with the same name.
[1] https://docs.plm.automation.siemens.com/tdoc/nx/10/nx_api/
[2]https://docs.plm.automation.siemens.com/data_services/resources/nx/10/nx_api/en_US/custom/nxopen_python_ref/index.html