Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

To set up Jupyter Notebook

...

  • In Jupyter Notebook, run the following command to install a Python package from the <

    modeling_tool_installation_directory>

    install_root>\plugins\com.nomagic.magicdraw.simulation\pyST.zip file:

    Code Block
    %pip install pyST.zip


...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
server_hostpathrequiredThe Teamwork Cloud server host name.
server_portpathrequiredThe Teamwork Cloud server port.
TWC_user_namepathoptional

The Teamwork Cloud user name. If you do not specify the user name in the request, an input field will be provided to specify it later.

TWC_user_passwordpathoptionalThe Teamwork Cloud password. If you do not specify the password in the request, an input field will be provided to specify it later.


Tip

For instructions on how to run server-side simulation using SSL, refer to Running server-side simulation with SSL

...

The following table describes the parameters used in the request:

the  fUML  Interaction  SCXML
ParameterInRequired or optionalDescriptionOptions
projectpathrequiredThe Teamwork Cloud project name or ID.NA
versionpathoptionalThe Teamwork Cloud project version.NA
branchpathoptionalThe project branch name or ID. If the branch is omitted, the trunk is used instead.NA
elementpathoptionalThe qualified name or server ID of the element to be executed.NA
configpathoptionalThe Simulation Configuration name or server ID.NA
started_frompathoptionalAllows specifying the starting location of the simulation. The value of
the started_from parameter is provided in the status endpoint response.NA
commit_results pathoptional

Commits a new project version with the simulation results. Available values are True or False (default).

NA
verificationpathoptional

Returns the selected verification results. Available values are:

    • All - all verification results are returned.
    • None - no verification results are returned.
    • Fail (default) - verification results with the fail status are returned.
NA
datapathoptionalA set of output parameters, which will be obtained after the simulation is complete.NA
simconfig bodyoptionalThe set of simulation configuration properties along with their corresponding values. The simulation configuration options you specify will take precedence over the initial configuration option from a model.
  • "ALLOW_CONCURRENT_ALLOCATED_ACTIVITIES": true,
  • "AUTOMATIC_PARAMETRIC_RECALCULATION": true,
  • "AUTO_CONVERT_UNITS": true,
  • "AUTO_CREATE_FUML_OBJECT_OF_OUTPUT_PIN": true,
  • "AUTO_START": true,
  • "AUTO_START_ACTIVE_OPTIONS": true,
  • "AUTO_TERMINATE": true,
  • "CLOCK_RATIO": 1,
  • "CLONE_REFERENCES": true,
  • "COMPLETION_EVENTS_AND_TRANSITIONS": true,
  • "CONSTRAINT_FAILURE_AS_BREAKPOINT": true,
  • "DECIMAL_PLACES": 4,
  • "DEFAULT_LANGUAGE": "JavaScript Rhino",
  • "DURATION_SIMULATION_MODE": "MIN", // possible values: MIN, MAX, AVERAGE, RANDOM
  • "ENDTIME": 0,
  • "ENGINES_PRIORITY": "[on]
  •  fUML Engine\n[on]
  •  Interaction Engine\n[on]
  •  SCXML Engine",
  • "INITIALIZE_NUMERICAL_VALUE": false,
  • "INITIALIZE_REFERENCES": true,
  • "NUMBER_OF_RUNS": 0,
  • "NUMBER_OF_STEPS": 0,
  • "PASS_CALLER_CONTEXT": true,
  • "RECORD_TIMESTAMP": false,
  • "REMEMBER_FAILURE_STATUS": true,
  • "RESULT_LOCATION": "Results",
  • "RUN_FORKS_IN_PARALLEL": true,
  • "SOLVE_AFTER_INITIALIZATION": true,
  • "START_TIME": 0,
  • "STATE_ACTIVATION_SEMANTICS": "BEFORE_ENTRY", // possible values: "BEFORE_ENTRY", "AFTER_ENTRY"
  • "STEP_DELAY": 0,
  • "STEP_SIZE": 0,
  • "TERMINATE_BEHAVIOR_ON_EXCEPTION_THROWN": true,
  • "TERMINATE_NESTED_BEHAVIORS": true,
  • "TERMINATE_STREAMING_BEHAVIORS_BY_OUTPUT_PARAMETER_MULTIPLICITY": false,
  • "TIME_UNIT": "MILLISECOND",
  • "TIME_VALUE": "Model-based Clock Test::Clock::time",
  • "TIME_VARIABLE_NAME": "simtime",
  • "TREAT_ALL_CLASSIFIERS_AS_ACTIVE": true,
  • "USE_FUML_DECISION_SEMANTICS": false


