NEW RELEASE! The 2022x Refresh2 Hot Fix 3 was released on February 28, 2025. For more information, see 2022x Refresh2 Hot Fix 3 Version News.

Let's describe creating a script in an example. We will create a script showing a message on a program startup. The creation process consists of three steps:

  1. Creating a directory
  2. Writing a script descriptor
  3. Writing a script code


Step #1: Create Directory

In the plugins/com.nomagic.magicdraw.jpython folder, create a scripts sub-folder, and then a folder for the particular script. For example, plugins/com.nomagic.magicdraw.jpython/scripts/example

 

Step #2: Write Script Descriptor

A script descriptor is a file written in XML and named script.xml. The script descriptor provides information about a script file to run, version of script, ID, and other.

In the created directory, create a script.xml file:

    <?xml version="1.0" encoding="UTF-8"?>
    <script
        id="example 1"
        name="Simple menu item"
        version="1.0"
        provider-name="No Magic"
        script-file="main.py"
        requiresApi="1.0">
    </script>

The following table describes the script.xml file structure:

ElementDescription 
script







Attributes
NameDescription
idA scrip ID, should be unique. Used to identify a script. Example: “my.first.script.0”
nameA script name. No strict rules applied to this attribute. Example: “Example script”
versionA script version. Allows numbers separated with one dot value. Examples: “1.0”, “0.1”
provider-nameA script provider name. A company or an author name. Example: "No Magic"
script-fileA relative path to a script file. This file will be executed. Example:”main.py”
requires-apiA program API version required by a script. Example:”1.0”

 

Step #3: Write Script Code

Then in the same directory, create the main.py file:  

from javax.swing import JOptionPane

# Script starts here
print "Starting script, descriptor", pluginDescriptor
JOptionPane.showMessageDialog( None, "I am a script!!!")

 

After saving files, restart your modeling tool. On a program startup, a message dialog should appear.

 

Variables Passed to Script

The program passes the one variable to the script pluginDescriptor. This variable contains information from the parsed script.xml file. A variable is an instance of a com.nomagic.magicdraw.jpython.PythonPluginDescriptor class.

A script can retrieve the script directory and other necessary information from the pluginDescriptor variable. There is no need to change any other fields for this variable.

 


Activity

All
Personal filters
All
No activities found