Knowledge Base

Welcome to OPAL-RT’s Knowledge Base

OPAL-RT offers a repository of support information for optimal use of its technology.

Please note that OPAL-RT knowledge base is not fully optimized for mobile platforms.

For optimal experience, use a desktop computer.

Reference Number: AA-02087 // Views: 3 // Created: 2022-08-10 08:52:00 // Last Updated: 2022-08-10 09:12:59
RT-LAB Python API Script Example to Create a New Project


In the Python API Help, there is a function mentioned called 'NewProject()'

However, after using it, there are two files missing:

1- .project file

2- a subfolder .settings with a com.opalrt.rtlab.ui.application.prefs file.


And, because of those two files missing, the project cannot be imported into RT-LAB.


Attached to this article, you will find a complete example how to create an RT-LAB project, with the missing files, so that it is possible to import it in RT-LAB afterwards. This script was made for Python 2.7. 

Below is a description of the key parts of that script.

First, define a directory where the resulting zip should be created and the name of the project. In this example, it is C:\Users\username\OneDrive - Opal-RT Technologies\Desktop\temp

Second, define which model is going inside that project. For this example, the classic 'rtdemo1' is being used from the installation directory.

Third, define if there is an extra file that needs to be linked to that project too.

These are the only modifications required to the script before running it.

The script is composed of four functions:

Name of Function
 create_settings(file_location, project_name) Create subfolder and com.opalrt.rtlab.ui.applications.prefs file
 create_dot_project_file(file_location, project_name) Create .project respecting the format for RT-LAB.
 NewProjectWrapper(WORKING_PATH, name_new_project) This is the wrapper to work around the issues mentioned previously.
 AddModelInProject(llp_location, project_name, model_original_location, model_name, model_extension)Function that connects to a project and copies the model into it + add the extra file

The main script in itself is quite simple:

1- Create a new project using the NewProjectWrapper function

2- AddModelInProject to add the model and the extra file

3- Zip everything to be able to import it in RT-LAB.

Extra information:

The goal of 'dummy_file.txt' is to show how to add a file programmatically, that will be added to the File Tab:

Side notes:

- in the script, the file 'dummy_file.txt' is copied beside the model so that it uses a relative path instead of an absolute path.

- It uses the command <AddExtraFile>, but, with it, it is not possible to set the category using this function (S-Function / Asynchronous Process / Other - which impacts how the file gets compiled). The workaround is to write directly in the .llm file. KbDownload File