Code Block
titleRequest and response examples
 # SpaceCraftMassRollup sample

parameters = {
    "inputs":
   {
       "telecom.antenna.me":10,
        "telecom.amplifier.me":20
   },
 "outputs": 
    [ 
        "me",
        "propulsion.me",
        "propulsion.tank.me",
        "propulsion.thruster.me",
        "telecom.me",
        "telecom.antenna.me",
        "telecom.amplifier.me"
    ] 
}
        
client.run('SpacecraftMassRollup_SimWeb', config='spacecraft mass analysis', commit_results=False, data=json.dumps(parameters))

...

Code Block
titleRequest example with simulation options specified in a request body
from pyST import simconfig   // imports simulation configuration class that allows using autocompletion to specify simulation options

simOptions = {
"simconfig":
   {
        simconfig.AUTO_START: True,
        simconfig.DURATION_SIMULATION_MODE: "MIN",
        simconfig.ENDTIME: 50,
        simconfig.TERMINATE_NESTED_BEHAVIORS: False
   }
}
 

client.run('OntologicalBehaviorModeling', config='Ontological Configurable', data=json.dumps(simOptions))


Note

To enable the autocompletion option for specifying the simulation in Jupyter, use from pyST import simconfig

Image Modified

Perform a time step

...


This request performs a single time step of the specified simulation. To run the simulation by step, it should be run with the
 AUTO_START option  option of the simconfig parameter set to to false.


The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of a specific simulation.


Start simulation

Panel
borderColorlightgrey
borderWidth1

client.start(<simulation_id>)

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of a specific simulation.


Start simulation and get results

...

The following table describes the parameters used in the request:

 fUML  Interaction  SCXML
ParameterInRequired or optionalDescriptionOptions
projectpathrequiredThe Teamwork Cloud project name or ID.NA
versionpathoptionalThe Teamwork Cloud project version.NA
branchpathoptionalThe project branch name or ID. If the branch is omitted, the trunk is used instead.NA
elementpathoptionalThe qualified name or server ID of the element to be executed.NA
configpathoptionalThe Simulation Configuration name or server ID.NA
commit_results pathoptional

A new project version is committed with the simulation results. Available values are True or False (default).

NA
verificationpathoptional

Returns the selected verification results. Available values are:

    • All - all verification results are returned.
    • None - no verification results are returned.
    • Fail - verification results with the fail status are returned including the main status and the status of requirements and constraints.

If the verification value is not specified, only the verification results with the fail status are returned when the get_results endpoint is called.

NA
datapathoptionalA set of output parameters, which will be obtained after the simulation is complete.NA
simconfig bodyoptionalThe set of simulation configuration properties along with their corresponding values. The simulation configuration options you specify will take precedence over the initial configuration option from a model.
  • "ALLOW_CONCURRENT_ALLOCATED_ACTIVITIES": true,
  • "AUTOMATIC_PARAMETRIC_RECALCULATION": true,
  • "AUTO_CONVERT_UNITS": true,
  • "AUTO_CREATE_FUML_OBJECT_OF_OUTPUT_PIN": true,
  • "AUTO_START": true,
  • "AUTO_START_ACTIVE_OPTIONS": true,
  • "AUTO_TERMINATE": true,
  • "CLOCK_RATIO": 1,
  • "CLONE_REFERENCES": true,
  • "COMPLETION_EVENTS_AND_TRANSITIONS": true,
  • "CONSTRAINT_FAILURE_AS_BREAKPOINT": true,
  • "DECIMAL_PLACES": 4,
  • "DEFAULT_LANGUAGE": "JavaScript Rhino",
  • "DURATION_SIMULATION_MODE": "MIN", // possible values: MIN, MAX, AVERAGE, RANDOM
  • "ENDTIME": 0,
  • "ENGINES_PRIORITY": "[on]
  •  fUML Engine\n[on]
  •  Interaction Engine\n[on]
  •  SCXML Engine",
  • "INITIALIZE_NUMERICAL_VALUE": false,
  • "INITIALIZE_REFERENCES": true,
  • "NUMBER_OF_RUNS": 0,
  • "NUMBER_OF_STEPS": 0,
  • "PASS_CALLER_CONTEXT": true,
  • "RECORD_TIMESTAMP": false,
  • "REMEMBER_FAILURE_STATUS": true,
  • "RESULT_LOCATION": "Results",
  • "RUN_FORKS_IN_PARALLEL": true,
  • "SOLVE_AFTER_INITIALIZATION": true,
  • "START_TIME": 0,
  • "STATE_ACTIVATION_SEMANTICS": "BEFORE_ENTRY", // possible values: "BEFORE_ENTRY", "AFTER_ENTRY"
  • "STEP_DELAY": 0,
  • "STEP_SIZE": 0,
  • "TERMINATE_BEHAVIOR_ON_EXCEPTION_THROWN": true,
  • "TERMINATE_NESTED_BEHAVIORS": true,
  • "TERMINATE_STREAMING_BEHAVIORS_BY_OUTPUT_PARAMETER_MULTIPLICITY": false,
  • "TIME_UNIT": "MILLISECOND",
  • "TIME_VALUE": "Model-based Clock Test::Clock::time",
  • "TIME_VARIABLE_NAME": "simtime",
  • "TREAT_ALL_CLASSIFIERS_AS_ACTIVE": true,
  • "USE_FUML_DECISION_SEMANTICS": false


Code Block
titleRequest and response examples
 # SpaceCraftMassRollup sample

parameters = {
    "inputs":
   {
       "telecom.antenna.me":10,
        "telecom.amplifier.me":20
   },
 "outputs": 
    [ 
        "me",
        "propulsion.me",
        "propulsion.tank.me",
        "propulsion.thruster.me",
        "telecom.me",
        "telecom.antenna.me",
        "telecom.amplifier.me"
    ] 
}
        
client.simulate('SpacecraftMassRollup_SimWeb', config='spacecraft mass analysis', commit_results=False, data=json.dumps(parameters))

...

Code Block
titleRequest example with simulation options specified in a request body
from pyST import simconfig   // imports simulation configuration class that allows using autocompletion to specify simulation options

simOptions = {
"simconfig":
   {
        option.AUTO_START: true,
        option.DURATION_SIMULATION_MODE: "MIN",
        option.ENDTIME: 50,
        option.TERMINATE_NESTED_BEHAVIORS: false
   }
}
 

client.run('OntologicalBehaviorModeling', config='Ontological Configurable', data=json.dumps(simOptions))


Note

To enable the autocompletion option for specifying the simulation in Jupyter, use from pyST import simconfig

Image Modified

Get simulation status

...


This request gets the status of a specific simulation. If the model has a UI mockup, Time Series Chart, Timeline Chart, or HTML Table, you can use the URL provided in the 'ui' or indexUI' key to open the specified UI.

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of a specific simulation.


Code Block
titleRequest and response examples
client.get_status('77d0c496-c1e2-42cd-8ba4-04e4c7f359d3')
 
{'state': 'RUNNING',
 'simulationId': '77d0c496-c1e2-42cd-8ba4-04e4c7f359d3',
 'simulationTime': '0 ms',
 'indexUI': 'http://nm-simulation.dsone.3ds.com/simulation/api/ui/index/77d0c496-c1e2-42cd-8ba4-04e4c7f359d3?pages=Coffee%20Machine.html&pages=Water%20Heating%20Element.html&pages=Wallet.html',
 'project': 'CoffeeMachine',
 'config': 'Coffee Machine',
 'elapsedTime': 0,
 'podName': 'simulation-deployment-6989d5dfc9-r6llk',
 'ui': ['http://nm-simulation.dsone.3ds.com/simulation/api/ui/77d0c496-c1e2-42cd-8ba4-04e4c7f359d3/Coffee%20Machine.html',
  'http://nm-simulation.dsone.3ds.com/simulation/api/ui/77d0c496-c1e2-42cd-8ba4-04e4c7f359d3/Water%20Heating%20Element.html',
  'http://nm-simulation.dsone.3ds.com/simulation/api/ui/77d0c496-c1e2-42cd-8ba4-04e4c7f359d3/Wallet.html']}


client.get_status('ce8c8215-0515-43fd-9d34-92d1d7a95d87')
 
{'state': 'COMPLETED',
 'simulationId': 'ce8c8215-0515-43fd-9d34-92d1d7a95d87',
 'simulationTime': '3000 ms',
 'project': 'SpacecraftMassRollup',
 'config': 'spacecraft mass analysis',
 'elapsedTime': 6598}
 
 
client.get_status('b7bdf933-f58d-4e7e-b73b-8370c60485cd')
 
{'state': 'QUEUED',
 'queueNumber': 3,
 'simulationId': 'b7bdf933-f58d-4e7e-b73b-8370c60485cd',
 'simulationTime': '0 ms',
 'project': 'CarBrakingAnalysis',
 'elapsedTime': 52}

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of the running simulation.
variablespathoptionalThe set of simulation variables that should be obtained. If no variables are specified, the values of all simulation variables are returned.

Set simulation variables

Panel
borderColorlightgrey
borderWidth1
borderStylesolid

client.set_variables(<simulation_id>, variables=json.dumps(<parameters>))


This request provides request provides a list of simulation variables with values.

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of the running simulation.
variablespathrequiredThe set of simulation variables with values that should be used during the current simulation.
contextpathoptionalThe context ID.
property_pathpathoptionalThe property path of the context specified using property names or IDs.


Code Block
titleRequest and response examples
var = {
 "variables":
 {
 "position": 40
 }
}

client.set_variables('23ceff24-28fa-47e4-b29f-b6b60b4b12e3', variables=json.dumps(var))

...

Panel
borderColorlightgrey
borderWidth1
borderStylesolid

client.pause(<simulation_id>)


This request pauses the execution of the specified simulation.

The following table describes the parameters used in the REST API request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of the running simulation.


Resume simulation

Panel
borderColorlightgrey
borderWidth1
borderStylesolid

client.resume(<simulation_id>)


This request resumes the execution of the specified simulation.

The following table describes the parameters used in the REST API request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of the running simulation.


Get simulation results

Panel
borderColorlightgrey
borderWidth1
borderStylesolid

client.get_result(<simulation_id>)


This request returns the results of the specified simulation. If the OutputParameters tag of the executed Simulation Configuration is specified, the results are provided according to the OutputParameters tag value. If If a Time Series or Timeline chart is specified for the Simulation Configuration, the chart data is returned in the JSON format.

The figure below demonstrates how to specify input and output parameters.

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of the running simulation.


Get the list of running simulations

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
simulation_idpathrequiredThe ID of a specific simulation.


Check for Simulation Configurations

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
projectpathrequiredThe Teamwork Cloud project name or ID.
versionpathoptionalThe Teamwork Cloud project version.
branchpathoptionalThe project branch name or ID. If the branch is omitted, the trunk is used instead.


Get Simulation Configurations

...

The following table describes the parameters used in the request:

the filter parameter is 
ParameterInRequired or optionalDescription
projectpathrequiredThe Teamwork Cloud project name or ID.
versionpathoptionalThe Teamwork Cloud project version.
branchpathoptionalThe project branch name or ID. If the branch is omitted, the trunk is used instead.
elementpathoptionalThe qualified name or server ID of the element to be executed.
filterpathoptional

Returns Simulations Configurations with a specified UI tag for a particular project. The only possible value for

the filter parameter is ui.

Only Simulations Configurations having at least one of the following UI elements are returned:

  • Frame
  • Table
  • TimeSeries chart
  • Timeline chart


Get Simulation Configuration descriptor

...


This REST API request retrieves Simulation Configuration data (description, execution target, time step, input  input and output parameters) from the specified project. The set of input and output parameters is specified using the Input Parameters and Output Parameters properties of a Simulation Configuration. The figure below demonstrates how to specify input and output parameters.

...

The following table describes the parameters used in the request:

ParameterInRequired or optionalDescription
projectpathrequiredThe Teamwork Cloud project name or ID.
versionpathoptionalThe Teamwork Cloud project version.
branchpathoptionalThe project branch name or ID. If the branch is omitted, the trunk is used instead.
configpathoptionalThe Simulation Configuration name or server ID.


Code Block
titleRequest and response examples
 client.get_descriptor('SpacecraftMassPollup_SimWeb', config='spacecraft mass analysis')

{'config': 'spacecraft mass analysis',
 'description': 'Simulation Config that is dedicated to run spacecraft mass rollup.',
 'model': 'spacecraft',
 'parameters': {'inputs': [{'parameter': 'telecom.amplifier.me',
    'value': 32.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]},
   {'parameter': 'telecom.antenna.me',
    'value': 32.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]},
   {'parameter': 'propulsion.tank.me',
    'value': 68.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]},
   {'parameter': 'propulsion.thruster.me',
    'value': 68.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]}],
  'outputs': [{'parameter': 'telecom.me',
    'value': 32.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]},
   {'parameter': 'propulsion.me',
    'value': 68.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]},
   {'parameter': 'me',
    'value': 95.0,
    'type': 'mass[kilogram]',
    'unit': 'kilogram',
    'requirements': [{'id': '1',
      'text': 'Estimated mass shall be less than allocated mass'}]}]}}


client.get_descriptor('BouncingBall', config='Run BouncingBall')


{'config': 'Run BouncingBall',
 'description': 'Simulation Config dedicated to run simulation with bouncingBall.fmu.',
 'model': 'bouncingBall',
 'timeStep': '10 ms' 
 }

...