Cameo Systems Modeler 2021x
Refresh2
User Manual
No Magic, Inc., a Dassault Systèmes company, 2021
All material contained herein is considered proprietary information owned by No Magic, Inc. and is not
to be shared, copied, or reproduced by any means. All information copyright 1998-2021 by No Magic,
Incorporated, a Dassault Systèmes company. All Rights Reserved.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
Contents
Support 5
Introducing 3DSupport App 6
The 3DEXPERIENCE ID 6
Accessing the 3DSupport App 7
Transition to 3DSupport App for Customers eligible for Data
Migration 7
Troubleshooting 8
Contacts 9
Support policies 10
More information about Dassault Systèmes support model 10
SysML modeling 11
General capabilities 750
Legal notices 3470
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
3
Docs of other versions
• Cameo Systems Modeler 2021x Refresh11
• Cameo Systems Modeler 2021x2
• Cameo Systems Modeler 19.0 LTR SP43
• Cameo Systems Modeler 19.0 LTR SP34
• Cameo Systems Modeler 19.0 LTR SP25
• Cameo Systems Modeler 19.0 LRT SP16
• Cameo Systems Modeler 19.0 LTR7
• Cameo Systems Modeler 18.58
• Cameo Systems Modeler 18.49
• Cameo Systems Modeler 18.310
• Cameo Systems Modeler 18.211
This is the home page of Cameo Systems Modeler documentation.
Cameo Systems Modeler is based on the award-winning MagicDraw modeling platform. The solution
retains all the best diagramming, collaboration, persistence, and documentation capabilities while
offering more customized capabilities tailored to systems engineering needs.
The documentation of Cameo Systems Modeler is a package that includes the documentation of these
products and plugins:
MagicDraw Documentation12
Introduces the main features of modeling tool: working with projects, UML 2 modeling and
diagramming, collaboration capabilities, and many more core features.
SysML Plugin Documentation13
1 https://docs.nomagic.com/display/CSM2021xR1
2 https://docs.nomagic.com/display/CSM2021x/Cameo+Systems+Modeler+Documentation
3 https://docs.nomagic.com/display/CSM190SP4/Cameo+Systems+Modeler+Documentation
4 https://docs.nomagic.com/display/CSM190SP3/Cameo+Systems+Modeler+Documentation
5 https://docs.nomagic.com/display/CSM190SP2
6 https://docs.nomagic.com/display/CSM190SP1/Cameo+Systems+Modeler+Documentation
7 https://docs.nomagic.com/display/CSM190/Cameo+Systems+Modeler+Documentation
8 https://docs.nomagic.com/display/CSM185/Cameo+Systems+Modeler+Documentation
9 https://docs.nomagic.com/display/CSM184/Cameo+Systems+Modeler+Documentation
10 https://docs.nomagic.com/display/CSM183/Cameo+Systems+Modeler+Documentation
11 https://docs.nomagic.com/display/CSM182/Cameo+Systems+Modeler+Documentation
12 https://docs.nomagic.com/display/MD2021xR2/MagicDraw+Documentation
13 https://docs.nomagic.com/display/SYSMLP2021xR2/SysML+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
4
Provides descriptions of SysML diagrams and elements, plus introduces SysML specific features as
well as gives guidelines for building systems.
Cameo Requirements Modeler Plugin Documentation14
Guides you through the import, export, and management of SysML requirements.
Cameo Simulation Toolkit Documentation15
Provides instructions on how to test the system reactions to user interaction or predefined testing
data and execution scenarios.
Installation and licensing16
Provides the instructions about how to install modeling tool and plugins, add or remove licenses,
perform activation.
Support
Beginning June 1, 2021, No Magic customers are supported through
Dassault Systèmes’ support model, provided by No Magic experts.
14 https://docs.nomagic.com/display/CRMP2021xR2/Cameo+Requirements+Modeler+Plugin+Documentation
15 https://docs.nomagic.com/display/CST2021xR2/Cameo+Simulation+Toolkit+Documentation
16 https://docs.nomagic.com/display/NMDOC/Installation+and+licensing
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
5
Introducing 3DSupport App
Technical customer support is provided through the Dassault Systèmes’ support tool - 3DSupport
App. The 3DSupport App is the new support tool based on 3DEXPERIENCE platform technology.
Using the 3DSupport App, you can do the following:
• Create new service requests (support tickets)
• Manage and track active service requests
The current No Magic Customer support system17 is in a read-only mode for a limited time with
the ability to access, view and get export reports18 of your reported issues.
support@nomagic.com19 email address is no longer used to provide product support services
from June 1, 2021. 3DSupport App is the only channel for submitting support enquiries.
This email address will remain available until August 31, 2021 for customer support transition
related questions only.
The 3DEXPERIENCE ID
17 http://knowledgebase.nomagic.com/
18 https://docs.nomagic.com/display/NMDOC/Support+Data+Migration#SupportDataMigration-export_tickets
19 mailto:support@nomagic.com
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
6
You need a 3DEXPERIENCE ID to access the Dassault Systèmes Support site. If you have already logged
in to Dassault Systèmes’ support tools before, you probably have a 3DEXPERIENCE ID.
If you don‘t have a 3DEXPERIENCE ID or are not sure if you have one, please check
the 3DEXPERIENCE ID creation and validation20 page.
Other resources you can access with your 3DEXPERIENCE ID:
• Software download (documentation is included in the software). See more information on how to
access and download software21.
• Knowledge Base22, which includes Questions & Answers, existing bug reports.
Accessing the 3DSupport App
The 3DSupport App is dedicated to customers with a valid support contract (software assurance/ALC annual license contract).
Connect and submit a service request via 3DSupport App23
Transition to 3DSupport App for Customers eligible for Data
Migration
The No Magic legacy support customers who are eligible for support data migration24, have been
transferred to Dassault Systèmes’ support model as described in the following table.
Date
No Magic/Dassault
Systèmes actions
March 26, 2021
1st email communication titled No
Magic Customer Support transition –
preparation is sent
May
Migration26 of closed tickets.
May 27, 2021
2nd email communication titled No
Magic Customer Support transition
is sent
Available customer action
3DEXPERIENCE ID creation and
validation25
20 https://docs.nomagic.com/display/NMDOC/3DEXPERIENCE+ID+creation+and+validation
21 https://docs.nomagic.com/display/CATIA/Downloading+installation+files
22 https://support.3ds.com/knowledge-base/
23 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
24 https://docs.nomagic.com/display/NMDOC/Support+Data+Migration
25 https://docs.nomagic.com/display/NMDOC/3DEXPERIENCE+ID+creation+and+validation
26 https://docs.nomagic.com/display/NMDOC/Support+Data+Migration
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
7
Date
May 31- June 1, 2021
No Magic/Dassault
Systèmes actions
2 automated emails are sent about:
Available customer action
Login to 3DSupport App27
• support role granted to you,
• account to access Dassault
Systèmes Support Services.
June 1, 2021
• migration28of in-progress
tickets
• No Magic legacy Customer
System restricted to a readonly mode
Continue communications on your
migrated tickets in 3DSupport App29
Troubleshooting
Q: I have not received emails about accessing 3DSupport App30 or
other communication emails.
A: Check if you have a 3DEXPERIENCE ID31.
If you do not have one - contact your company dedicated Security Administrator for Dassault Systèmes.
Consult your IT or asset department for help.
If you are not able to identify your Security Administrator, or if they have not yet been
designated, contact us(see page 9).
Q: I receive an 'Access is denied' error message, when connecting to 3DSupport
App32.
27 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
28 https://docs.nomagic.com/display/NMDOC/Support+Data+Migration
29 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
30 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
31 https://docs.nomagic.com/display/NMDOC/3DEXPERIENCE+ID+creation+and+validation
32 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
8
A: You do not have a support role. Contact your company dedicated Security Administrator for
Dassault Systèmes to get the support role. Consult your IT or asset department for help.
It takes up to 24 hours to take an effect after the support role has been granted by the Security
Administrator. Until then you will get an 'Access is denied' error message.
If you are not able to identify your Security Administrator, or if they have not yet been
designated, contact us(see page 9).
Q: I can not submit a service request from my 3DSupport App33.
A: Support contract has expired for your company/Site. Contact your sales representative.
Q: I do not see migrated legacy support tickets on 3DSupport App34 after I login
into it. What should I do?
A: Contact support@nomagic.com35 and provide your 3DEXPERIENCE ID36 email.
Contacts
If you are not able to identify your Security Administrator, or if they have not yet been designated,
contact
Dassault Systèmes’ global Call Center37
or support@nomagic.com38
33 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
34 https://docs.nomagic.com/display/NMDOC/Access+3DSupport+App
35 mailto:support@nomagic.com
36 https://docs.nomagic.com/display/NMDOC/3DEXPERIENCE+ID+creation+and+validation
37 https://www.3ds.com/support/contact/call-us/
38 mailto:CATIA.NoMagic.Media@3ds.com
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
9
Support policies
See support policies For Licensed Programs39
See Lifecycle policy for supported releases40 (you need a 3DEXPERIENCE ID41 to access this content)
More information about Dassault Systèmes support model
New customer onboarding42
Discover 3DSupport App for customers43
44
39 https://www.3ds.com/terms/support-policies/
40 https://media.3ds.com/support/3ds/support/policies-offers/lifecycle-policy/
41 https://docs.nomagic.com/display/NMDOC/3DEXPERIENCE+ID+creation+and+validation
42 https://www.3ds.com/support/new-customer/onboarding/
43 https://www.3ds.com/support/discover-3dsupport-app/discover-3dsupport-app-for-customers/
44 https://docs.nomagic.com/display/NMDOC/Support
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
10
SysML modeling
No Magic, Inc., a Dassault Systèmes company, 2021
Contents
SysML 1.6 support 10
Conjugated Interface Block 11
Interface Block with reversed direction prefixes of Flow Properties. 11
Binding Connector notation 11
The Binding Connector notation. 12
«AddFlowPropertyValueOnNestedPortAction» stereotype 12
The «AddFlowPropertyValueOnNestedPortAction» stereotype in profile. 12
AdjunctProperty principal type 12
The comparison of principal type changes in 2021x version and earlier
versions. 13
FlowDirection, FeatureDirection and ControlValue enumerations 13
The comparison of enumeration in 2021x version and earlier versions. 13
The Value Type compartment 13
The comparison of Value Type compartments in 2021x version and earlier
versions. 14
Other 14
Getting started 14
Understanding the user interface 15
Main menu 16
Toolbars 18
Model Browser 20
Image Library tab 51
Changing interface style 53
Switching to System Engineer perspective 55
Creating SysML projects 55
Creating the blank SysML project 56
Creating MagicGrid projects 56
Creating SysML project from template 57
Opening SysML projects 58
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
3
Contents
Opening previously created projects 59
Opening projects saved with modeling tool 17.0 or earlier 59
Opening sample models 60
Switching between multiple projects 60
Creating a diagram 62
SysML Plugin User Guide 64
Organizing your model 65
Using packages 65
Diagrams ownership 67
Libraries and profiles 71
Requirements management 72
The main features of model based Requirements. 73
Gather 73
Import, interchange and synchronize 73
Relate 73
Visualize and analyze 73
Collaborate 74
Verify 74
Tailor and Extend 74
Publish 74
Creating requirements 75
Importing text-based requirements 78
Requirements decomposition 78
Requirements numbering 82
Requirements gap and coverage analysis 84
Tracing requirement changes in Teamwork Cloud 85
Requirements verification 86
Generating requirement document 93
Requirement coverage analysis 96
Item Flow management 105
Creating Item Flow 106
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
4
Contents
Item Flow Manager dialog 110
Modeling structure with Blocks 111
Defining Blocks in Block Definition Diagram 112
Decomposing Blocks 119
Defining interfaces using ports 152
Connecting Blocks in SysML Internal Block Diagram 174
SysML specific compartments 195
Using Units 199
Initial Values 217
Creating Interface Control Document tables 226
Rollup Pattern Wizard 229
Layout templates 243
Diagram aspects 246
Automatic Instantiation wizard 249
Extract Structure Wizard 259
Behavior to structure synchronization 267
Synchronizing behavior to structure. 268
Checking behavior to structure synchronization 268
Handling inconsistencies between structure and behavior models 268
Creating structure models by behavior models 274
Contextual relationships 275
Contextual Relationships Options 276
Creating and displaying contextual relationships 277
Creating contextual Satisfy 284
Modeling parametric constraints 285
Introduction 285
Creating parametric constraints 286
Defining Constraint Blocks 293
SysML Parametric Diagram context 294
Creating Constraint Parameters automatically 295
Extracting Constraint from Requirement 297
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
5
Contents
Parametric Equation Wizard 300
Displaying parameters and properties 304
Creating Binding Connector 315
Creating reusable constraint libraries 316
Wrapping MATLAB functions 316
Functional analysis 319
Use Cases 319
Modeling functional flows with Activities 348
Functional Allocations 352
State Machines 360
Modeling interactions with Sequence Diagrams 362
Views and Viewpoints 392
Generating report documents 392
Generating Word document report 392
Exporting tables to Excel or CSV files 393
Publishing projects to Cameo Collaborator for Alfresco 395
Publishing projects to Cameo Collaborator for TWC 395
Working with model elements 397
Model elements and symbols. 398
Creating elements from other resources 399
Importing data from Excel and CSV files 400
SysML Callout Style 405
Displaying Rake icon on symbol 406
Managing element groups 407
Defining hyperlinks 409
Creating pins automatically for Opaque Action 412
Validation 413
Purpose 413
Validation suites 413
Validating your model 414
Invalid elements representation 414
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
6
Contents
SysML validation suites 416
SysML active validation suites 418
SysML validation rules 422
Starting the validation 489
Validation results marker bar 489
Validation Results panel 490
Validation dialog 495
Custom validation 497
Glossary of SysML concepts 517
Diagram descriptions 517
Element descriptions 543
Getting help and support 574
FAQ 574
Forum 574
Customer Support 574
Reporting issues 574
Reporting Issues Through Email 575
Commenting on a Support Issue 576
Customer Support Levels 576
End-of-Life Policy 577
Reporting Issues 578
Improving performance 581
Customizations 582
Customizing environment options 582
Configuration files 586
Setting project options 590
Most common shortcut keys 593
Assigning shortcut keys 596
Specifying project properties 598
Forward compatibility 601
Developer Guide 602
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
7
Contents
SysML Profile 602
MD Customization for SysML Profile 603
SysML Profile API Changes 604
SysML classes for open API 605
SysML 1.6 Profile 605
Importing External Simulation Models 606
Simulink import 607
What is Simulink? 607
Simulink file import 607
Co-simulation 614
FMU import 614
What is FMI? 614
What is FMU? 614
FMU import 614
Co-Simulation 621
Modelica import 621
What is Modelica? 621
Modelica file import 621
Exporting to External Simulation Models 623
Introduction 624
OMG SysPhS standard implementation 624
Simulink export 624
Introduction 625
Exporting model to the Simulink file 625
Reusing and referencing Simulink models 628
Using SysPhs constant and SysPhs variable 631
SysML supported and unsupported concepts 634
Simulating exported Simulink models 635
Modelica export 672
Introduction 673
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
8
Contents
Preparing SysML model for Modelica export 673
Exporting model to the Modelica file 674
Partial model export to the Modelica file 676
Instance Specifications export to the Modelica file 678
Reusing and referencing existing Modelica models 679
Building Modelica libraries in SysML 683
Using SysPhs variable and SysPhs constant 689
Supported and unsupported SysML concepts 691
Simulating exported Modelica models 692
Advanced Modelica features 701
Sample models 703
Creating a simple model 706
Electric Circuit sample 715
Hydraulics sample 722
Humidifier system sample 729
Signal processor sample 733
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
9
The Systems Modeling Language (SysML) is designed to unify the diverse modeling languages currently
used by system engineers, the same way Unified Modeling Language (UML) is used in the software
industry to unify the modeling languages used by software engineers. SysML supports the
specifications, analysis, designs, verifications, and validations of a broad range of complex systems.
In addition to supporting all SysML diagrams (Block Definition, Internal Block, Package, Parametric,
Requirements, Activity, and Use Case diagrams), SysML Plugin also makes it possible for MagicDraw to
support additional specifications, analysis, designs, and validations on a broader range of systems and
system integrations.
The SysML Plugin documentation consists of the following sections:
Docs of other versions
• SysML Plugin 2021x Refresh11
• SysML Plugin 2021x2
• SysML Plugin 19.0 LTR SP43
• SysML Plugin 19.0 LTR SP34
• SysML Plugin 19.0 LTR SP25
• SysML Plugin 19.0 LTR SP16
• SysML Plugin 19.0 LTR7
• SysML Plugin 18.58
• SysML Plugin 18.49
• SysML Plugin 18.310
• SysML Plugin 18.2
11
SysML 1.6 support
On this page
• Conjugated Interface Block(see page 11)
• Binding Connector notation(see page 11)
• «AddFlowPropertyValueOnNestedPortAction» stereotype(see page 12)
• AdjunctProperty principal type(see page 12)
• FlowDirection, FeatureDirection and ControlValue enumerations(see page 13)
• The Value Type compartment(see page 13)
• Other(see page 14)
Modeling tools developed by No Magic, Inc. always support the latest versions of standards. The SysML
Plugin 2021x supports the SysML 1.6 specification12.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
10
Conjugated Interface Block
One more way to model conjugated ports is to create the Conjugated Interface Block which has the
same features as its original Interface Block except that its Directed Features and Flow Properties are
reversed (conjugated). Learn more about Conjugated Interface Block >>(see page 547)
Interface Block with reversed direction prefixes of Flow Properties.
Binding Connector notation
The ability to change the Binding Connector notation keyword from "equal" to sign "=". Learn how to
create Binding Connector >>13
13 https://docs.nomagic.com/display/SYSMLP2021x/Creating+Binding+Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
11
The Binding Connector notation.
«AddFlowPropertyValueOnNestedPortAction» stereotype
The new stereotype «AddFlowPropertyValueOnNestedPortAction» is created which enables values
added to a flow property to propagate out through a specified behavioral port of an object executing
the action, rather than all behavior ports exposing the flow property. It also enables values added to a
flow property to propagate into objects.
The «AddFlowPropertyValueOnNestedPortAction» stereotype in
profile.
AdjunctProperty principal type
The AdjunctProperty principal type is changed from Element to NamedElement.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
12
The comparison of principal type changes in 2021x version and earlier
versions.
FlowDirection, FeatureDirection
and ControlValue enumerations
The FlowDirection, FeatureDirection and ControlValue enumerations are renamed
to FlowDirectionKind, FeatureDirectionKind and ControlValueKind respectively.
The comparison of enumeration in 2021x version and earlier versions.
The Value Type compartment
The Value Type14 compartment attributes is renamed to properties.
14 https://docs.nomagic.com/display/SYSMLP2021x/Value+Type
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
13
The comparison of Value Type compartments in 2021x version and
earlier versions.
Other
• The «PropertySpecificType» stereotype is renamed to «pst».
• The initialValue compartment is renamed to initial values15.
• The s ignal receptions compartment is renamed to receptions.
Getting started
The SysML plugin retains all capabilities of modeling tool architecture modeling environment with
System Engineer perspective. With this plugin, modeling tool adds support for additional specification,
analysis, design, and validation of a broad range of systems and system integrations.
To start working with the SysML Plugin it must be installed in the MagicDraw tool. How to install
plugin to a modeling tool >>16
If you have the Cameo Systems Modeler17 you can start using SysML features at once.
How to start:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
14
SysML sample models
The SysML sample projects are available in the <md.install.dir>/samples/SysML directory.
Understanding the user interface
The user interface is where you will control your software installation. The MagicDraw window contains
the following:
• Main menu18
• Main toolbars19
• Model Browser20
• Diagram toolbars21
• Diagram palette22
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
15
Watch this demo to get familiar with MagicDraw working environment, main concepts, and
functions.
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
https://www.youtube.com/watch?v=0B76lH-QtrM&
Related pages
• Main menu(see page 16)
• Toolbars(see page 18)
• Model Browser(see page 20)
• Image Library tab(see page 51)
• Changing interface style(see page 53)
• Switching to System Engineer perspective(see page 55)
Main menu
The main menu located at the top of the modeling tool window contains the following elements:
Menu
element
Description
File
Contains basic project management related commands, e.g., New Project23, Open Project24,
and Save Project25. Among other actions, this menu also allows you to import data from external
sources, export a project, or print diagrams26.
Edit
Use this menu when working with diagrams on the Diagram pane. The Edit menu contains the
commands for selecting, cutting, copying and pasting27 symbols or entire diagrams, and finding
elements in the current project.
View
Contains commands allowing you to zoom in or zoom out28 of a diagram, use and customize a
diagram grid29, manage diagram tabs (if you have several open diagrams) and customize the
toolbars30 of your modeling tool.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
16
Menu
element
Description
Layout
Use this menu for managing the layout31 of the symbols on an active diagram. To enable certain
Layout menu commands, you must select more than one symbol.
Diagrams
Allows you to create a new diagram32, access diagram wizards and history, and create a custom
diagram type33.
Options
Use this menu to specify project options34 and environment options35, select or customize
perspectives36, and choose the style for your modeling tool.
Tools
Contains the set of commands allowing you to execute model transformations37 for converting
models between different modeling domains, generate reports38, evaluate expressions39 on the
actual testing model, generate code for the selected model data, create and organize macros40,
access the DataHub plugin41 and more.
Analyze
Use this menu to access the wizards of different types of diagrams42, create implementation
matrices, analyze and show model dependencies, compare two project versions43, validate a
project44, display paths45 or related elements46, and perform other model analysis related
actions.
Collaborat
e
Contains the commands for working with server projects47.
Window
Allows you to manage the layout of different windows in your modeling tool.
Help
Among other actions, this menu allows opening online documentation, managing resources, and
accessing modeling tool-related information.
Customizable menus
You can choose which of these menus are shown/hidden by customizing modeling tool
perspectives48.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
17
Toolbars
Toolbars help to speed up your work when performing commonly used tasks. Your modeling tool has
two types of toolbars:
• Main toolbars - contain commands for basic project related tasks and are located at the top of
the modeling tool window, right under the main menu.
• Diagram toolbars - contain commands for working with diagram symbols and are located at the
top of the diagram pane.
To show or hide different toolbars
• In the main menu, click View, select either Main Toolbars or Diagram Toolbars, and in the
showed menu select/clear the check boxes of the toolbars that you want to show/hide.
• Right-click the desired toolbar area and in the shortcut menu select/clear the check boxes of the
toolbars that you want to show/hide.
Customizing toolbars
You can customize existing toolbars by adding or removing buttons, and also create new custom
toolbars.
To add a new toolbar
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
2. In the Customize Toolbars dialog, select the desired toolbar group and click the Add > New
Toolbar.
3. Enter the name of the new toolbar and click OK.
After completing the above steps, a new toolbar is created in the selected toolbar group, and you can
choose to show/hide it in the shortcut menu of the respective toolbar area. Note that the newly created
toolbar does not have any buttons, so you need to add them after creating it.
To add a new button to a toolbar
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
2. In the Customize Toolbars dialog, select the desired toolbar and click the Add > Button.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
18
3. In the Add Button dialog, select the desired button or command and click OK.
4. Click OK one more time to close the Customize Toolbars dialog.
A new button is added to the selected toolbar. To add more than one button, repeat steps 2 and 3 as
many times as you need.
To remove a toolbar or button
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
2. In the Customize Toolbars dialog, select the toolbar or button you want to remove and click the
Remove button.
After completing the above steps, the selected toolbar or button is removed from the respective
toolbar area or toolbar. Toolbars that have been removed do not appear in the menu for selecting
which toolbars you want to show.
Restoring default toolbars
To undo all the actions for customizing toolbars, open the Customize Toolbars dialog, as
described in step 1 above, and click the Reset to Defaults button.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
19
Model Browser
Model Browser provides a visual representation of the hierarchy of your model elements.
The items in the Model Browser hierarchy can be:
• Compressed – a
plus sign next to an icon indicates that the icon is compressed. This is the
default setting. It means that the element contains other model elements. Click the plus sign to
expand the icon and view its subordinate items.
• Expanded – a
minus sign next to an icon indicates that the icon is fully expanded. Click the
minus sign to collapse the item.
If there is no plus or minus sign next to an icon, it does not contain other model elements.
The Model Browser is a hierarchical navigation tool that allows you to manage your model data,
including packages, components, classes, all UML diagrams, extension mechanisms, and other data.
The Model Browser may be used as an alternative tool to the MagicDraw menus and toolbars. It is
easier to work with project diagrams and data elements using the Model Browser.
You can perform the following operations in the Model Browser:
• Create and specify model elements.
• Copy, cut and paste model elements.
• Delete model elements.
• Drag model elements to the Diagram pane and inside the Model Browser.
• Drag data in the Code engineering sets (you may create data in the root package Model branch,
drag it to the Code Engineering sets, and then the round trip object is created automatically).
• View the hierarchy of all model elements.
• Create a symbol for the selected model element in the current diagram.
• Manage diagrams.
• Manage extension mechanisms, such as constraints, stereotypes, and tagged values.
• Java reverse of a class from the classpath.
• Adjust the code engineering sets.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
20
• Generate code for particular sets.
• Filter visible items by any model type (for example, class, package, operation, component, state,
and others - for both views and dates).
• Sort the visible items of the selected model element.
• Sort all model elements.
• Display search results.
• Display locked elements in the server project.
The Model Browser window has the following tabs:
• Containment tab groups data into the logical sets.
• Structure tab represents deeply nested structures of the structured classifier.
• Inheritance tab represents the model hierarchy of the project.
• Diagrams tab groups diagrams according to the diagrams type or shows them as a list.
• Model Extensions tab represents all predefined and created constraints and stereotypes.
• Search Results tab displays search results.
The Search Results tab is not displayed by default. It appears after you perform searching.
• Lock View tab represents locked elements of the server project.
The Lock View tab is not displayed by default. It can appear if you are working on a server
project. For more information, see Representation of locked elements49.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 32)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Using the Model Browser
Model Browser is displayed when at least one project is open. By default, Model Browser is placed at
the left side of the main window. It is possible to move the Model Browser to any place on the
MagicDraw window. Also, all tabs can be viewed separately and you can set up the Model Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
21
according to your needs by hiding the desired tabs.
To change the size of either part of the Model Browser
• Drag the bar that separates the two parts.
To change the Model Browser position
• Using the Options menu
a. From the Options menu, select Environment. The Environment Options dialog opens.
b. Click on the Browser option group.
c. In the Browser environment options pane, change the Browser Position property to
Right or Left.
• Using Toggle
In the upper-right corner of the selected tab in the Model Browser, click the Toggle auto-hide
or Toggle floating
button.
This action changes the layout of the MagicDraw interface.
To close or reopen the desired tab of the Model Browser
• Using the Window menu, choose the Model Browser tab you want to close or open.
To reset all Model Browser tabs to the default position
• From the Window menu, choose the Reset Windows Configuration command.
To sort items in the Model Browser alphabetically
1. From the Options menu, select Environment. The Environment Options dialog opens.
2. Click the Browser option group.
3. In the Browser options pane, set the Sort Alphabetically value to true (the default value is true).
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 32)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
22
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Containment tab
On this page
• The root package Model(see page 24)
• Code engineering sets(see page 25)
• Containment tab toolbar(see page 25)
• Working with model elements in the Containment tree(see page 27)
The Containment tab displays model data grouped in logical sets. Using the Containment tab, you can
quickly access each model element, change a model element specification, or create a new model
element.
To open the Containment tab, do one of the following
• At the top of the Model Browser, click the Containment tab.
• If the Containment tab is hidden, from the Window menu, select Containment.
You can change some Containment tab properties in the Environment Options dialog50
the Browser options group.
The Containment tab consists of the following two components:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
23
• Containment tab toolbar(see page 25)
• Containment tree(see page 27)
The Containment tree includes
• The root package Model(see page 0):
The Relations branch
The UML Standard Profile
The Hyperlinks branch
• Code engineering sets(see page 0)
The root package Model
The root package Model in the Containment tree is the top model element wherein the entire model
structure is created. The root package Model represents the model element that is named Model. All
model elements are stored in the root package Model. You can create the structure of your project by
creating packages in the root package Model. This helps to distribute model elements into logical
groups.
Along with model elements that are created by the user, the root package Model may contain the
following default items:
• The Relations branch. This branch appears when at least one relationship is created in the
project. The Relations branch collects all relationships from the particular owner. For example, if
the Relations branch is in the root package Model, that means, all relationships from the root
package Model are listed in the Relations branch owned by the root package Model. The Relations
branch can exist in other elements which may have inner elements and relations among these
elements. For example, in packages, classes, and others.
• The UML Standard Profile package. This is a profile that is included in every MagicDraw project.
It contains a list of stereotypes, data types, and other elements from the UML 2 metamodel. By
default, the UML Standard Profile is hidden. To display the UML Standard Profile, click the Options
button, and in the shortcut menu, choose Show Auxiliary Resources.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
24
.
There can be more standard profiles (such as SysML, UPDM, Java, and others).
We highly recommend not to modify our provided standard profiles and libraries as it
could cause problems with version updates, plugins, core MagicDraw tool malfunctions,
and model corruptions.
• The File View package. This package appears when at least one code engineering set is created.
The File View package contains components that are created on code reverse and represents
source files.
• The Hyperlinks branch. This branch appears when at least one hyperlink is added to the
particular element. The Hyperlinks branch contains the list of hyperlinks to the file, element/
symbol, or web page.
Code engineering sets
Code engineering is available in Professional, Architect, and Enterprise editions.
Code engineering sets can be considered a gateway between your source code and model data. Using
these sets, you can perform Java, C++, IDL, CORBA IDL, and EJB 2.0 round-trip code engineering, that is,
code generation and reverse engineering.
To display Code engineering sets
•
In the Containment tab toolbar, click the Options
Code Engineering Sets check box.
button, then click to select the Show
In the Code engineering Set branch, you can create a new code engineering set, generate code, and
perform other actions.
Containment tab toolbar
The Containment tab toolbar contains the following buttons:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
25
Button
Tooltip text
Description
Collapse All
Collapse all of the currently expanded elements in
the Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Open in New Tree
Opens the contents of the selected element in a new
tab of the Model Browser. The selected element
becomes the root node of the new tree.
You can choose to open elements in:
• New Containment Tree
• New Structure Tree
• New Inheritance Tree
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
Options
Click to open the Options menu and then select:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
26
• Filter - opens the Items Filter dialog
wherein you can select element types to be
visible in the Containment tree.
• Show Auxiliary Resources - shows or hides
modules and profiles that are used in your
project.
• Show Applied Stereotypes - shows or
hides the applied stereotypes next to the
element name in the Containment tree.
• Show Full Types - shows or hides the full
types of typed elements (for example,
operations, attributes, relationships, and
other) in the Containment tree.
• Show Code Engineering Sets - shows or
hides the code engineering sets.
The same actions you may perform using the shortcut menu of the Containment tree.
Working with model elements in the Containment tree
You can work with elements in the Containment tree using the commands available from the selected
element's shortcut menu.
Particular actions are available for particular elements.
The shortcut menu contains the following commands:
Command
Function
Create Element51
Creates a new element inside the selected element.
This command is available if the selected element can be
edited.
Create Diagram52
Creates a new diagram inside the selected element.
This command is available if the selected element can be
edited.
51 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements
52 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
27
Create Relation >
Outgoing / Incoming53
Creates a new relation to or from the selected element.
Specification54
Opens the element Specification window wherein you can specify
various element properties.
Validation55
Open the validation commands for checking the accuracy,
completeness, and correctness of a model.
Go To56
Opens or selects the item associated with the selected element. The
item may be a diagram, model element, or hyperlink.
Refactor57
Converts the selected element to the element indicated by a user.
Related Elements58
Opens a list of functions available for the selected element.
Tools
Opens a list with tools that are available for the selected element.
Depends on the selected element.
Stereotype59
Opens the drop-down list, wherein you can apply an existing
stereotype, or create a new one.
Find60
Opens the Find dialog.
Apply Profiles
Opens the list of the available to apply profiles.
• This command is available in the package, model,
and system boundary shortcut menu.
• Only custom profiles can be applied.
• To see this command you have to expand the
shortcut menu, that is, click on the little arrow at
the bottom of the shortcut menu.
53 https://docs.nomagic.com/display/MDTWRT/Creating+a+relationship
54 https://docs.nomagic.com/display/MDTWRT/Specification+window
55 https://docs.nomagic.com/display/MDTWRT/Validation
56 https://docs.nomagic.com/display/MDTWRT/Manage+Navigation
57 https://docs.nomagic.com/display/MDTWRT/Changing+diagram+type
58 https://docs.nomagic.com/display/MDTWRT/Analyzing+usages+and+dependencies
59 https://docs.nomagic.com/display/MDTWRT/Stereotype
60 https://docs.nomagic.com/display/MDTWRT/Find+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
28
Project Usages61
Opens share packages and export packages to new project
commands.
This command is available in the package and model
shortcut menu.
Generate Code
Framework
Generates code for the selected item. Opens the Notification
Window with the information.
Check Syntax
Checks syntax in the model according to the default code
engineering language. Opens the Notification Window with the
information.
Generate Report62
Opens the list of the available report templates.
Reverse from Classpath
This command is available in the Class shortcut menu.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 32)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Structure tab
On this page
• Opening the Structure tab(see page 30)
• Displaying Inherited Structure option(see page 31)
• Nesting Satisfied Requirements option(see page 31)
61 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
62 https://docs.nomagic.com/display/MDTWRT/Generating+reports+from+the+Containment+tree
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
29
The Structure browser allows you to browse for deeply nested structures of the structured classifier in
your model. The node: diameter : mm represents the property: diameter : mm of the classifier:
Wheel and also the property: w : Wheel is the property of the classifier: WheelAssembly, as shown in
the image below:
The Structure tab in the Model Browser.
Opening the Structure tab
To open the Structure tab
1. From the main menu, select Window > Structure.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
30
The property nodes, which are shown inside the property node (the parent property node), are the
properties of the classifier that type the parent property node.
In the Structure tab, you can open any selected element in a new tree.
To open a new tree
1. Select the element and in the Structure tab toolbar click
.
Displaying Inherited Structure option
The Structure tab can show the properties that are inherited from the generalization classifier.
To display inherited structures from the generalization classifier in the Structure tree
1. Click
on the right of the Structure Browser.
2. Select the Show Inherited Structure option.
Nesting Satisfied Requirements option
The Structure Tab can also show requirements nested within elements that satisfy them.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
31
If the relationship is contextualized, its context is considered as well. Learn more about
contextual relationships >>(see page 275)
To nest requirements under the satisfying elements
1. Click
on the right of the Structure Browser.
2. Select the Nest Satisfied Requirements option.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 32)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
32
Inheritance tab
On this page
• Inheritance tab toolbar(see page 33)
• Working with model elements in the Inheritance tree(see page 34)
The Inheritance tab represents classifiers (e.g., packages, data types, and stereotypes) hierarchy within
your project. Inheritance according to the UML Specification is shown using the generalization
relationship.
If a model element has no generalization relationship, it will not be represented in the
Inheritance tab.
To open a new Inheritance tree
1. Open the Containment, Structure, or Inheritance tab.
2. In the open tab toolbar, click
and then select Open in New Inheritance Tree.
You can change some Inheritance tab properties in the Environment Options dialog63 the
Browser options group.
The Inheritance tab consists of the following two components:
• Inheritance tab toolbar
• Inheritance tree
Inheritance tab toolbar
The Inheritance tab toolbar contains the following buttons
Button
Tooltip text
Description
Collapse All
Collapse all currently expanded elements in the
Containment tree.
63 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
33
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Open in New Tree
Opens the contents of the selected element in a new
tab of the Model Browser. The selected element
becomes the root node of the new tree.
You can choose to open elements in:
• New Containment Tree
• New Structure Tree
• New Inheritance Tree
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
Options
Click to open the Options menu and then select:
• Invert Tree - inverts the tree hierarchy shows the child
element at the top of the hierarchy.
• Show Applied Stereotypes - shows or
hides the applied
stereotypes next to the element name in the
Containment tree.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
34
Working with model elements in the Inheritance tree
You can work with elements in the Inheritance tree using the commands available from the selected
element's shortcut menu. The shortcut menu contains the following commands:
Command
Function
Select in Containment Tree
Opens the Containment tab and selects the
current element in the Containment tree.
Select in Structure Tree
Opens the Structure tab and the structured classifier is selected.
This command is available for structured classifiers (SysML).
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Diagrams tab
On this page
• Diagrams tab toolbar(see page 36)
• Working with model elements in the Diagrams tree(see page 37)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
35
The Diagrams tab in the Model Browser represents diagrams created in your project.
In the Diagrams tab, diagrams are by default grouped by their types (see the image above).
To open the Diagrams tab, do one of the following
• At the top of the Model Browser, click the Diagrams tab.
• If the Diagrams tab is hidden, from the Window menu, select Diagrams.
You can change some Diagrams tab properties in the Environment Options dialog64 the
Browser options group.
The Diagrams tab consists of the following two components:
• Diagrams tab toolbar
• Diagrams tree
Diagrams tab toolbar
The Diagrams tab toolbar contains the following button:
Butt
on
Tooltip text
Description
Collapse All
Collapse all of the current elements in the Containment tree.
Collapse Selected
Recursively
Collapses only the selected node and all subnodes in that node.
64 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
36
Group by Diagram
Name
Groups diagrams into packages by the first symbol of their name when the
model contains more than 99 diagrams.
Favorites
Opens the Favorites menu for choosing
to do one of the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the Containment tree
Quick Find
Opens the Quick Find dialog.
Some of these actions may be performed right in the shortcut menu of the Diagrams tree.
Working with model elements in the Diagrams tree
You can work with diagrams in the Diagrams tree using the commands available in the selected
diagram's shortcut menu. These are the commonly used commands:
Command
Function
Open
Opens the selected diagram.
Print
Opens the Print dialog.
Active for the open diagram only.
Select in Containment
Tree
Opens the Containment tab and selects the current element in the Containment
tree.
Group by Diagram Name
Groups diagrams into packages by the first symbol of their name when the model
contains more than 99 diagrams.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
37
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Model Extensions tab
On this page
• Model Extensions tab toolbar(see page 39)
• Working with model elements in the Model Extensions tree(see page 39)
The Model Extensions tab contains all Stereotypes that are predefined and created manually in the
project. In this tree, you can create, review, copy/paste, and delete extension mechanisms.
To open the Model Extensions tab, do one of the following
• At the top of the Model Browser, click the Model Extensions tab.
• If the Model Extensions tab is hidden, from the Window menu, select Model Extensions
You can change some Model Extensions tab properties in the Environment Options
dialog65 the Browser options group.
Model Extensions tab consists of the following two components:
• Model Extensions tab toolbar
• Model Extensions tree
65 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
38
Model Extensions tab toolbar
Model Extensions tab toolbar contains the following buttons:
Button
Tooltip text
Description
Collapse All
Collapse all of the currently elements in the
Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes
in that node.
Group by Profiles
Groups extensions by the profiles.
Group by
Metaclasses
Groups extensions by the metaclasses.
Favorites
Opens the Favorites menu for choosing to do
one of the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
The same actions you may perform using the shortcut menu of the Model Extensions tree.
Working with model elements in the Model Extensions tree
You can work with elements in the Model Extension tree using the commands available from the
selected element's shortcut menu.
For more information about commands available from the shortcut menu in the Model
Browser, see Working with model elements in the Model Browser66.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
66 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements+in+the+Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
39
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Search Results tab
On this page
• Search Results tab toolbar(see page 41)
• Working with model elements in the Search Results tree(see page 42)
The Search Results tab is used to display search results. This tab opens only after performing the
search67 by pressing Ctrl+Shift+F, or by clicking Edit > Find.
The tab is not displayed when performing a Quick Find68.
The Search Results tab consists of two components:
• Search Results tab toolbar (see page 0)
• Search Results tree(see page 0)
67 https://docs.nomagic.com/display/MDTWRT/Find+dialog
68 https://docs.nomagic.com/display/MDTWRT/Quick+Find+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
40
Search Results tab toolbar
The Search Results tab toolbars contains the following buttons:
Button
Tool tip text
Description
Collapse All
Collapse all of the currently elements in the
Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Find...
Opens the Find dialog.
Clear Results
Clears the results of the previous search.
Rerun Search
Reruns a search with the already specified search
criteria. Search results are updated according to
changes done in the model.
Save Search Results
Saves as a smart package either the search options or
the search results.
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Options
Click to open the Options menu and then select:
• Show Applied Stereotypes - shows or
hides the applied stereotypes next to the
element name in the Containment tree.
• Show Full Types - shows or hides the full
types of typed elements (for example,
operations, attributes, relationships, and
other) in the Containment tree.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
41
The same actions you may perform using the shortcut menu of the Search Results tree. For
more information about commands available from the shortcut menu in the Model Browser,
see Working with model elements in the Model Browser69.
Working with model elements in the Search Results tree
The search results in the Search Results tree are displayed in the following two packages:
• Found in loaded diagrams – symbols that have been found in the diagram(s) are displayed in
this package.
• Found in model – elements that have been found in the model data are displayed in this
package.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Lock View tab
On this page
• Lock View tab toolbar(see page 43)
• Working with model elements in the Lock View tree(see page 44)
The Lock View tab is displayed only when working with server projects70.
The Lock View tab is used to display what was locked in the project (locked elements, project structure,
symbol styles) and by which users. Next to the locked element, you can see the name of the user who
69 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements+in+the+Model+Browser
70 https://docs.nomagic.com/display/MDTWRT/Collaborative+modeling
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
42
has locked it. Using the Filter by user list in the Lock View tab toolbar, you can see the elements, locked
by the particular user.
To open the Lock View tab, do one of the following
• At the top of the Model Browser, click the Lock View tab.
• If the Containment tab is hidden, from the Window menu, select Lock View.
The Locked Elements tab consists of the following two components:
• Lock View tab toolbar
• Lock View tree
Lock View tab toolbar
The Lock View tab toolbar contains the following:
• Update Lock Information button
• Filter by user list
• Collapse All button
• Collapse Selected Recursively button
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
43
Using the Filter by user list you can select to display only the elements locked by the particular user.
Working with model elements in the Lock View tree
You can work with elements in the Lock View tree using the commands available from the selected
element's shortcut menu. The shortcut menu contains the following commands:
Command
Function
Lock
Locks or unlocks the particular element for edit.
Select in Containment
Tree
Opens the Containment tab and selects the
current element in the Containment tree.
Select in Inheritance
Tree
Opens the Inheritance tab and selects
the current element in the Inheritance tree.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
44
• Working with model elements in the Model Browser(see page 50)
Zoom tab
The Zoom tab enables you to preview a selected diagram. To select a diagram, go to the Containment
or Diagram tab. You can also use the Zoom tab to zoom in or out of the active diagram.
The Zoom tab in the quick properties panel.
To open the Zoom tab, do one of the following
• In the Model Browser, click the Zoom tab.
• On the Window menu, click Zoom.
To zoom in or out of the active diagram
• In the Zoom tab, drag corners of the blue square.
To quickly access any part of the diagram
• In the Zoom tab, drag the blue square to the desired part of the diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
45
The selected diagram part will be displayed on the diagram pane.
To fit the diagram to the window
• In the Zoom tab, on the blue square
, click the Fit in Window button or press CTRL+W.
To show the Diagram Zoom Slider
1. From the Options menu, select Environment. The Environment Options window opens (see
the figure above).
2. Select the Browser options group.
3. In the Browser category, select the Show Diagram Zoom Slider check box.
The Diagram Zoom Slider is displayed in the Zoom tab (see the figure above).
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Documentation tab
The Documentation tab shows information associated with a selected model element in the Model
Browser or on a diagram pane.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
46
The Documentation tab in the quick properties panel.
To open the Documentation tab, do one of the following
• In the Model Browser, click the Documentation tab.
• On the Window menu, click Documentation.
If there is no documentation for the selected element, the text area is empty.
To write documentation for the selected model element
• In the Documentation tab, click the text area and type the text.
To turn on the HTML text
• In the Documentation tab, click the HTML check box.
The HTML toolbar opens and you can type the HTML text.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
47
Properties tab
The Properties tab at the bottom of the Model Browser allows you to quickly access basic information
about a selected element or diagram.
An example of the Properties tab in the Quick properties panel
Multiple selection
• If multiple elements or symbols of different kinds are selected, only their common
properties are displayed in the Properties tab.
• If more than 10 elements in the Containment tree or symbols on the diagram pane are
selected, properties are displayed only by request. You need to click the link Show
common properties for the selected items.
To open the Properties tab, do one of the following
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
48
• In the Model Browser, click the Properties tab.
• On the Window menu, click Properties.
The Properties tab includes the following tabs:
Tab name
Description
Element
Contains the main properties of the element's or diagram's
specification.
Symbol
Contains the element symbol's properties.
This tab is available for symbols only.
Tags
Contains the tagged values of the selected element.
When you click the Show Only Applied Stereotypes Tags button,
only the tabs with values are listed.
Language properties
Contains the same data as the Language Properties property
group in the element's Specification window.
This tab is available only for the elements used for code
generation, that is, class, attribute, operation.
Traceability
Contains the same data as the Traceability property group in the
element's Specification window.
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
49
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Working with model elements in the Model Browser
In the Model Browser you can do the various actions with model elements, such as, rename, cut, copy,
delete, and others. These actions are available from the particular model element shortcut menu. See
the list of the concrete actions in the following table.
Command
Function
Rename
Switches the element name into the edit mode.
You can also press F2 for this.
Copy
Copies the selected element.
Copy URL
Copies a model element URL to a
clipboard.
Copy Element Hyperlink
Copies the hyperlink of the selected element.
Cut
Cuts the selected element.
Paste
Pastes the copied element.
Delete
Deletes the selected element.
To copy/cut and paste the selected model element between different projects
1. Select the model element in the Model Browser.
2. From the model element shortcut menu, select Copy or Cut.
3. Open the project to which you want to paste the selected element(s).
4. Select the container, where you wish to paste the element(s).
5. From the container's shortcut menu, select Paste.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
50
To change the location of an element in the Model Browser
1. Select the element in the Model Browser.
2. Drag it to the new location (possible owner).
Related pages
• Using the Model Browser(see page 21)
• Containment tab(see page 23)
• Structure tab(see page 29)
• Inheritance tab(see page 33)
• Diagrams tab(see page 35)
• Model Extensions tab(see page 38)
• Search Results tab(see page 40)
• Lock View tab(see page 42)
• Zoom tab(see page 45)
• Documentation tab(see page 46)
• Properties tab(see page 48)
• Working with model elements in the Model Browser(see page 50)
Image Library tab
The Image Library tab displays images grouped in logical sets. You can use a bundled image collection
or add your own set of images.
To open the Image Library tab
• From the Window menu, select Image Library.
The Image Library tab opens on the right side of the window.
To add your own set of images into Image Library, do either
• Compress a folder (.zip) with a set of desired images and place it in the MagicDraw installation
directory: \data\imagelibraries\commonsymbols.
Image formats
You can add images of the following formats: .gif, .jpg, .jpeg, .svg, .png, .wmf.
• Create an Image Library plugin. Follow up an example Writing plugins71.
Using the Image Library tab, you can apply an image on symbol72.
71 https://docs.nomagic.com/display/MDTWRT/Writing+plugins
72 https://docs.nomagic.com/display/MDTWRT/Applying+image
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
51
The Image Library tab consist of three components:
• Quick filter(see page 53)
• Image Library tree(see page 53)
• Image Library Preview area(see page 53)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
52
Quick filter
You can search for images in the Whole hierarchy or Recently used tabs using one of the following
way:
• Simple Search: type what you want to find in the hierarchy.
• Pattern Search: type * to find any images.
For example, type "*Bank" if you want to find "Bank" somewhere in the hierarchy.
Image Library tree
You can drag an image from the Image Library tree directly:
• On the symbol (image is applied for symbol).
• To the diagram pane (image shape is created).
Image Library Preview area
You can preview the image before applying it on the symbol in the Image Library Preview area.
Changing interface style
You can change the appearance of your modeling tool windows, dialogs and menus. The Look and
Feel menu allows you to personalize the user interface using a number of predefined styles and
themes. You can also create a custom theme with your favorite colors and fonts.
To change the interface style
1. In the main menu of a modeling tool, select Options > Look and Feel.
2. Select the desired style from the list of available styles.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
53
The Look and Feel menu options.
Important
• The selected style may not look exactly like the style in related operating systems.
• Depending on your operating system, some style options may be unavailable.
Creating a custom theme
Define your own interface style by creating a custom theme. The Custom theme option is located in the
Look and Feel Themes submenu which also offers 8 predefined themes. The Custom theme allows
you to specify text fonts and sizes of the desired interface elements as well as their colors.
To create a custom theme
1. In the main menu of a modeling tool, select Options > Look and Feel > Metal.
2. In the same menu, select Options > Look and Feel > Look and Feel Themes > Custom.
3. In the open dialog, change the values of the desired style properties.
4. Click OK.
Look and Feel Themes
The themes listed in the Look and Feel Themes submenu are only available if you select the
Metal style.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
54
Switching to System Engineer perspective
If yuo use the SysML Plugin which is installed in the MagicDraw tool, you need to switch to System
Engineer perspective. It provides set of features dedicated to system engineers.
To switch to the System Engineer perspective
1. On the main menu, click Options > Perspectives > Perspectives.
2. In the Select Perspective dialog, select System Engineer.
3. Click the Apply button.
Creating SysML projects
There are three ways to create the SysML projects:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
55
• Creating the blank SysML project(see page 55)
• Creating MagicGrid projects(see page 56)
• Creating SysML project from template(see page 56)
Creating the blank SysML project
To create a blank SysML project
1. Do one of the following:
• Select File > New Project.
• On the main toolbar, click the New Project button.
• Press Ctr+Shiftl+N.
2. In the New Project dialog, under Systems Engineering, select SysML Project.
3. Specify name and location.
4. Click OK when you are done.
The blank project is created and stored in your file system with defined name.
Creating MagicGrid projects
To create a MagicGrid project
1. Do one of the following:
• Select File>New Project.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
56
• On the main toolbar, click the New Project button.
• Press Ctr+Shiftl+N.
2. In the New Project dialog, under Systems Engineering, select either:
- MagicGridQuickStart - to create a project with a structure and guidelines on how to use the
MagicGrid approach.
- MagicGridBlank - to create a blank project with a predefined package structure of the the
MagicGrid approach.
3. Specify name and location.
4. Click OK when you are done.
The MagicGrid project is created and stored in your file system with defined name.
Creating SysML project from template
To create a SysML project from a template
1. Do one of the following:
• Select File>New Project.
• On the main toolbar, click the New Project button.
• Press Ctr+Shiftl+N.
2. In the New Project dialog, under Other, select Project from Template.
3. Specify name and location.
4. Select the SysML template.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
57
5. Click OK when you are done.
Related pages
• Working with projects73
Opening SysML projects
73 https://docs.nomagic.com/display/MDTWRT/Working+with+projects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
58
On this page
• Opening sample models(see page 60)
The native modeling tool format is *.mdzip and *.mdxml.
Opening previously created projects
To edit or review previously created projects, do one of the following
• From the File menu, select Open Project. In the Open dialog, select the project and click Open.
• On the main toolbar, click the Open Project button.
• Drag the project from the open window of your file system to modeling tool. The project starts
immediately.
• Double-click the project file with the *.mdxml or *.mdzip extension. A new modeling tool window
opens.
To start modeling tool with the last project you worked on, select Options > Environment and
set Open Last Project on Startup to true.
XMI 2.4 / UML 2.4 is the main file format, used by MagicDraw for storing models. This format does not
specify how to store diagrams, so MagicDraw stores and opens diagram data in XMI extension sections.
Thus if you use MagicDraw to open an XMI file exported from another UML tool, only the model will be
opened, but not diagrams or views.
Accordingly, if you open a MagicDraw file in another UML tool, diagrams or views will not be opened in
that tool (unless the tool supports MagicDraw-specific file extensions).
You may open more than one project within the same MagicDraw window. A separate workspace will
be created for each opened project.
Opening projects saved with modeling tool 17.0 or earlier
Projects saved with modeling tool 17.0 or earlier can be as well opened with modeling tool of later
versions.
To update older models, simply open them with modeling tool of later versions and then re-save them.
Models will be automatically converted to the latest format.
In case your model is stored in a project that uses other projects, you should open and re-save the used
projects first and only then do the same with the main project. Be advised that having only the used
projects successfully converted to the latest format, you may expect the smooth conversion of the
project that uses them.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
59
If you convert only the project and leave the used projects saved in an old format, you will not be able
to modify the projects used in the read-write accessibility mode.
Opening sample models
You can use already prepared sample models to try product features, explore diagram examples,
or analyze case studies.
To open the sample model
1. Do one of the following:
- Open the modeling tool directory <modeling tool installation directory>\samples.
- Open your modeling tool and on the right side of the screen select Samples.
2. Select an appropriate sample model.
The sample model is opened.
Related pages
• Working with projects74
Switching between multiple projects
You may need to manage several projects at the same time, and MagicDraw allows you to do that
easily. All open projects are held in separate workspaces. Different active projects may exchange data.
Entities from one project can be copied or moved to another.
74 https://docs.nomagic.com/display/MDTWRT/Working+with+projects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
60
To switch between open projects, do one of the following
• From File menu, select Switch Projects and then click the name of the project you want to
switch to.
• On the main toolbar, click
and then select the name of the project you want to switch to.
To close all open projects
• Select Close All Projects from the File menu. The Question message appears.
Choose the way your projects will be closed:
Yes
The project you are currently closing will be saved (its name appears in the question). The dialog is
displayed again when the next project closes.
Yes To
All
Save all projects without prompting. The Save dialog will not appear for each open project.
No
Project you are currently closing will not be saved.
The dialog is displayed again when the next project closes.
No To All
All the projects will be closed without saving or further prompting.
Cancel
Cancel saving projects.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
61
To exchange model elements between open projects
•
Use the Cut, Copy, and Paste commands from the Edit menu or the selected element's
shortcut menu, or the appropriate shortcut keys: Ctrl + X, Ctrl + C, Ctrl + V.
Creating a diagram
You can create any diagram in one of the following ways:
• By using the diagram creation dialog(see page 62)
• From the Model Browser(see page 63)
• From the element's Specification window(see page 63)
• By using the diagram creation wizard(see page 64)
To create a diagram using the diagram creation dialog
1. In the Model Browser, select the owner for the new diagram.
2. Do one of the following:
• Press Ctrl+N.
• On the main toolbar, click
.
• From the main menu, select Diagrams > Create Diagram.
• Open the Content diagram and on its palette, click the Create Diagram button.
3. When the diagram creation dialog opens, in the Create Diagram box, enter the diagram type
you are searching for.
Use the Camel Case, when searching for diagrams:
• Type the first letters (for example, "CD" to find "Class Diagram")
• Type lower-case letters (for example, "cd" instead of "CD")
• Skip the spacers (for example, "cv3" works as well as "CV-3" or "cv-3")
• Perform a partial search (for example, "ibd" finds SysML Internal Block diagram)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
62
4. Select the diagram.
Press Esc or click outside the dialog to close the diagram creation dialog without creating
the diagram.
To create a diagram from the Model Browser
1. Right-click the Package, Profile, Model, or other element where you want to create the diagram.
2. From the shortcut menu, point to Create Diagram, then click the diagram type you want to
create.
You can also create diagrams for multiple elements at the same time. Press and hold
the Shift key while selecting several elements in your model.
To create a diagram from the element’s Specification window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
63
1. Open the Inner Elements property group in the Package’s, Profile’s, Model’s, or other element’s
Specification window.
2. Click the Create button. From the button's shortcut menu select Create Diagram, then choose
the new diagram type. The Specification window of the new diagram opens.
3. In the open window, type the diagram name and click Close.
To create a diagram using the diagram creation wizard
1. Do one of the following:
• On the main menu, click Diagrams > Diagram Wizards, then select the appropriate
wizard depending on the type of diagram you want to create.
• On the main menu, click Analyze > Model Visualizer. The Model Visualizer dialog with
the list of available diagram creation wizards is opened. Select one and click the Start
button.
2. Follow the steps of the selected diagram type creation wizard.
The newly created diagram is automatically named after the owner. If you create several diagrams of
the same type under the same owner, their names are numbered.
75
Related pages
• Diagramming76
77
SysML Plugin User Guide
Welcome to the SysML Plugin user guide! It is intended to give an assistance to you while using
MagicDraw with SysML Plugin or Cameo Systems Modeler78. Go ahead – read the sections below or use
the Search box to find a specific topic.
75 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
76 https://docs.nomagic.com/display/MDTWRT/Diagramming
77 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
78 https://docs.nomagic.com/display/CSM185/Cameo+Systems+Modeler+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
64
• Organizing your model(see page 65)
• Requirements management(see page 72)
• Item Flow management(see page 105)
• Modeling structure with Blocks(see page 111)
• Behavior to structure synchronization(see page 267)
• Contextual relationships(see page 275)
• Modeling parametric constraints(see page 285)
• Functional analysis(see page 319)
• Views and Viewpoints(see page 392)
• Generating report documents(see page 392)
• Working with model elements(see page 397)
• Validation(see page 413)
• Glossary of SysML concepts(see page 517)
• Getting help and support(see page 574)
• Customizations(see page 582)
• Forward compatibility(see page 601)
Organizing your model
Before modeling your system, we strongly recommend that you organize your model structure. The
correct organization of packages, diagrams, model libraries, and profiles allows you to reuse them
easily, ensures quick navigation, control the access, manage configurations, etc.
For more details read the following pages:
• Using packages(see page 65)
• Diagrams ownership(see page 67)
• Libraries and profiles(see page 71)
Using packages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
65
There are multiple ways to organize your model into Packages79. The S. Friedenthal in the "Practical
Guide to SysML" recommends organizing your model structure in the following ways:
• By system hierarchy (e.g., system level, subsystem level, component level).
• By process life cycle where each model subpackage represents a stage in the process (e.g.,
requirements analysis, system design).
• By teams that are working on the model (e.g., Requirements Team, Integrated Product Team
(IPT) 1, 2).
• By the type of model elements contained in it (e.g., requirements, behavior, structure).
• By model elements that are likely to change together.
• By model elements organized to support reuse (e.g., model libraries).
• By other logical or cohesive groupings of model elements based on defined model-partitioning
criteria.
• A combination of the preceding.
You can also organize your model structure according to your internal methodologies. The procedures
of managing Packages in the modeling tool are provided in the Working with packages80 and Package
import81 pages.
In the following figure, the Packages are organized according to the MagicGrid approach. You can use
this predefined package structure by creating a MagicGridBlank project. You can find the example and
guidelines of how to use the MagicGrid approach by creating the MagicGridQuickStart project. How to
create MagicGrid projects >>
82
79 https://docs.nomagic.com/display/MDTWRT/Package
80 https://docs.nomagic.com/display/MDTWRT/Working+with+packages
81 https://docs.nomagic.com/display/MDTWRT/Package+import
82 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
66
The Package structure of MagicGrid project.
Diagrams ownership
The correct organization of your diagrams in the model ensures model consistency, reusability of
required views, and quick navigation in the model. In the following sections you can learn about:
• SysML diagram taxonomy(see page 68)
• Diagram owners(see page 69)
• Find diagrams in your project(see page 69)
• Working with diagrams(see page 69)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
67
SysML diagram taxonomy
The figure below shows the SysML diagram taxonomy, which reflects how SysML diagrams are
organized. You can use nine kinds of SysML diagrams when modeling:
•
•
•
•
•
•
•
•
•
Requirement Diagram83
SysML Block Definition Diagram84
SysML Internal Block Diagram85
SysML Package Diagram86
SysML Parametric Diagram87
SysML Sequence Diagram88
SysML State Machine Diagram89
SysML Activity Diagram90
SysML Use Case Diagram91
The relationship between SysML diagrams is Generalization92:
• Activity, Sequence, State Machine, and Use Case diagrams are types of behavior diagrams.
• Block Definition, Internal Block, and Package diagrams are types of structure diagrams.
• Parametric diagrams are types of Internal Block diagrams.
• Requirement diagrams are a category by themselves.
SysML diagram taxonomy.
83 https://docs.nomagic.com/display/SYSMLPTWRT/Requirement+Diagram
84 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Block+Definition+Diagram
85 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Internal+Block+Diagram
86 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Package+Diagram
87 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Parametric+Diagram
88 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Sequence+Diagram
89 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+State+Machine+Diagram
90 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Activity+Diagram
91 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Use+Case+Diagram
92 https://docs.nomagic.com/display/MDTWRT/Generalization
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
68
Diagram owners
The owner that a diagram can represent depends on the diagram kind you are creating. All SysML
diagrams and their available owners are listed in the following table.
A Behavior diagram must have a context which is always a behavior which owns this diagram.
SysML Diagram
Owner
Requirement Diagram(see page 518)
Package93, Model94, Requirement(see page 564)
SysML Block Definition Diagram(see page 519)
Package95, Model96, Block(see page 545), Constraint
Block(see page 548)
SysML Internal Block Diagram(see page 520)
Block(see page 545)
SysML Parametric Diagram(see page 523)
Block(see page 545)
SysML Package Diagram(see page 521)
Package97, Model98, Profile99
SysML Activity Diagram(see page 525)
Activity
SysML Sequence Diagram(see page 524)
Interaction100
SysML State Machine Diagram(see page 524)
State Machine(see page 360)
SysML Use Case Diagram(see page 526)
Package101, Model102
Find diagrams in your project
You can find all diagrams of your model by using the Diagrams tab(see page 35) in the Model Browser(see
page 20). The Diagrams tab103 page describes how to open and use this tab.
Working with diagrams
All basic procedures of working with SysML diagrams can be found in the following pages:
93 https://docs.nomagic.com/display/MDTWRT/Package
94 https://docs.nomagic.com/display/MDTWRT/Model
95 https://docs.nomagic.com/display/MDTWRT/Package
96 https://docs.nomagic.com/display/MDTWRT/Model
97 https://docs.nomagic.com/display/MDTWRT/Package
98 https://docs.nomagic.com/display/MDTWRT/Model
99 https://docs.nomagic.com/display/MDTWRT/Profile
100 https://docs.nomagic.com/display/MDTWRT/Interaction
101 https://docs.nomagic.com/display/MDTWRT/Package
102 https://docs.nomagic.com/display/MDTWRT/Model
103 https://docs.nomagic.com/display/MDTWRT/Diagrams+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
69
• Creating diagrams104
• Opening diagrams105
• Dragging objects106
• Displaying elements107
• Copying and pasting objects108
• Using diagram tabs109
• Specifying diagram properties110
• Specifying diagram style properties111
• Diagram name and its context name synchronization112
• Diagram frame113
• Drawing diagram shapes114
• Overviewing other diagrams115
• Legends116
• Table with diagram information117
• Changing diagram type118
• Working with symbols of model elements119
• Working with paths and relationships120
• Smart manipulation121
• Compartments122
• Smart shape sizing123
• Selection and multiple selections124
• Copying text or images to diagrams125
• Nesting image shapes126
• Zooming127
• Using the grid128
• Pusher and magnet129
• Layout130
• Saving as image131
• Layout templates132
104 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
105 https://docs.nomagic.com/display/MDTWRT/Opening+diagrams
106 https://docs.nomagic.com/display/MDTWRT/Dragging+objects
107 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
108 https://docs.nomagic.com/display/MDTWRT/Copying+and+pasting+objects
109 https://docs.nomagic.com/display/MDTWRT/Using+diagram+tabs
110 https://docs.nomagic.com/display/MDTWRT/Specifying+diagram+properties
111 https://docs.nomagic.com/display/MDTWRT/Specifying+diagram+style+properties
112 https://docs.nomagic.com/display/MDTWRT/Diagram+name+and+its+context+name+synchronization
113 https://docs.nomagic.com/display/MDTWRT/Diagram+frame
114 https://docs.nomagic.com/display/MDTWRT/Drawing+diagram+shapes
115 https://docs.nomagic.com/display/MDTWRT/Overviewing+other+diagrams
116 https://docs.nomagic.com/display/MDTWRT/Legends
117 https://docs.nomagic.com/display/MDTWRT/Table+with+diagram+information
118 https://docs.nomagic.com/display/MDTWRT/Changing+diagram+type
119 https://docs.nomagic.com/display/MDTWRT/Working+with+symbols+of+model+elements
120 https://docs.nomagic.com/display/MDTWRT/Working+with+paths+and+relationships
121 https://docs.nomagic.com/display/MDTWRT/Smart+manipulation
122 https://docs.nomagic.com/display/MDTWRT/Compartments
123 https://docs.nomagic.com/display/MDTWRT/Smart+shape+sizing
124 https://docs.nomagic.com/display/MDTWRT/Selection+and+multiple+selections
125 https://docs.nomagic.com/display/MDTWRT/Copying+text+or+images+to+diagrams
126 https://docs.nomagic.com/display/MDTWRT/Nesting+image+shapes
127 https://docs.nomagic.com/display/MDTWRT/Zooming
128 https://docs.nomagic.com/display/MDTWRT/Using+the+grid
129 https://docs.nomagic.com/display/MDTWRT/Pusher+and+magnet
130 https://docs.nomagic.com/display/MDTWRT/Layout
131 https://docs.nomagic.com/display/MDTWRT/Saving+as+image
132 https://docs.nomagic.com/display/MDTWRT/Layout+templates
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
70
• Diagram aspects133
• Complete diagrams134
• Printing135
• Presentation Mode136
Related pages
• SysML Parametric Diagram context(see page 294)
• SysML Internal Block Diagram context(see page 151)
Libraries and profiles
In life, all large things are built from smaller parts. This also applies to large projects. For large models
with several weakly dependent parts, it is advisable to split them into several separate project files (or
project resources in a collaborative environment), also called used projects.
Project partitioning opens up additional possibilities, such as:
• Reusing the same model part (e.g. library) in several projects.
• Separate administration of different project parts. You can define different access rights in
the collaborative environment for each used project. Separate developers or teams of
developers can be assigned for each resource, clearly establishing responsibility boundaries and
preventing inadvertent modifications when these projects are used in the read-only mode.
• Separate versioning. Each used project can have its own version history with its own tagging and
branching, life cycle of development, feature-freezes, and stable releases.
• Increased performance on very large projects. Whenever used projects are marked as
loaded manually, a user can selectively load only the necessary parts of the project. He/she can
also open the isolated used project separately.
A model can be decomposed into separate projects. A used project is a part that can be separated from
the main project and can be used for a specific purpose.
MagicDraw supports the following used project accessibility modes:
• Read-only
• Read-write
The decision to use a project as read-only or read-write depends on the maturity of a project and
the organization ownership or responsibility rules for projects using other projects. If the library in the
used project is complete (changes to it are not expected / likely / possible) it should be used in readonly mode. If a project is developed by a separate team and this team is responsible for this project and
the project is reused in another project, it is recommended to use this project as read-only. This
prevents inadvertent changes in the project by another team.
If a project is actively developed and evolves together with the projects that are using it, this project
can be used in read-write accessibility mode. In this case you must be careful and remember that your
changes to the used project will be reflected in other projects. Using Teamwork Cloud might be
133 https://docs.nomagic.com/display/MDTWRT/Diagram+aspects
134 https://docs.nomagic.com/display/MDTWRT/Complete+diagrams
135 https://docs.nomagic.com/display/MDTWRT/Printing
136 https://docs.nomagic.com/display/MDTWRT/Presentation+Mode
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
71
advisable in this case. And, of course, there can be mixed usage situations - when a project is used as
read-only in some projects and as read-write in others.
Instructions on how to partition your project can be found in the following pages:
• Decomposing model137
• Composing model138
• Managing used projects139
• Automated project usages140
• Maintaining decomposed model integrity141
• Validating project integrity142
Requirements management
You can manage your system's Requirements by identifying, describing them, and then organizing
them in your project. Requirements management ensures that text-based requirements verify and
meet the needs of stakeholders. The following figure illustrates the abilities of modeling Requirements
in the modeling tool.
137 https://docs.nomagic.com/display/MDTWRT/Decomposing+model
138 https://docs.nomagic.com/display/MDTWRT/Composing+model
139 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
140 https://docs.nomagic.com/display/MDTWRT/Automated+project+usages
141 https://docs.nomagic.com/display/MDTWRT/Maintaining+decomposed+model+integrity
142 https://docs.nomagic.com/display/MDTWRT/Validating+project+integrity
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
72
The main features of model based Requirements.
Gather
Capture requirements in the Requirement Diagram and Requirements Table by creating or importing
them in the modeling tool. The Requirement Diagram(see page 518) provides modeling constructs to
represent text-based requirements and relates them to other modeling elements. A Requirement
Table(see page 538) is used to type requirements into a spreadsheet-like table.
Import, interchange and synchronize
Once requirements are gathered you can support them as follows:
• Importing requirements(see page 78) in ReqIF format from requirement management tools, such
as IBM DOORS 9.4 and 9.5, IBM DOORS Next Generation, PTC Integrity, Polarion, Siemens
Teamcenter, and other tools.
• Importing and syncing requirements from the most commonly used formats, such as Comma
Separated Values (CSV) and Microsoft Excel.
• Keep data synchronized in real time with IBM DOORS or Cameo Requirements+ via No Magic's
Cameo DataHub.
Relate
The relationships among requirements and design elements (such as SysML Blocks, Test Cases, Use
Cases, etc.) create a great value in your model. You can create relationships143 such as derive, refine,
satisfy, or verify directly in the Requirement Diagram(see page 518) or the Requirement Matrices(see page
528).
Visualize and analyze
Requirements can be visualized in multiple predefined views:
• Requirement Table(see page 538).
• Requirement Diagram(see page 518).
• Predefined Relation Maps(see page 535).
• Matrices.(see page 528)
• Metric Tables144.
The requirements analysis encompasses those tasks that determine the needs or conditions a new or
altered product or project must meet. It considers the possibly conflicting requirements of the various
stakeholders by analyzing, documenting, validating, and managing software or system requirements.
• Traceability: visualizing, navigating, and analyzing traces from requirements to architecture,
business processes or other models related to requirements. Manage Changes with powerful
traceability functionality.
143 https://docs.nomagic.com/display/MDTWRT/Creating+a+relationship
144 https://docs.nomagic.com/display/MDTWRT/Metric+table
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
73
• Validation: a facility for evaluating completeness and correctness of the models using built-in and
custom validation suites; e.g., you will find not covered requirements, and it will be faster to
communicate issues to other team members or fix them.
Collaborate
Work on requirements in teams by using the MagicDraw Teamwork Server145 repository, which enables
effective team collaboration, change and configuration management, allows for restricting access to the
project, and multisite support. Use Suspect Links146 to track changes in requirements that are linked to
design elements by satisfy, derive, refine or verify relationships, as well as allow tracking unlinked
requirements and deprecated requirements.
Verify
With the system parameter calculated, you can verify the system requirement and give the verdict on
whether it is satisfied or not. The modeling tool enables you to perform this verification
automatically(see page 86).
Tailor and Extend
• Support for custom requirement types and adding custom properties for requirements.
• Validation of custom rules.
• Ability to customize existing metric suites and introduce your own.
• Customizable report templates for generating Microsoft Word, Excel, PowerPoint, or other types
of documents tailored to the requirements in your specific organization.
• Ability to customize the product so that only the frequently used functionality is visible to the end
user.
• Use OpenAPI or scripts to add additional functionality or automate repeatable modeling tasks.
Publish
• Built-in Microsoft Word Requirements report for publishing full requirements documentation for
communicating to non-model users, reviewing or signing.
• Web portal for requirements projects review by stakeholders. No product installation is required
to read requirements; an automated publishing to web server makes up-to-date requirements
available for a wide audience.
• Fully customizable report templates to fit your organization requirements for document
appearance and contents.
In the following pages you can learn about:
White paper
145 https://docs.nomagic.com/display/TWSTWRT/Teamwork+Server+Documentation
146 https://docs.nomagic.com/display/MDTWRT/Suspect+Links
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
74
• Requirements_Writing_in_SysML.pdf147
Webinar
• Model-Based Requirements Engineering148
Creating requirements
On this page
• Creating requirements in the Containment tree(see page 75)
• Creating requirements in the Requirement diagram(see page 76)
• Creating requirements in the Requirement Table(see page 76)
• Creating a new Requirements(see page 76)
• Adding existing Requirements(see page 77)
• Adding nested Requirements(see page 77)
You can create and represent text-based requirements and relate them to other modeling elements.
The requirements can be depicted in graphical, tabular, or tree structure format. This page provides
instructions for creating requirements in the model. You can create requirements in the:
• Containment tree.(see page 75)
• Requirement Diagram(see page 76).
• Requirement Table(see page 76).
Creating requirements in the Containment tree
If you create Requirements in the Containment tree, the element is created in the Model Browser149.
After that you can represent them on the diagram pane150 by dragging them or in the Requirement
Table151 by adding an existing element.
To create requirements in the Containment tree
1. Open an existing or create a new Requirement Diagram. How to create a new diagram >152
2. In the Containment tree153, right-click the package, or another Requirement where you want to
create or nest a new Requirement.
3. From the shortcut menu, click Create Element.
7 https://docs.nomagic.com/download/attachments/82754539/Requirements_Writing_in_SysML.pdf?
14
api=v2&modificationDate=1507361483070&version=1
148 https://blog.nomagic.com/model-based-requirements-engineering/
149 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
150 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
151 https://docs.nomagic.com/display/CRMPTWRT/Requirement+Table
152 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
153 https://docs.nomagic.com/display/CRMPTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
75
4. In the Create Element dialog, select any type of Requirement.
If you have created your own custom Requirement types, they appear under the Custom
Requirements group.
5. Type a Requirement name.
The new requirement is created in the Model Browser.
Creating requirements in the Requirement diagram
If you create Requirements directly on the diagram pane, the element is created in the Model
Browser154 as well.
To create Requirements on the Requirement Diagram pane
1. Open an existing or create a new Requirement Diagram. How to create a new diagram >155
2. On the diagram pallet156, select a Requirement or other type of requirement button and click on
the diagram pane.
The element is created in the same package where the diagram is stored.
3. On the Requirement shape, type a name, ID, and description.
The Requirement is created and added in the table.
You can find more information about how to work in diagrams on the page Diagramming157.
To select a different owner
1. Hold Shift, click Add New button, and select a Requirement type from the drop-down menu.
The Select Owner dialog opens, enabling you to choose a different owner.
Creating requirements in the Requirement Table
You can create new, nested requirements, or add existing ones in the Requirement Table.
Creating a new Requirements
To create a new Requirement in a Requirement Table
1. Open an existing or create a new Requirement Table. How to create a table >158
2. On the Requirement table toolbar, click the Add New button or press Insert (Ctrl+I for Mac
users). The list of Requirement types opens.
3. Click a desired requirement type. A new line above the first numbered requirement appears.
4. In that empty line, type a requirement name and specify other requirement properties.
154 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
155 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
156 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
157 https://docs.nomagic.com/display/MDTWRT/Diagramming
158 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
76
To select a different owner
1. Hold Shift, click Add New button, and select a Requirement type from the drop-down
menu.
The Select Owner dialog opens, enabling you to choose a different owner.
Adding existing Requirements
To add existing Requirements in a Requirement Table
1. Open an existing or create a new Requirement Table. How to create a table >159
2. Do one of the following:
• On the Requirement table toolbar, click the Add Existing button or press Ctrl + Insert
(Ctrl+I for Mac users). In the Select Requirement dialog, select the requirements you
want to represent in the table and click OK.
• Drag the entire requirements Package from the Containment tree160 and drop it on the
empty Requirement table to represent all its content in the table.
Adding nested Requirements
To add nested Requirement in the Requirement Table
1. Select Requirement you want to nest in the table.
2. Click the Add Nested button or press Alt+Insert (Alt+I for Mac users).
3. Select the desired Requirement type from the drop-down menu.
If you have created your own custom Requirement types, they appear under the Custom
Requirements group in the drop-down menu.
More information about how to work in tables you can find in the following pages:
• Table toolbars161
• Table Criteria area162
• Basic tasks in tables163
Related pages
• Creating diagrams164
• Opening diagrams165
159 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
160 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
161 https://docs.nomagic.com/display/MDTWRT/Table+toolbars
162 https://docs.nomagic.com/display/MDTWRT/Table+Criteria+area
163 https://docs.nomagic.com/display/MDTWRT/Basic+tasks+in+tables
164 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
165 https://docs.nomagic.com/display/MDTWRT/Opening+diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
77
• Dragging objects166
• Relating requirements167
• Table toolbars168
• Table Criteria area169
• Basic tasks in tables170
Importing text-based requirements
It is recommended that you import requirements into a separate project which can be used in
other models as a used project. How to manage used projects >>171
You can import requirements in one of the following ways:
• By importing ReqIF files.172
• By syncing Excel or CSV files with Requirement table.173
• By importing data from Excel or CSV file.174
• By pasting into Requirement table.175
• By pasting into Requirements diagram, or Containment tree.176
• Using Cameo DataHub.177
Requirements decomposition
166 https://docs.nomagic.com/display/MDTWRT/Dragging+objects
167 https://docs.nomagic.com/display/CRMPTWRT/Relating+requirements
168 https://docs.nomagic.com/display/MDTWRT/Table+toolbars
169 https://docs.nomagic.com/display/MDTWRT/Table+Criteria+area
170 https://docs.nomagic.com/display/MDTWRT/Basic+tasks+in+tables
171 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
172 https://docs.nomagic.com/display/CRMPTWRT/Importing+ReqIF+files
173 https://docs.nomagic.com/display/MDTWRT/Sync+with+Excel+or+CSV+files
174 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
175 https://docs.nomagic.com/display/MDTWRT/Basic+tasks+in+tables#Basictasksintables-Copyingandpastingdata
176 https://docs.nomagic.com/display/MDTWRT/Creating+elements+from+other+resources
177 https://docs.nomagic.com/display/CRMPTWRT/Interchanging+of+requirements+using+Cameo+DataHub
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
78
On this page
• Main rules of Requirements decomposition(see page 79)
• Decomposing Requirements(see page 79)
• Creating requirements hierarchy in the Containment tree(see page 79)
• Creating requirements hierarchy in the Requirement Diagram(see page 80)
• Decomposing requirements in the Requirements table(see page 81)
Main rules of Requirements decomposition
The following are the rules for decomposing Requirements:
• If some part of the Requirement is going to be used somewhere else (e.g. some other
Requirement derives (see page 552)from it, or it is subject to decomposition itself), then the
requirement should be decomposed into smaller Requirements.
• If the Requirement has information from different (sub)topics, it should also be decomposed into
sub-requirements.
• If parts of the Requirement are not used by any other Requirement and the Requirement holds
information that naturally describes the same topic or thing, but the text of the Requirement
becomes too long (e.g. 8-10 sentences), it should still be decomposed into several Requirements
for better readability.
Decomposing Requirements
You can decompose Requirements in the following ways:
•
• Creating requirements hierarchy in the Containment tree(see page 79)
• Creating requirements hierarchy in the Requirement Diagram(see page 80)
• Decomposing requirements in the Requirements table(see page 81)
Creating requirements hierarchy in the Containment tree
You can decompose Requirements in the Containment tree(see page 23). The element is created in
the Model Browser178. You can then represent them in the Requirement Diagram(see page 518) by
dragging elements or in the Requirement Table(see page 538) by adding existing elements.
How to create requirements in the Containment tree >>179
In the following figure, the Requirements (see page 564)are decomposed in the Containment tree. For
example, the Item purchase Requirement is decomposed into four sub-Requirements: Purchasing
facilitation, Purchase request for new items, External global repository, and Item request management.
178 https://docs.nomagic.com/display/CRMPTWRT/Understanding+the+user+interface
179 https://docs.nomagic.com/display/CRMPTWRT/Creating+requirements#Creatingrequirements-containment
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
79
The Requirements decomposition in the Containment tree.
Creating requirements hierarchy in the Requirement Diagram
While decomposing Requirements(see page 564) in the Requirement Diagram(see page 518) the following
rules apply:
• A single Requirement Diagram should contain only one nesting level: one main Requirement
shape and one level of its owned Requirements.
• If each nesting level contains only a few Requirements (e.g. 1-4 requirements), a single
Requirement Diagram can contain more than one nesting level.
• If the main Requirement owns more than 5 Requirements they should be refined in a separate
diagram.
How to create Requirements in the Requirement diagram >>180
In the following figure, the the Requirements (see page 564)are decomposed by using the Containment
relationship and represented in the Requirement Diagram(see page 518). For example, the Notification
Requirement is decomposed into two sub-Requirements: Notification about available item and
Notification methods.
180 https://docs.nomagic.com/display/CRMPTWRT/Creating+requirements#Creatingrequirements-diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
80
The Requirements decomposition in the Requirement Diagram.
Decomposing requirements in the Requirements table
You can represent and create Requirements (see page 564)of your system in the Requirements Table(see
page 538). How to create Requirements in the Requirement table >>181
You can decompose Requirements:
• By creating Requirements in the table.182
• After Requirements creation in the table.183
In the following figure, the Requirements (see page 564)are decomposed and displayed hierarchically in
the Requirement Table(see page 538). For example, the Item purchase Requirement is decomposed into
four sub-Requirements: Purchasing facilitation, Purchase request for new items, External global repository,
and Item request management.
Requirements hierarchy mode in table
You can change the Requirements hierarchy in the table by using the Display Mode option.
This option is described in the Table toolbars184 page under the Options toolbar.
1 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+requirements#Creatingrequirements18
tableCreatingrequirementsintheRequirementTable
182 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+requirements#Creatingrequirements-
AddingnestedRequirements
183 https://docs.nomagic.com/display/CRMPTWRT/Nesting+requirements+in+the+Requirements+Table
184 https://docs.nomagic.com/display/MDTWRT/Table+toolbars
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
81
The Requirements decomposition in the Requirement Table.
Sample model
The model used in the figures of this page is the User needs - requirements module for
MagicLibrary sample model that comes with MagicDraw. To open this sample do one of the following:
• Download User needs - requirements module for MagicLibrary.mdzip185.
• Find in modeling tool <modeling tool installation directory>\samples\diagrams\User needs requirements module for MagicLibrary.mdzip.
Requirements numbering
5 https://docs.nomagic.com/download/attachments/17664205/User%20needs%2018
%20requirements%20module%20for%20MagicLibrary.mdzip?
api=v2&modificationDate=1478188681080&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
82
When you create Requirements they are numbered by default with their unique IDs. The default
Requirement IDs in the modeling tool are hierarchical numbers: 1, 1.1, 1.1.1, etc. See the following
figure.
Requirements numbering.
The special validation rules ensure that each Requirement ID in your project is unique. For example, it
is valuable when working with Teamwork Server or Teamwork Cloud and Requirements appear with
the same IDs after commits. The validation rules check that and show errors.
If you want a different Requirement numbering than the default, you can customize 186it manually by
using the Element Numbering dialog187. However, it is not recommended.
Sample model
The model used in the figures of this page is the User needs - requirements module for
MagicLibrary sample model that comes with MagicDraw. To open this sample do one of the following:
186 https://docs.nomagic.com/display/MDTWRT/Generic+numbering+mechanism
187 https://docs.nomagic.com/display/MD185/Element+Numbering+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
83
• Download User needs - requirements module for MagicLibrary.mdzip188.
• Find in modeling tool <modeling tool installation directory>\samples\diagrams\User needs requirements module for MagicLibrary.mdzip.
Requirements gap and coverage analysis
You can perform the Requirement gap and coverage analysis by using one of the following:
• Diagram pane(see page 15). The diagram pane allows you to display Requirements and other
design elements with a drag-and-drop from the Model Browser(see page 20), and draw
relationships between them. How to work with paths and relationships in diagrams >>189
8 https://docs.nomagic.com/download/attachments/17664205/User%20needs%2018
%20requirements%20module%20for%20MagicLibrary.mdzip?
api=v2&modificationDate=1478188681080&version=1
189 https://docs.nomagic.com/display/MDTWRT/Working+with+paths+and+relationships
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
84
Displaying requirements on IBD diagram
• Requirement matrices(see page 529). The Requirement matrices enable you to analyze, create, and
modify relationships between Requirements and other design elements. They are especially
valuable in displaying relationships that cannot be represented in diagrams, such as
representations (classes by lifeline), behavior representations in other diagrams, operation
representations by Call Behavior Actions, etc. How to work in matrices >>190
• Metric tables191. The Metrics tables allow collecting various metrics used to evaluate the current
state of your model. How to work in Metric table >>192
Tracing requirement changes in Teamwork Cloud
Working on a server project requires up-to-date knowledge of all relevant project changes. Thus, we
introduce a new set of validation rules for suspect link analysis. These rules help you track changes in
Requirements that are linked to design elements (such as SysML Blocks, Test Cases, Use Cases, etc.) by
Satisfy, Derive, Refine or Verify relationships, and stay informed about unlinked and deprecated
Requirements in the model.
Before you start tracking changes using the Suspect Link analysis, make sure your model (or its
particular elements) is locked193.
The following topics contain more information on Requirements tracking:
• Tracking elements affected by Requirement changes194
• Tracking deprecated Requirements195
• Tracking unlinked Requirements196
• Solving untracked links issue197
You can also create your own suspect links customization to keep track of the changes in the elements
of the specified type. To learn more, read the following topic:
190 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix
191 https://docs.nomagic.com/display/MDTWRT/Metric+table
192 https://docs.nomagic.com/display/MDTWRT/Metric+table#Metrictable-SpecifictasksintheMetricTable
193 https://docs.nomagic.com/display/MDTWRT/Locking+model+for+edit
194 https://docs.nomagic.com/display/MDTWRT/Tracking+elements+affected+by+Requirement+changes
5 https://docs.nomagic.com/display/MDTWRT/Suspect+links+tracking+options#Suspectlinkstrackingoptions19
TrackingDeprecatedRequirements
6 https://docs.nomagic.com/display/MDTWRT/Suspect+links+tracking+options#Suspectlinkstrackingoptions19
TrackingUnlinkedRequirements
7 https://docs.nomagic.com/display/MDTWRT/
19
Tracking+elements+affected+by+Requirement+changes#TrackingelementsaffectedbyRequirementchangesSolvinguntrackedlinksissue
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
85
• Customizing suspect links tracking198
Requirements verification
On this page
• Getting ready for automated Requirements verification(see page 86)
• Performing automated Requirements verification in Requirement Table(see page 88)
• Performing automated requirements verification(see page 89)
• Webinar: Automated Requirements Verification(see page 90)
Systems Modeling Language (SysML) is used to capture systems design as descriptive and analytical
system models, which relate text requirements to the design and provide a baseline to support analysis
and verification. With the system parameter calculated, you can verify the system requirement and
decide whether it is satisfied or not. The modeling tool enables you to perform this verification
automatically.
Getting ready for automated Requirements verification
Before performing the automatic Requirements verification, you need to get ready.
To get ready for automated Requirements verification
1. Define the constraint in the Requirement text.
2. Create a Satisfy relationship from the Value Property to the Requirement.
The Value Property captures the system parameter whose value determines whether the
system requirement is satisfied or not.
3. Do one of the following:
- if the Use Requirement Term Glossary option is enabled, the condition pattern in the
Requirement text is underlined. Move the mouse pointer over it to see the expression in the
tooltip. If it is correct, you are ready to perform the automatic Requirement verification.
198 https://docs.nomagic.com/display/MDTWRT/Customizing+suspect+links+tracking
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
86
Learn more:
- How enable/disable the Use Requirement Term Glossary option.199
- How to use condition patterns in Requirement text.200
- How to define custom condition patterns.201
- How to check predefined condition patterns.202
- How to extract the Constraint from Requirement text.(see page 297)
- If the expression in the tooltip is not correct, do the following:
a. Create a constraint expression for the Constraint Block (see Figure A below).
b. Create a Refine relationship between the Constraint Block and the Requirement (see Figure
B below).
You are now ready to perform the automatic Requirement verification.
9 https://docs.nomagic.com/display/CRMPTWRT/
19
Using+Requirement+terms+glossary#UsingRequirementtermsglossary-Enabling/
disablingtheRequirementtermglossaryusage
0 https://docs.nomagic.com/display/CRMPTWRT/
20
Using+Requirement+terms+glossary#UsingRequirementtermsglossary-UsingconditionterminRequirementstext
1 https://docs.nomagic.com/display/CRMPTWRT/
20
Using+Requirement+terms+glossary#UsingRequirementtermsglossary-Definingcustomconditionphrases
2 https://docs.nomagic.com/display/CRMPTWRT/
20
Using+Requirement+terms+glossary#UsingRequirementtermsglossaryOpeningthepredefinedrequirementsglossarytable
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
87
Performing automated Requirements verification in Requirement Table
The automated Requirements verification analysis can be carried out directly in the Requirement Table.
The analysis is performed by evaluating whether the value of the property that satisfies the
Requirement falls within a range of upper and lower bounds that are extracted from the Requirement
text. Additionally, the automatically calculated margin value helps to determine how close the system
model is to fulfilling Requirements.
To perform automated Requirements verification
1. Create203a Requirement Table. You can also use an existing Requirement Table.
2. Specify the scope204 for the table.
3. Set the context element (i.e., a Block as the table context) to perform the context-specific
analysis.
Note
If the Context field is left unspecified, properties satisfying Requirements are collected
from the entire model.
4. Select the columns (Columns > Select Columns) to show in the table:
• Property - the Value Property that satisfies the Requirement.
203 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
204 https://docs.nomagic.com/display/MDTWRT/Specifying+the+scope+for+the+table
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
88
• Bounds - lower and upper bounds of the required value extracted from the Requirement
text.
• Value - the calculated value (default value or initial value(see page 217)) of the property that
satisfies the Requirement.
• Margin - the difference between the calculated value and the required value.
5. Display the Requirement Verification legend205 to highlight passing and failing Requirements.
The Requirement Table with the Property, Bounds, Value, and Margin columns is created and
passing/failing Requirements are marked (see an image below).
Using the Requirement patterns mechanism, the constraint extracted from the
Requirement text is shown in the Bounds column. The Value column shows the
initial value (if it exists) or the default value of the Value Property. Finally, the
Margin column displays the difference between the calculated and required
values.
Requirements refined by Constraint Blocks
The Requirements Verification analysis in the Requirement Table considers constraints
extracted directly from the Requirement text only, meaning that the analysis cannot be
performed for Requirements refined by Constraint Blocks.
Simulation configuration option
If an Instance is defined as the Requirement Table context, the Requirements verification
analysis does not consider the Simulation configuration option Remember Failure Status206.
Performing automated requirements verification
With the help of simulation, you can perform automatic Requirements verification.
205 https://docs.nomagic.com/display/MDTWRT/Displaying+and+hiding+Legends
6 https://docs.nomagic.com/display/CSTTWRT/
20
Recording+Verification+status+of+runtime+values#RecordingVerificationstatusofruntimevaluesRememberFailureStatusoption
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
89
To perform automatic Requirements verification you must have the Cameo Simulation Toolkit
installed. How to install >>207
To perform automatic Requirements verification
1. Right-click the Block which contains the Value Property.
2. From the shortcut menu, select Simulation > Run.
3. In the Question dialog, click Yes to load the validation rules and validate the model before the
simulation or No to simulate the model without validating it.
4. In the Simulation window, click
or press F8 to start simulation.
The result indicating whether or not the value is satisfied is shown in the Variables pane. In the
following figure, you can see when the Requirement is not satisfied (highlighted in red) and
satisfied (highlighted in green). You can change the value directly in the Value cell and the
Requirement constraint is checked automatically.
Additional features of Cameo Simulation Toolkit
Learn more about how to perform verification for a single element >>208
Learn more about how to validate the model against a set of validation rules before executing
it >>209
Webinar: Automated Requirements Verification
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
https://www.youtube.com/watch?v=eVzKcnafHpE
Related pages
207 https://docs.nomagic.com/display/CSTTWRT/Installation+and+licensing
208 https://docs.nomagic.com/display/CSTTWRT/Elements+simulation
209 https://docs.nomagic.com/display/CSTTWRT/Validation+and+verification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
90
• Creating requirements(see page 75)
• Importing text-based requirements(see page 78)
• Requirements decomposition(see page 78)
• Requirements numbering(see page 82)
• Requirements gap and coverage analysis(see page 84)
• Tracing requirement changes in Teamwork Cloud(see page 85)
• Requirements verification(see page 86)
• Generating requirement document(see page 93)
• Requirement coverage analysis(see page 96)
Using Requirement patterns glossary
On this page
• Enabling/disabling the Requirement patterns underlining in Requirement text(see page 91)
• Defining custom condition patterns(see page 91)
• Opening the predefined requirements glossary table(see page 92)
You can use the specific condition patterns in Requirement texts if you want to extract Constraint from
Requirement automatically210.
Enabling/disabling the Requirement patterns underlining in Requirement text
Before using this feature, make sure the Use Requirement Term Glossary option is enabled.
The Requirement patterns are available as of version 2021x Refresh2. The Use Requirement
Term Glossary option is enabled by default.
To enable/disable Requirement patterns underlining
1. From the main menu, click Options > Project.
2. In the Project Options dialog, find the Use Requirement Terms Glossary option.
3. Set its value to true to enable the Requirement patterns underlining in Requirement text, or false
- to disable it.
Defining custom condition patterns
If you can't find an appropriate condition pattern from the predefined glossary table, you can define a
custom glossary. For this, you have to create a new Glossary Table with the <<requirementTerms>>
stereotype applied.
210 https://docs.nomagic.com/display/CRMPTWRT/Extracting+Constraint+from+Requirement
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
91
To create a new glossary table with the stereotype211<<requirementTerms>>
1. From the main toolbar212, click the Create Diagram button.
2. Double-click the glossary table icon.
3. Open the Specification window of the newly created Glossary table.
4. Change the Applied Stereotype property value to <<requirementTerms>>.
5. Click Close.
The new glossary table with the stereotype <<requirementTerms>> is created. You can now
define your own condition patterns by adding them in the Glossary Table213.
Opening the predefined requirements glossary table
You can use condition patterns from the already created glossary table. If you want to check the most
frequently used patterns, open the predefined glossary table.
To open the predefined glossary table
1. In the Model Browser214, click
and select Show Auxiliary Resources.
2. Expand MD Customization for Requirements Package > requirement verification Package.
3. Double-click the requirement verification to open the table (see the figure below).
211 https://docs.nomagic.com/display/MDTWRT/Stereotype
212 https://docs.nomagic.com/display/MDTWRT/Toolbars
213 https://docs.nomagic.com/display/MDTWRT/Glossary+table
214 https://docs.nomagic.com/display/MDTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
92
The glossary table with the stored frequently used condition patterns opens (see the following figure).
Warning
You cannot extend the list of custom condition patterns in this Glossary Table.
Related pages
• Creating requirements(see page 75)
• Importing text-based requirements(see page 78)
• Requirements decomposition(see page 78)
• Requirements numbering(see page 82)
• Requirements gap and coverage analysis(see page 84)
• Tracing requirement changes in Teamwork Cloud(see page 85)
• Requirements verification(see page 86)
• Generating requirement document(see page 93)
• Requirement coverage analysis(see page 96)
Generating requirement document
You can generate Requirement reports in the .docx and .html/.htm formats directly from your model.
• Generating the Word document report(see page 93)
• Generating requirement report by using the Report Wizard(see page 94)
• Generating requirement report from the Containment tree(see page 94)
• Publishing projects to Cameo Collaborator for TWC(see page 95)
Generating the Word document report
You can generate the Requirement report in word document in the following ways:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
93
•
• Generating requirement report by using the Report Wizard(see page 94)
• Generating requirement report from the Containment tree(see page 94)
Report customization
If you want to customize the report or create your own template for a requirement report , you
may use the Report Wizard215.
Generating requirement report by using the Report Wizard
To create a .docx format report by using the Report Wizard
1. In the Tools menu, click Report Wizard.
2. In the Select Template area, select Requirements, and choose one of the following report type:
- Requirement Dependencies Report. This report contains tables of requirement
dependencies, that is separate tables for Copy, Derive, Refine, Satisfy, Trace, and Verify relations.
- Requirement Diagram. This report lists all requirement diagrams of a selected scope. Diagram
elements and dependencies are described in tables under each diagram.
- Requirement Report. This is a standard detailed requirement report, containing all
requirements attributes. This template may be used as a requirement specification report.
- Requirements Table Diagram Report. This report lists all requirement tables of a selected
scope.
3. Click Next.
4. In the Select Report Data area, you can then select a predefined report data for the selected
template (default = Built-in). Click Next.
5. In the Select Element Scope area use:
• The Add button to add an element selected in the element tree to the Selected
objects area.
• The Add All button to add all elements directly owned by the element selected in the
element tree to the Selected objects area.
• The Add Recursively button in to add all elements listed under the element selected in
the element tree to the Selected objects area.
• The Remove button in to remove the selected element from the Selected objects area.
• The Remove All button in to remove all selected elements from the Selected
objects area.
6. Click Next.
7. In the Output Options area, define the appropriate options.
8. Click Generate.
Your report is generated and automatically opens.
Generating requirement report from the Containment tree
To generate Requirement reports from the Containment tree
1. In the Containment tree, right-click the selected requirement specification (Package) or
Requirement.
215 https://docs.nomagic.com/display/MDTWRT/MagicDraw+Report+wizard+overview
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
94
2. From the shortcut menu, click Generate Report > Requirements and select a desired
requirement template.
3. In the Select Location dialog, specify a report location and specify a report file name.
4. Click Save.
The report is generated.
Publishing projects to Cameo Collaborator for TWC
Publishing models to Cameo Collaborator for Teamwork Cloud allows you to present them in a
simplified form for users who do not know modeling languages, such as UML or SysML. Publishing is
the beginning step of the model review workflow, as displayed in the following figure:
Publishing a model is the first step in the workflow for reviewing models and
providing feedback.
You can republish a model each time you update it while reacting to the reviewer's feedback216. When
republishing the model, you can either create a new document with a different name or update the one
already stored in Teamwork Cloud. The updated document includes all the comments from the
previous version, unless the comments are disabled when republishing.
To learn more, see the following topics:
• Installing Cameo Collaborator Publisher plugin217
216 https://docs.nomagic.com/display/CC4TWCTWRT/Reacting+to+feedback
217 https://docs.nomagic.com/display/CC4TWCTWRT/Installing+Cameo+Collaborator+Publisher+plugin
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
95
• Publishing from graphical user interface218
• Publishing from command-line interface219
• Publishing a model for editing220
• Publishing an OSLC resource221
Cameo Collaborator Publisher
To be able to publish models to Cameo Collaborator for TWC, you must install the Cameo
Collaborator Publisher plugin222 in your modeling tool.
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
https://www.youtube.com/watch?v=L2fbUqPzUyo
Requirement coverage analysis
Requirement coverage analysis is based on calculating which model Requirements are satisfied and
what elements satisfy them. For this purpose, metrics are introduced. You can calculate metrics for the
selected elements using predefined Metric Suites. In addition, you can create your own Metrics Suites
from scratch or predefined Metric Suites.
A metric is an item of information about a specific aspect of a model. You can use a collection of various
metrics to evaluate the current state of your model. Calculated at regular intervals, metrics can help
track the evolution of the model's development. You can calculate metrics and store the calculation
results in Metric Tables223.
For more information about predefined Metric Suites, see:
• Predefined Metric Suites(see page 96)
• Predefined Metric Suites for MagicGrid(see page 100)
Predefined Metric Suites
218 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+from+graphical+user+interface
219 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+from+command-line+interface
220 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+a+model+for+editing
221 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+an+OSLC+resource
222 https://docs.nomagic.com/display/CC4TWCTWRT/Installing+Cameo+Collaborator+Publisher+plugin
223 https://docs.nomagic.com/display/MDTWRT/Metric+table
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
96
A Metric Suite is the collection of parameters and metric definitions used to calculate metrics that
evaluate specific aspects of your model. For your convenience, there are seven predefined Metric
Suites. The following figure shows predefined Metric Suites and their purposes.
The diagram shows that some Metric Suites treat the owner Requirement as a
grouping element, and some treat the owner as a Requirement.
Requirement Derivation (the owner is treated as a grouping element)
This Metric Suite checks the outgoing Derive relationships and tracks whether Requirements are
derived or not. The grouping Requirement is not treated as an independent Requirement under the
following conditions:
• If the grouping Requirement has an outgoing Derive relationship, the owned Requirements are
treated as derived.
• If all the owned Requirements have outgoing Derived relationships, the grouping Requirement is
treated as derived.
Requirement Refinement (the owner is treated as a grouping element)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
97
This Metric Suite checks the incoming Refine relationships and tracks whether Requirements are
refined or not. The grouping Requirement is not treated as an independent Requirement under the
following conditions:
• If the grouping Requirement has an incoming Refine relationship, the owned Requirements are
treated as refined.
• If all the owned Requirements have incoming Refined relationships, the grouping Requirement is
treated as refined.
Requirement Satisfaction (the owner is treated as a grouping element)
This Metric Suite checks the incoming Satisfy relationships and tracks whether Requirements are
satisfied or not. The grouping Requirement is not treated as an independent Requirement under the
following conditions:
• If the grouping Requirement has an incoming Satisfy relationship, the owned Requirements are
treated as satisfied.
• If all the owned Requirements have incoming Satisfy relationships, the grouping Requirement is
treated as satisfied.
The diagram illustrates what Requirements are satisfied if you use the
Requirement Satisfaction Metric Suite when the owner is treated as a grouping
element.
Requirement Verification (the owner is treated as a grouping element)
This Metric Suite checks the incoming Verify relationships and tracks whether Requirements are
verified or not. The grouping Requirement is not treated as an independent Requirement under the
following conditions:
• If the grouping Requirement has an incoming Verify relationship, the owned Requirements are
treated as verified.
• If all the owned Requirements have incoming Verify relationships, the grouping Requirement is
treated as verified.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
98
Requirement Refinement (the owner is treated as a Requirement)
This Metric Suite checks the incoming Refine relationships and tracks whether Requirements are
refined or not. All Requirements are treated as independent under the following conditions:
• If the grouping Requirement has an incoming Refine relationship, the owned Requirements are
not treated as refined unless they have incoming refine relationships.
• If all the owned Requirements have incoming Refined relationships, the grouping Requirement is
not treated as refined unless it has an incoming Refine relationship.
Requirement Verification (the owner is treated as a Requirement)
This Metric Suite checks the incoming Verify relationships and tracks whether Requirements are
verified or not. All Requirements are treated as independent under the following conditions:
• If the grouping Requirement has an incoming Verify relationship, the owned Requirements are
not treated as verified unless they have incoming Verify relationships.
• If all the owned Requirements have incoming Verify relationships, the grouping Requirement is
not treated as verified unless it has an incoming Verify relationship.
Requirement Satisfaction (the owner is treated as a Requirement)
This Metric Suite checks the incoming Satisfy relationships and tracks whether Requirements are
satisfied or not. All Requirements are treated as independent under the following conditions:
• If the grouping Requirement has an incoming Satisfy relationship, the owned Requirements are
not treated as satisfied unless they have incoming Satisfy relationships.
• If all the owned Requirements have incoming Satisfy relationships, the grouping Requirement is
not treated as satisfied unless it has an incoming Satisfy relationship.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
99
The diagram illustrates which Requirements are satisfied if you use
the Requirement Satisfaction Metric Suite when the owner is treated as a
Requirement.
Related pages
• Requirement coverage analysis(see page 96)
• Predefined Metric Suites for MagicGrid(see page 100)
Predefined Metric Suites for MagicGrid
MagicGrid is an MBSE method developed by No Magic, Inc. The MagicGrid approach is based on a
framework consisting of viewpoints and aspects organized in a grid view. Each cell of the grid is an
artifact to deliver in the systems engineering process. The method is based on existing studies in the
field and real-life findings in managing models for organizations from different systems engineering
domains.
MagicGrid contains a number of predefined MetricSuites that you can use to calculate Requirement
coverage and Requirement covering elements. To learn more about the predefined Metric Suites for
MagicGrid, see:
• Requirement coverage(see page 100)
• Requirement covering elements(see page 102)
Requirement coverage
A Metric suite is a collection of parameters and metric definitions used to calculate metrics that
evaluate specific aspects of your model. For your convenience, there are four predefined Metric Suites
for MagicGrid that calculate Requirement coverage. The following figure shows these Metric Suites and
their purposes.
Important
You must create a MagicGrid project or use the MagicGrid Profile in your model in order to user
predefined Metric Suites for MagicGrid.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
100
Predefined Requirement coverage Metric Suites for MagicGrid.
Stakeholder Needs Refinement
This Metric Suite checks incoming Refine relationships and tracks whether or not stakeholder needs are
refined. Only atomic Requirements (without sub-requirements) are tracked. Stakeholder needs can only
be refined by one of the following elements:
• Action
• State
• Part Property
• Reference Property
• Flow Property
• Full Port
• Proxy Port
• Value Property
• Constraint Property
System Requirements Derivation
This Metric Suite checks outgoing Derive relationships and tracks whether or not system Requirements
are derived. Only atomic Requirements (without sub-requirements) are tracked. A Requirement is
treated as derived when it or its grouping Requirement has an outgoing Derive relationship to the
Requirement with no sub-requirements.
System Requirements Verification
This Metric Suite checks incoming Verify relationships and tracks whether or not system Requirements
are verified by a Test Case element. Only atomic Requirements (without sub-requirements) are
tracked.
System Requirements Satisfaction
This Metric Suite checks incoming Satisfy relationships and tracks whether or not system Requirements
are satisfied. Only atomic Requirements (without sub-requirements) are tracked. System Requirements
can only be satisfied by one of the following elements:
• Action
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
101
• State
• Part Property
• Reference Property
• Flow Property
• Full Port
• Proxy Port
• Value Property
• Constraint Property
This diagram illustrates which system Requirements are satisfied when using the System Requirements
Satisfaction Metric Suite.
Requirement covering elements
A Metric suite is a collection of parameters and metric definitions used to calculate metrics that
evaluate specific aspects of your model. For your convenience, there are three predefined Metric Suites
for MagicGrid that calculate Requirement covering elements. The following figure outlines these Metric
Suites and their purposes.
Important
You must create a MagicGrid project or use the MagicGrid Profile in your model in order to use
predefined Metric Suites for MagicGrid.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
102
Predefined Requirement covering elements Metric Suites for MagicGrid.
Stakeholder Needs Refining Elements
This Metric Suite tracks refining elements by checking the outgoing Refine relationships from behavior,
structure, and parameter elements to Stakeholder Needs. Stakeholder Needs can only be refined by
the following elements:
• Action
• Part Property
• Reference Property
• Value Property
System Requirements Satisfying Elements
This Metric Suite tracks satisfying elements by checking the outgoing Satisfy relationships from
behavior, structure, and parameter elements to System Requirements. System Requirements can only
by satisfied by the following elements:
• Action
• Part Property
• Reference Property
• Value Property
System Requirements Verifying Elements
This Metric Suite tracks verifying elements by checking the outgoing Verify relationships form Test
Cases to System Requirements.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
103
A Metric Table that tracks System Requirements satisfying elements.
Elements tracked by Requirement covering elements Metric Suites
The quantity of model elements tracked by Stakeholder Needs Refining Elements and System
Requirements Satisfying Elements Metric Suites for MagicGrid depends on the following rules:
• In most cases, only the elements that do not own any elements (leaf elements) are tracked.
Examples
The following examples are from the Block Definition Diagram displayed below:
• If relationships A and B do not exist, Radiator, Heater Hose, and Lower Radiator
Hose Part Properties are tracked.
• If only relationship B exists, Radiator, Heater Hose, and Lower Radiator Hose Part
Properties are tracked.
• If both relationships A and B exist, Radiator, Heater Hose, and Lower Radiator
Hose Part Properties are tracked.
• The elements that own other elements are only tracked if they have outgoing relationships, but
none of the elements they own have outgoing relationships.
Example
If only relationship A existed in the diagram below, then Hose and Radiator Part
Properties would be tracked.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
104
A Block Definition Diagram illustrating which elements are tracked by Requirement covering elements
Metric Suites. For more information, see the examples described above.
Item Flow management
You can create Item Flows in two modes:
• Direct
• Between Part Types
The Direct creation mode allows you to create the Item Flow between ports or parts in the SysML
Internal Block diagrams(see page 520).
The Between Part Types creation mode allows you to create the Item Flow between Part Property types.
In this mode, you can quickly realize and synchronize Flows on Activity Edges, Connectors, and
Messages.
To choose the creation mode
1. From the main menu, select Options > Project. The Project Option dialog opens.
2. Expand the General options group and select SysML.
3. From the Item Flow Creation Mode option, choose one of the following:
• Direct
• Between Part Types
4. Click OK when you are done.
For more information on working with Item Flows, see the following chapters:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
105
• Creating Item Flow(see page 106)
• Item Flow Manager dialog(see page 110)
Creating Item Flow
Depending on the creation mode you select (Direct or Between Part Types), there are two ways of
working with Item Flows:
• Working with Direct creation mode(see page 106)
• Working with Between Part Types creation mode(see page 108)
• Realizing Item Flows(see page 109)
Working with Direct creation mode
An Item Flow indicates the flow of items via a Connector224 or an Association225.
The Direct creation mode allows you to create an Item Flow between ports or parts in the SysML
Internal Block diagrams(see page 520).
To create an Item Flow with the Item Property tag initialized on a Connector
1. Do one of the following:
• Select a Connector on the diagram pane and from its smart manipulator toolbar226, click
.
• Drag the classifier you want to use as the Conveyed Classifier onto the intended
Connector.
2. In the Create/Edit Item Flow dialog, specify the following options:
• Item Flow. From the drop-down menu, select an existing Item Flow or create a new one
by selecting <NEW>.
If you select an existing Item Flow, you don't need to specify the rest of the options
in this dialog.
• Direction. From the drop-down menu, select the direction of the new Item Flow.
If you are creating the Item Flow on the directed relationship, the Direction is set
automatically and is not available for editing.
• Conveyed Classifiers. Click
From the Select Conveyed Classifier dialog, select a
classifier to use as the Conveyed Classifier. Click OK.
224 https://docs.nomagic.com/display/MDTWRT/Connector
225 https://docs.nomagic.com/display/MDTWRT/Association
226 https://docs.nomagic.com/display/MDTWRT/Smart+manipulator+toolbar
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
106
If you have invoked the Create/Edit Item Flow dialog by dragging a classifier onto
the connector and do not want to change it, you may skip this option.
• Item Property. Click
From the Select Item Property dialog, select a Part
Property to use as the Item Property. Click OK. (Optional)
3. Click OK.
The Specify Activities step in the Create / Edit Item Flow dialog is available only in the
Between Part Types creation mode.
An Item Flow with the selected Conveyed Item (and Item Property if it was defined) is created and
is set for the Connector.
If you want to reverse the Item Flow direction and update it in all related diagrams, read
Reversing Information Flow direction227.
If the name of the Item Property is not displayed on the Item Flow, you can perform the following
actions to display it.
To display the Conveyed Item name on the Connector
1. On the diagram pane, select the connector with the Item Flow assigned.
2. Right-click it to open a shortcut menu. Select the Edit Compartments command.
3. The Compartment Edit dialog228 opens. In the dialog, select the Information From tab
depending on the flow direction.
227 https://docs.nomagic.com/display/MDTWRT/Reversing+Information+Flow+direction
228 https://docs.nomagic.com/display/MDTWRT/Displaying+or+hiding+elements+in+compartments+on+shapes
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
107
4. In the Hidden list, select the Conveyed Item names you want to see on the Item Flow and move
them to the Selected list.
5. Click OK.
Working with Between Part Types creation mode
The Between Part Types creation mode allows you to create an Item Flow between Part Property types.
In this mode, you can quickly realize and synchronize Flows on Activity Edges, Connectors, and
Messages.
To create and realize an Item Flow
1. Select the Association, Connector, Message, Control Flow, or Object Flow on the diagram pane
and in its smart manipulator toolbar229, click
.
2. In the Create/Edit Item Flow dialog, Create new or Select Existing Item Flow step, specify the
following options:
• Item Flow. From the drop-down menu, select an existing Item Flow or create a new one
by selecting <NEW>.
If you select an existing Item Flow, it is not necessary to specify the rest of the
options in this dialog.
• Direction. From the drop-down menu, select the direction of the new Item Flow.
• Conveyed Classifiers. Click
From the Select Conveyed Classifier dialog, select a
classifier to be used as the Conveyed Classifier. Click OK.
• Item Property. Click
From the Select Item Property dialog, select a Part
Property to be used as the Item Property. Click OK.
This option is available when creating an Item Flow in the SysML Internal Block
Diagram(see page 520).
• Select the Add Item Flow to corresponding relationships check box. (Optional)
3. Click Next if you need to specify the activities.
4. In the Specify Activities step, add the activities.
This step is not available if you are creating the Item Flow between the Part Properties
with no types set.
229 https://docs.nomagic.com/display/MDTWRT/Smart+manipulator+toolbar
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
108
Select the Update Diagrams option if you want the created Item Flow to be realized on
the Activity Edge between selected Activities in all diagrams that will display those
Activities. If there will be no diagrams with those Activities, you will get a suggestion to
create a diagram for each Activity pair selected in the Specify Activities step.
5. Click Finish when you are done.
Realizing Item Flows
You can realize hidden Item Flows in two ways:
• Through the Item Flow Manager.
• From the selected relationship's Smart Manipulator toolbar.
To realize Item Flows through the Item Flow Manager dialog
1. Select Association, Connector, Association, Control Flow, Object Flow, or Message in the diagram
pane.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
109
2. On the smart manipulator, click
. The Item Flow Manager dialog opens.
3. Do one of the following:
• Set the Realize column option to true for those Item Flows you want to realize.
• Click the Realize All button, if you want to realize all Item Flows.
4. Click Close when you are finished.
To realize Item Flows from the Smart Manipulator toolbar
1. Select Association, Connector, Association, Control Flow, Object Flow, or Message in the diagram
pane.
2. From the Smart Manipulator toolbar, select
Realize All Item Flows.
Related pages
• Item Flow Manager dialog(see page 110)
• Information Flow230
• Reversing Information Flow direction231
• SysML Internal Block Diagram(see page 520)
• Connector232
• Association233
Item Flow Manager dialog
The Item Flow Manager dialog enables you to analyze and manage Item Flow data. You can:
• Edit existing Item Flows by adding new Conveyed Items
• Realize or hide existing Item Flows on selected relationships
230 https://docs.nomagic.com/display/MDTWRT/Information+Flow
231 https://docs.nomagic.com/display/MDTWRT/Reversing+Information+Flow+direction
232 https://docs.nomagic.com/display/MDTWRT/Connector
233 https://docs.nomagic.com/display/MDTWRT/Association
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
110
• Change the Conveyed Item
• Specify From and To Activities.
To open the Item Flow Manager dialog
1. Select Association, Connector, Association, Control Flow, Object Flow, or Message in the diagram
pane.
2. On the smart manipulator, click
.
The Item Flow Manager dialog opens.
Modeling structure with Blocks
This section describes how to work in two different types of diagrams that will model a structure of
systems: the SysML Block Definition Diagram(see page 519) (BDD) and SysML Internal Block Diagram(see
page 520) (IBD). The elements in the BDD are elements of definition, while the elements in the IBD are
elements of usage. Elements of definition describe unique instances and can be reused in multiple
contexts to share this definition; e.g., the Block (see page 545)is a definition and is used as a type in the
IBD. The IBD displays usages of Blocks (see page 545)that are the Part Properties(see page 560) and
Reference Properties(see page 563) of the Block. In other words, the Part Properties are the usages of the
Block in the context of composing the Block.
Read the following topics to learn how to model your structure:
• Defining Blocks in Block Definition Diagram(see page 112)
• Decomposing Blocks(see page 119)
• Defining interfaces using ports(see page 152)
• Connecting Blocks in SysML Internal Block Diagram(see page 174)
• SysML specific compartments(see page 195)
• Using Units(see page 199)
• Initial Values(see page 217)
• Creating Interface Control Document tables(see page 226)
• Rollup Pattern Wizard(see page 229)
• Layout templates(see page 243)
• Diagram aspects(see page 246)
• Automatic Instantiation wizard(see page 249)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
111
• Extract Structure Wizard(see page 259)
Defining Blocks in Block Definition Diagram
On this page
• Introduction(see page 112)
• Creating Blocks(see page 113)
• Use the Create Element dialog in the Model Browser(see page 113)
• Use the palette on the diagram pane(see page 114)
• Paste a list in the Containment tree or on a diagram pane(see page 114)
• Drag .fmu file on the diagram pane(see page 114)
• Creating Association Block(see page 115)
• Relating Blocks(see page 116)
Introduction
When describing your system structure, you should start by defining Blocks(see page 545) in
a SysML Block Definition Diagram(see page 519). Blocks represent the system hierarchy in terms of
systems and subsystems. You can model either the logical or physical decomposition of a system, and
the specification of software, hardware, or human elements.
The notation for a Block is a rectangle with the stereotype «block» preceding the name. Blocks are the
elements of definition because they have a name only. The figure below illustrates the vehicle structure
of defined Blocks in the SysML Block Definition Diagram. The figure is created from
the VehicleStructure.mdzip234 sample model.
4 https://docs.nomagic.com/download/attachments/82753878/VehicleStructure.mdzip?
23
api=v2&modificationDate=1498051325517&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
112
The vehicle structure in a SysML Block Definition Diagram.
Creating Blocks
You can create Blocks(see page 545) in a SysML Block Definition Diagram(see page 519) in the following ways:
•
• Use the Create Element dialog in the Model Browser(see page 113)
• Use the palette on the diagram pane(see page 114)
• Paste a list in the Containment tree or on a diagram pane(see page 114)
• Drag .fmu file on the diagram pane(see page 114)
Use the Create Element dialog in the Model Browser
You can create all elements including Blocks(see page 545) in the Model Browser(see page 20) from the
shortcut menu.
To create a Block in the Model Browser
1. In the Model Browser, right-click the Package235in which you want to store the new Block.
2. Do one of the following:
- From the shortcut menu, select Create Element.
- Press Ctrl+Shift+E.
3. In the Create Element dialog, select Block.
4. Type its name.
The new Block is created in the Model Browser. You can represent it in the SysML Block
235 https://docs.nomagic.com/display/CBMPTWRT/Package
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
113
Definition Diagram by dragging it from the Model Browser(see page 20) onto the diagram pane(see
page 15).
Use the palette on the diagram pane
You can create Blocks(see page 545) directly on the SysML Block Definition Diagram(see page 519) pane. The
Blocks created on the diagram pane(see page 15) are created in the Model Browser(see page 20), too.
To create a Block on the diagram pane
1. Open the existing SysML Block Definition Diagram or create a new one. How to create a new
diagram >>(see page 62)
2. Do one of the following:
- From the diagram palette(see page 15), select the Block button.
- Press B.
3. Click on the diagram pane.
4. Type its name.
The new Block is created in the Model Browser and represented in the SysML Block Definition
Diagram(see page 519).
Paste a list in the Containment tree or on a diagram pane
You can create Blocks by copying a listed text from other resources (e.g. Word, Excel, HTML, etc.) and
pasting it either in the Containment tree or diagram pane.
Detailed procedures are provided in the Creating elements from other resources236 page.
Drag .fmu file on the diagram pane
You can represent any model components that are exported to Functional Mock-up Interface (FMI)
standard (.fmu files) as Blocks in the SysML Block Definition Diagrams237.
The SysML Plugin supports FMI 1.0 and 2.0 versions.
To represent an .fmu file as the Block
236 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+elements+from+other+resources
237 https://docs.nomagic.com/display/SYSMLP190/SysML+Block+Definition+Diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
114
1. Drag the .fmu file onto the Block Definition Diagram pane.
The Block with name, value properties, their types, and applied fmu stereotype is created.
You can execute one fmu Block or co-simulate cooperated fmu Blocks using the Cameo Simulation
Toolkit238.
Creating Association Block
You can use an Association Block(see page 544) to show decomposition of the connector similar to the
way that blocks show the decomposition of parts. You can create an Association Block(see page
544) or Association Block with Owned Ends(see page 544) between two Blocks(see page 545) in the SysML
Block Definition Diagram(see page 519). You can represent Association Block usages in the SysML Internal
Block Diagrams(see page 520) by setting Association Block as Connector type(see page 192).
To create an Association Block or Association Block with Owned Ends
1. Create two Blocks on a diagram pane.
2. From the diagram palette, select Association Block or Association Block with Owned Ends
button.
3. On the diagram pane, select a Block(see page 545) to be used as the source.
4. Select a target by either selecting an existing Block on the diagram pane, or by clicking on empty
space on the diagram to create the target Block.
An Association Block or Association Block with Owned Ends is created between the source and
target Blocks(see page 545). The Participant Properties(see page 561) are created for the Association
Block automatically and shown in its references compartment (see page 195)area.
Participant properties(see page 561) are created automatically after an Association Block(see page
544) is created between Blocks(see page 545).
The following figure shows two Association Blocks: Water Delivery and Plumbing. The connection
between the Spigot Bank Block and Faucet Blocks is decomposed into the Water Delivery Block by
creating an Association Block. The suppliedByInLink and deliveredToInLink Participant Properties are
238 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
115
created and shown in the compartment area. The same is shown with the Plumbling Association
Block. The figure is created from the WaterSupply_19.0.mdzip239 sample model.
Water Delivery and Plumbing Association Blocks in the SysML Block Definition
Diagram.
Relating Blocks
You can connect Blocks by using these main relationships:
• Generalization(see page 116)
• Direct Composition or Composition(see page 117)
• Direct Association or Association(see page 118)
Generalization
The Generalization relationship conveys an inheritance between Blocks. It is usually used to create a
hierarchy in your system. The notation is a solid line with a hollow, triangular arrowhead on the end.
9 https://docs.nomagic.com/download/attachments/82754638/WaterSupply_19.0.mdzip?
23
api=v2&modificationDate=1511360201310&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
116
The figure below shows that the DC Power Supply, Inverted Pendulum System, and Computer Blocks are
types of the AC Device Block. All of the subtypes (DC Power Supply, Inverted Pendulum System,
and Computer) require all the characteristics of AC Device but add their own specialized characteristics
as well. The figure is created from the InvertedPendulum.mdzip240 sample model.
Generalization relationship between Blocks in SysML Block Definition Diagram.
Direct Composition or Composition
The Direct Composition or Composition relationships convey a structural decomposition of Blocks. The
notation is a solid line between two Blocks with a solid diamond on the composite end.
The following figure shows that the Wheel is composed of Tire and Brake. The Composition can be
represented in two different ways: by showing Composition relations between Blocks or by showing
Part Properties on a decomposed Block compartment(see page 195). The figure is created from
the VehicleStructure.mdzip241 sample model.
0 https://docs.nomagic.com/download/attachments/82753878/InvertedPendulum.mdzip?
24
api=v2&modificationDate=1498477335401&version=1
1 https://docs.nomagic.com/download/attachments/82753878/VehicleStructure.mdzip?
24
api=v2&modificationDate=1498051325517&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
117
Direct Composition relationship between Blocks in the SysML Block Definition
Diagram.
Direct Association or Association
The Direct Association or Association conveys that a connection can exist between those Blocks. Those
Blocks can access each other for some purpose across the connection. The Direct Association notation
is a solid line with an arrowhead on the end, while the Association notation consists only of a solid line.
The figure below illustrates the Association between the Wheel and WirelessTirePressureMonitor Blocks.
The name of the Association is BandMount, which describes the type of connection that could exist
between the wheel and wireless tire pressure monitor. The Association can be represented in two
different ways: by showing the Association relation between Blocks or by showing the Reference
Property on a decomposed Block compartment(see page 195). The figure is created from the hybrid sport
utility vehicle.mdzip242 sample model.
Association relationship between Blocks in SysML Block Definition Diagram.
2 https://docs.nomagic.com/download/attachments/82753878/hybrid%20sport%20utility%20vehicle.mdzip?
24
api=v2&modificationDate=1505483471482&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
118
For how to create, remove, change a style, route, create a line jump, insert a shape on a path, or
manage path compartments, read the Working with paths and relationships243 page.
Decomposing Blocks
On this page
• Introduction(see page 119)
• Creating and managing Block properties(see page 120)
• Creating SysML Internal Block Diagram(see page 121)
• Representing Block Properties in SysML Internal Block Diagram(see page 121)
• Selecting property types(see page 121)
Introduction
You can decompose Blocks (see page 545)by defining their specific features with properties. Block
properties are used to capture the structural relationships and values of a Block. After the Blocks are
defined in the SysML Block Definition Diagram(see page 112), you can decompose each Block into:
• Structural properties:
• Part Properties(see page 560).
• Reference Properties(see page 563).
• Value Properties(see page 569).
• Constraint Properties(see page 550).
• Ports (Flow Ports(see page 556), Full Ports(see page 558), Proxy Ports(see page 562)).
• Flow Properties(see page 558).
• Behavioral properties:
• Operations244.
• Receptions245.
In the figure below, you can see the Computer Block decomposed into four Part Properties(see page 560)
and three Proxy Ports(see page 562). This decomposition can be shown directly in Block (see page
545)compartments (see page 195)(highlighted in blue), or it can be represented in the SysML Internal Block
Diagram(see page 520) (highlighted in orange).
243 https://docs.nomagic.com/display/MDTWRT/Working+with+paths+and+relationships
244 https://docs.nomagic.com/display/MDTWRT/Operation
245 https://docs.nomagic.com/display/MDTWRT/Reception
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
119
The Computer Block decomposition and its representation in SysML Internal
Block Diagram.
Creating and managing Block properties
You can create and manage Block (see page 545)properties by using the smart manipulator246 or
Specification window247. How to create and manage Block properties >>(see page 122)
246 https://docs.nomagic.com/display/MDTWRT/Smart+manipulators
247 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
120
Creating SysML Internal Block Diagram
The Block (see page 545)properties are represented in the SysML Internal Block Diagram(see page 520). You
can create this diagram directly for the selected Block shape. How to create SysML Internal Block
diagram for a Block >>(see page 126)
If a selected Block already has properties, the opened Display Parts/Ports dialog(see page 128)
allows you to select which properties you want to represent.
The SysML Internal Block Diagram(see page 520) can also be created in many other ways, as described in
the Creating diagrams248 page.
Representing Block Properties in SysML Internal Block Diagram
You can represent Block properties in the SysML Internal Block Diagram(see page 520) by using the
Display Parts/Ports dialog, diagram toolbar, the shortcut menu, smart manipulator, or drag-and-drop
operation. All of these are described in the Displaying parts and ports(see page 128) page.
If you displayed nested properties, you can select the way you want to represent them. You can
represent nested properties by displaying the property shape inside another property shape or by
using dot notation. For detailed procedures how to work with property path notation, read the Property
path notation(see page 145) page.
If properties have their own SysML Internal Block Diagrams(see page 520), you can represent their internal
structures inside shapes. How to display internal structures on structured classifiers >> (see page 144)
Selecting property types
The structural Block (see page 545)properties must have a type that may be another Block or another
concept, such as integer value. How to select a property type >>(see page 126)
Related pages
• Creating and managing Block properties(see page 122)
• Creating a SysML Internal Block diagram for a Block(see page 126)
• Selecting property type(see page 126)
• Displaying parts and ports(see page 128)
• Displaying internal structures on structured classifiers(see page 144)
• Property path notation(see page 145)
• SysML Internal Block Diagram context(see page 151)
• Creating nested parts by pasting items from the list(see page 152)
Sample model
248 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
121
The model used in the figure of this page is the InvertedPendulum sample model. To open this
sample do one of the following:
• Download InvertedPendulum.mdzip249.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\Inverted
Pendulum\Inverted Pendulum.mdzip.
Creating and managing Block properties
On this page
• Using the smart manipulator(see page 122)
• Creating a property for a Block(see page 122)
• Removing a Block property from the Block shape(see page 123)
• Deleting a Block property from the model(see page 124)
• Using the Specification window(see page 124)
When the same Block(see page 545) is represented in several SysML Block Definition Diagrams(see page 519),
all Association250 roles are represented in the Block compartment area(see page 195).
You can create and manage the Block properties in several ways:
• Using the smart manipulator(see page 122)
• Using the Specification window(see page 124)
Using the smart manipulator
•
• Creating a property for a Block(see page 122)
• Removing a Block property from the Block shape(see page 123)
• Deleting a Block property from the model(see page 124)
Creating a property for a Block
You can create and manage properties for a Block directly on the diagram pane by using the symbol
smart manipulators251.
9 https://docs.nomagic.com/download/attachments/82753878/InvertedPendulum.mdzip?
24
api=v2&modificationDate=1498477335401&version=1
250 https://docs.nomagic.com/display/MDTWRT/Association
251 https://docs.nomagic.com/display/MDTWRT/Smart+manipulators
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
122
To create a property for a Block
1. Select the Block shape.
2. Click
smart manipulator.
3. From the opened menu select the property you want to create for a Block.
4. Type its name.
5. Specify its type.
The property is created and displayed on the Block shape in the compartments area(see page 195).
Removing a Block property from the Block shape
To remove a Block property from the Block shape
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
123
1. Select the property on Block shape.
2. Press Delete.
The property is removed from the Block compartments but not from the model.
Deleting a Block property from the model
To delete a Block property from the model
1. Right-click the property on the Block shape.
2. From the shortcut menu select the Select in Containment Tree command. The property is
selected in the Containment tree.
3. Do one of the following:
• Press Delete.
• Right-click and from the shortcut menu and select the Delete command.
If a property is shared with other people, the Question dialog opens. You can then
confirm or cancel the Delete command.
The Block property is removed from the model.
Using the Specification window
All owned and inherited Block properties are collected on the left of the Block Specification window252 >
Properties. Block properties are grouped in the Block compartments. Manage them by creating,
redefining or deleting directly in the General Specification pane253.
252 https://docs.nomagic.com/display/MDTWRT/Specification+window
253 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
124
Column name
Name
Property name.
Type
Property type.
Default Value
Property default value.
Owner
Block name that contains the current property.
Button name
Description
Opens the Specification window of the selected property.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
125
Button name
Description
Create
Opens the list of available properties to create. Click to create the Connector property,
Part property, Reference property, Value property, Constraint property, Flow property.
Redefine
Duplicates the selected item and marks its name in ascending order.
Delete
Removes the selected item from the list.
Creating a SysML Internal Block diagram for a Block
To create a SysML Internal Block diagram(see page 520) for a Block(see page 545)
1. Select the Block shape on the diagram pane. The smart manipulator menu appears.
2. Click the SysML Internal Block diagram button
.
The SysML Internal Block diagram is created and owned by the selected Block. The SysML
Internal Block diagram and the owner Block have the same name. The hyperlink (see page 409)to
the created diagram is added to the Block.
Selecting property type
The Type Selection Mode turns on the automatic port and part type selection. When the function is
turned on:
• On a part creation, the Select Type dialog appears. The same is valid when creating ports.
• If a part does not have a specified type, then a new type for the part will be created on a nested
port creation. A type for the new port will be created, too.
• If a part does not have a name, type the name on the part shape on the diagram and the type
will be created automatically. The typed name will be the name of the part type (NOTE: that part
will be without a name).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
126
To turn on the Type Selection Mode
• On the Composite Structure, Class, Component, or Package diagrams palette254, click
.
The Type Selection Mode works separately for each project.
254 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
127
You can save the time spent looking for elements in the type selection list by using package
imports255.
256
Displaying parts and ports
On this page
• Ways to display parts and ports(see page 129)
• Using the Display Parts/Ports dialog(see page 129)
• Using the diagram toolbar and the shortcut menu(see page 134)
• Using the smart manipulator toolbar(see page 138)
• Using the drag-and-drop operation in the SysML Internal Block diagram(see page 138)
• Displaying properties of a port(see page 142)
You can display ports, properties, and deep nested ports and properties that have already been
created in all structure diagrams(see page 517). This functionality is driven by stereotypes, which allow
you to display properties stereotypes257 have been applied to. If you have applied your own
stereotypes258 for the elements (e.g., electrical, mechanical, optical), you can use those stereotypes
when selecting the properties you want to display on the diagram pane.
Note
For more information about creating custom stereotypes and applying them, see UML Profiling
and DSL Guide259.
This page contains the following information:
• Ways to display parts and ports(see page 129)
• Using the Display Parts/Ports dialog(see page 129)
• Using the diagram toolbar and the shortcut menu(see page 134)
• Using the smart manipulator toolbar(see page 138)
• Using the drag-and-drop operation in the SysML Internal Block diagram(see page 138)
• Displaying properties of a port(see page 142)
255 https://docs.nomagic.com/display/MDTWRT/Package+import
256 https://docs.nomagic.com/display/MDTWRT/Selecting+port+and+part+types
257 https://docs.nomagic.com/display/MDTWRT/Stereotype
258 https://docs.nomagic.com/display/MDTWRT/Stereotype
259 http://docs.nomagic.com/display/MDTWRT/UML+Profiling+and+DSL+Guide
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
128
Ways to display parts and ports
You can display ports and properties in the following ways:
•
• Using the Display Parts/Ports dialog(see page 129)
• Using the diagram toolbar and the shortcut menu(see page 134)
• Using the smart manipulator toolbar(see page 138)
• Using the drag-and-drop operation in the SysML Internal Block diagram(see page 138)
Using the Display Parts/Ports dialog
You can use the Display Parts/Ports dialog to control how much of a structure should be displayed.
The Display Parts/Ports dialog opens automatically when creating a new SysML Internal Block
diagram(see page 520) for a Block(see page 545) element that owns ports and properties. It can also be
accessed and opened in the structure diagrams that have already been created. The Display Parts/
Ports dialog allows you to:
• Preview all parts(see page 560), ports, and other properties in one place.
• Manually or automatically select the required parts, ports, and other properties you want to
display.
• Manually or automatically choose the deeply nested260 parts, ports, and other properties you
want to display.
• Define layout options for parts.
• Specify layout options for ports.
The Display Parts/Ports dialog consists of the following areas:
• Dialog toolbar allows you to show or hide additional information about listed elements.
• Element tree displays all owned internal structure of a context Block(see page 545).
• Panel is a context-sensitive area that depends on the selected property from the Element tree. It
allows you to batch select parts/ports in the Element tree. You can select all, clear all, or choose
properties only by type, stereotype, or aspect.
• Options area allows you to choose the layout of the selected parts and ports when they appear in
the diagram.
260 https://docs.nomagic.com/display/MDTWRT/Nesting+parts+that+are+association+ends
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
129
The following procedure will guide you in working with the Display Parts/Ports dialog when you
want to display required ports and properties on the diagram pane.
To display ports and properties using the Display Parts/Ports dialog
1. Open the Display Parts/Ports dialog:
• When creating a new SysML Internal Block diagram(see page 520), the dialog opens
automatically.
• When editing an already created structure diagram(see page 517), the dialog can be opened
in the following ways:
- Select either a diagram frame or single/multiple element shapes. On the diagram toolbar,
click
and choose Display Parts/Ports.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
130
- Right-click either a diagram frame or single/multiple element shapes, and select Display
> Display Parts/Ports.
2. (Optional) Enable buttons from the Display Parts/Ports dialog toolbar if you want to show or
hide additional information about listed elements:
• Click
to show the full path of elements.
• Click
to show the full types of elements.
• Click
to show the inherited elements.
• Click
to show the inherited properties.
3. Choose the properties you want to display, using one or more of the following methods:
Warning
If certain check boxes are inactive in the element list, those elements are already
displayed in the diagram.
• Use the element tree located on the left side of the dialog:
- Manually select individual check boxes one by one.
- Select recursively nested elements by holding down the Shift key while selecting the
corresponding check box for the element.
Example 1
All properties (in this example all ports AirFlowPort, ElectricityPort,
AutomotiveBusesPort) of the Air Distribution Part Property are selected
recursively by holding down the Shift key while selecting the corresponding check
box from the element tree in the Display Parts/Ports dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
131
• Use the context-sensitive panel located on the right side of the dialog:
- Select Properties group - displays all property types (including your own stereotypes261)
that are owned by the selected element from the element tree located on the left side of
the dialog.
- Select Ports group - displays all port types (including your own stereotypes) that are
owned by the selected element from the element tree located on the left side of the
dialog.
- Select All - selects all check boxes that are expanded from the element tree located on
the left side of the dialog.
- Clear All - clears all check boxes, even those that are collapsed (deep nested), from the
element tree located on the left side of the dialog.
Example 2
All Electrical ports (in this example only one ElectricityPort port) of the Data Transfer
Part Property are selected in the element tree by using the Select Ports group in
the context-sensitive panel of the Display Parts/Ports dialog.
261 https://docs.nomagic.com/display/MDTWRT/Stereotype
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
132
4. Specify the layout options in the Options area:
• Parts layout: select the Layout Parts check box if you want the Part Property shapes to be
arranged in the automatic layout.
• Usage of layout template: select the Use Layout Template check box if you want the
layout template to be applied. When this check box is selected, the Part Property, which is
included in the layout template, and all its Ports from the layout template are selected
automatically.
• Showing connectors: select the Show Connectors check box if you want the connectors to
be displayed.
• Ports layout on Part Property shape:
- Top/Bottom - displays ports on the Part Property shape from top to bottom.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
133
- Left/Right - displays ports on the Part Property shape from left to right.
5. Click OK.
After those steps, all parts, ports, other properties that were selected in the Display Parts/Ports dialog
are displayed on the diagram pane.
Using the diagram toolbar and the shortcut menu
In the structure diagrams that have already been created, you can display ports, properties, and hide all
ports by using the commands from:
• The Display button on the diagram toolbar.
• The Display command group under the shortcut menu.
You can also use the Display button and Display command group from the shortcut menu as their
functions are identical. All those commands are interactive and depend upon the selection on the
diagram pane. For example, if the Part Property shape is selected on the diagram pane, the menu
contains only the commands that can be applied to the selected Part Property shape. If you select
nothing in the diagram pane, the menu shows commands that can be applied to the whole diagram.
These commands under the Display button and shortcut menu are comprised of elements that are still
not displayed on the diagram according to their:
• Metatypes.
• Stereotypes.
• Types stereotypes.
The following procedures will show you how to:
• How to display Ports, Properties using the Display button.(see page 134)
• How to display Ports, Properties using the shortcut menu.(see page 135)
• How to hide Ports.(see page 136)
To display ports, properties using the Display button
1. Select either a diagram frame or single/multiple element shapes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
134
2. On the diagram toolbar, click
.
3. From the opened command menu, select required properties or ports to display:
- All ports that are available to display are listed under the Display Ports command group.
Important
If nothing is selected on the diagram pane, the Display Ports command group will
contain commands that allow you to display two levels of structure: ports are displayed
on the diagram frame and on the first level parts.
- All properties that are available to display are listed under the Display Properties
command group.
After selecting the required command from the Display button, the appropriate properties are
displayed on the diagram pane.
To display ports, properties using the shortcut menu
1. Right-click either the diagram pane or single/multiple element shapes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
135
2. From the shortcut menu, select the Display command group.
3. From the opened command menu, select required properties to display:
- All Ports that are available to display are listed under the Display Ports command group.
Important
If nothing is selected on the diagram pane, the Display Ports command group allows
you to display two levels of structure: ports are displayed on the diagram frame and on
the first level parts.
- All Properties that are available to display are listed under the Display Properties
command group.
After selecting the required command from the Display command menu, the appropriate
properties' ports are displayed on the diagram pane.
To hide ports
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
136
• Select either a diagram pane or any number of element shapes. On the diagram toolbar, click
and choose Hide All Ports.
• Right-click either a diagram pane or any number of element shapes, and select Display > Hide
All Ports.
After selecting the command, the ports of the selected shape will be hidden from the diagram
pane, but not removed from the model.
Warning
If the Hide All Ports command doesn't appear, the selection or diagram doesn't contain
any ports that can be hidden.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
137
Using the smart manipulator toolbar
When the properties are already displayed on the structure diagrams(see page 517), you can display their
direct ports using the Display All Ports button from the smart manipulator toolbar. It only allows you
to display first level ports, and does not allow you to display deeply nested ports. To display deeply
nested ports, you should use the Display Parts/Ports dialog. The steps below show how to display
ports of a selected property shape.
To display Ports on shapes
1. Select the required element shape or a diagram frame.
2. From the smart manipulator toolbar, click
.
All first level Ports of the selected shape will be displayed on the diagram pane.
Warning
If the Display All Ports button is not available, the selected element or diagram doesn't
own any Port.
Using the drag-and-drop operation in the SysML Internal Block diagram
The most efficient way to create a new Part Property(see page 560) and display it with all ports in the
SysML Internal Block diagram(see page 520) is by dragging the Block(see page 545) or Property elements.
This method only allows you to display first level properties, and does not allow you to display deeply
nested properties. To display deeply nested elements, use the Display Parts/Ports dialog. The
following procedures will show you:
• How to create a Part Property shape and how to display all its ports when dragging the Block
element.(see page 138)
• How to display a Part Property shape and all its ports by dragging the Part Property element.(see
page 140)
You can create a new Part Property by dragging the Block(see page 545) element from the Model
Browser262to the SysML Internal Block diagram(see page 520) pane. The newly created Part Property will
be typed by the dragged Block(see page 545) and displayed on the diagram pane. If this Block has ports
defined, you can display them by using the long drag, and selecting an appropriate option from the
opened menu (see Example 3).
262 https://docs.nomagic.com/display/MDTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
138
To create and display a Part Property(see page 560) by dragging a Block(see page 545) element
• Drag a single or a multiple Block(see page 545) element from the Model Browser263 onto the
diagram pane.
• Drag a single or a multiple Block(see page 545) element from the Model Browser264 onto the
diagram pane, and hold it down until the Tooltip appears (long drag). Drop it, and, from the
opened menu, select the Create Property Symbol command.
The new Part Property(see page 560) is created in the model, and displayed on the diagram pane265.
The newly created Part Property(see page 560) is typed by the dragged Block(see page 545)
automatically.
To create and display a Part Property(see page 560) and display all its ports by dragging a Block(see page 545)
element
• Drag a single or a multiple Block(see page 545) element from the Model Browser266 onto the
diagram pane267, and hold it down until the Tooltip appears (long drag).
• Drop it, and, from the opened menu, select the Create Property Symbol and Display All Ports
command.
The new Part Property(see page 560) is created in the model, and displayed with all its ports on the
diagram pane. The newly created Part Property is typed by the dragged Block automatically.
Tip
After creating an element, it is beneficial to find its location in the model tree
by performing one of the following:
- Right-click the shape, and, from the shortcut menu, choose the Select in Containment
Tree command.
- Select the shape and press Alt+B.
Example 3
After selecting the Create Property Symbol and Display All Ports command, and dragging
(long drag) the Block element to Control and Air Distribution Group Internal Block diagram pane,
it creates a new Part Property typed by a Air Distribution Block and displays all ports on it.
263 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
264 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
265 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
266 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
267 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
139
You can display a Part Property(see page 560) shape by dragging a Part Property element from the Model
Browser268 to the SysML Internal Block diagram(see page 520) pane. If this Part Property has ports
defined, you can display them by using the long drag, and selecting an appropriate option from the
opened menu (see Example 4).
The following procedures describe how to display Part Property shape and all its ports by dragging the
Part Property element.
To display a Part Property(see page 560) shape by dragging a Part Property element
• Drag a single or a multiple Part Property element from the Model Browser269 onto the diagram
pane270.
• Drag a single or a multiple Part Property element from the Model Browser271 onto the diagram
pane272, and hold it down until the Tooltip appears (long drag). Drop it, and, from the opened
menu, select the Create Part Property Symbol command.
268 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
269 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
270 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
271 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
272 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
140
The Part Property shape is displayed on the diagram pane.
To display a Part Property(see page 560) with all of its ports by dragging a Part Property element
• Drag a single or a multiple Part Property element from the Model Browser273 onto the diagram
pane274, and hold it down until the Tooltip appears (long drag).
• Drop it, and, from the opened menu, select the Create Part Property Symbol and Display All
Ports command.
The Part Property shape is displayed with all its ports on that shape.
Example 4
After selecting the Create Part Property Symbol and Display All Ports command, and
dragging (long drag) the Part Property element to Control and Air Distribution Group Internal
Block diagram, it displays Part Property shape and all ports on it.
After completing the steps outlined above, the Part Property (see page 560)shape and/or all its ports are
displayed on the SysML Internal Block diagram(see page 520).
273 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
274 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
141
Displaying properties of a port
If you display the properties of a port, all properties of its type will be displayed inside the port shape
and Part Property compartments will be enabled for that port.
To enable Part Property compartments on the port shape
1. Select a port shape whose type has properties.
2. Do one of the following:
• On the diagram toolbar, click
.
• From the shortcut menu, point to the Display command group.
3. Select the required properties to display.
The properties are displayed inside the port shape. The Part Property compartments are enabled for
the port.
The example below shows the p1 port both before and after displaying its type properties. The
properties displayed on the port shape are the Pressure Status Flow Property and the suspensionSensor
Part Property, which are the properties of the selected port type iSuspension Block. After the display of
properties has been selected, compartments are automatically enabled for the p1 port.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
142
Related pages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
143
• Applying Stereotypes275
• Nesting parts that are association ends276
• Mapping ports on a Part type change277
• Proxy Port(see page 562)
• Full Port(see page 558)
• Flow Port(see page 556)
• Displaying elements278
• SysML Internal Block Diagram(see page 520)
• Autowiring(see page 189)
• Connecting Parts Through Interface(see page 176)
• Enforce Ports Compatibility mode(see page 192)
• Hiding direction arrow on Port shape(see page 166)
• Property path notation(see page 145)
Sample model
The models used in the figures of this page are:
• The Vehicle Climate Control Unit sample model. To open this sample download Vehicle Climate
Control Unit.mdzip279.
• The Vehicle parts under ports sample model. To open this sample download Vehicle parts
under ports.mdzip280.
Displaying internal structures on structured classifiers
You can represent the internal structure of the structured classifier on the diagram pane in all
diagrams.
The internal structure of the selected shape can be represented only if the selected element
contains its own SysML Internal Block Diagram.
For example, in a SysML Internal Block Diagram(see page 520) on a Part shape or in a SysML Block
Definition Diagram(see page 519) on a Block(see page 545) shape, you can display its ports, parts, and
connectors.
In the SysML Internal Block Diagram you can display:
• Parts
• Nested parts
275 https://docs.nomagic.com/display/MDTWRT/Stereotype
276 https://docs.nomagic.com/display/MDTWRT/Nesting+parts+that+are+association+ends
277 https://docs.nomagic.com/display/MDTWRT/Mapping+ports+on+a+Part+type+change
278 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
9 https://docs.nomagic.com/download/attachments/82753878/Vehicle%20Climate%20Control%20Unit.mdzip?
27
api=v2&modificationDate=1481202372173&version=1
0 https://docs.nomagic.com/download/attachments/82753878/Vehicle%20parts%20under%20ports.mdzip?
28
api=v2&modificationDate=1490012487515&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
144
• Ports on the frame
• Ports on every part
• Paths for every part and port
Nested parts can be displayed with the dot notation in addition to using structure compartment. The
following procedure shows how to display the internal structure of a selected classifier.
To display the internal structure of a selected classifier
1. On the diagram pane, select the classifier shape for which you want to display the internal
structure.
2. Do one of the following:
- Open the selected shape's shortcut menu, click Display > Display Internal Structure, select
the name of the classifier, and then select a diagram containing the internal structure.
- On the diagram toolbar click
, choose the Display Internal Structure command, select
the name of the classifier, and then select a diagram containing the internal structure.
After those steps are completed, the internal structure is displayed inside the selected classifier
(see figure below).
Related pages
• Displaying parts and ports281
• Displaying elements282
• Nesting parts that are association ends283
• SysML Internal Block Diagram284
• Property path notation285
Property path notation
On this page
• Displaying type names in a property path(see page 146)
• Converting nested properties to dot notation(see page 147)
• Converting properties with dot notation to a structure of nested properties(see page 149)
• Moving a part from the diagram to a structure compartment(see page 149)
When modeling deeply nested structures, you can display nested properties within a system hierarchy
in the SysML Internal Block Diagram(see page 520) and SysML Parametric Diagram(see page 523). You can
represent nested properties by displaying the property shape inside another property shape. For
example, on the left side of the figure below, the wheel, brake, and caliper are nested parts represented
as nested Part Property(see page 560) shapes. Representing deeply nested properties in this manner
requires a lot of space in the diagram.
281 https://docs.nomagic.com/display/SYSMLPTWRT/Displaying+parts+and+ports
282 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
283 https://docs.nomagic.com/display/MDTWRT/Nesting+parts+that+are+association+ends
284 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Internal+Block+Diagram
285 https://docs.nomagic.com/display/SYSMLPTWRT/Property+path+notation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
145
Alternatively, you can represent nested properties by using dot notation, which expresses a structural
hierarchy compactly in the form of a text string. Dot notation references a nested property accessible
through a sequence of intermediate properties from a referencing context. The name of the referenced
property is built by a string of names separated by “.”, resulting in a path name that identifies the
property in its local context. This notation is purely a notational shorthand for a property that could
otherwise be shown within a structure of nested property shapes. For example, on the right side of the
figure below, the nested parts are represented using dot notation with the higher-level part names
(vehicle, wheel, and brake).
The meaning of both of them is the same: caliper is a part of brake which is a part of wheel; wheel is a
part of vehicle.
Two alternative ways to represent nested parts in the SysML Internal Block
Diagram.
Additional information
The representation of nested properties with dot notation form is used on Lifelines286 and in
Instance Table287 column headers.
When working with nested properties, manage them as follows:
• Displaying type names in a property path(see page 146)
• Converting nested properties to dot notation(see page 147)
• Converting properties with dot notation to a structure of nested properties(see page 149)
• Moving a part from the diagram to a structure compartment(see page 149)
Displaying type names in a property path
The dot notation separates the property names. However, there are many situations when properties
are unnamed (see the right side of the figure below).
286 https://docs.nomagic.com/display/MDTWRT/Lifeline
287 https://docs.nomagic.com/display/MDTWRT/Instance+table
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
146
The representation of a property path with dot notation of nested parts when they are unnamed.
If you use an earlier version than 18.5, you must set the option which shows type names in a property
path with dot notation. For a new project, this option is enabled by default.
To show type names in the property path
1. Select Options > Project.
2. In the Project Options dialog288, set the Show Type Names in Nested Path option to true.
The type names of the nested parts are shown in the property path by separating them with a
colon (:).
For example, after enabling the Show Type Names in Nested Path option, the part with dot notation,
on the right side of the figure, provides information about nested part types.
The property type names are shown in the property path with dot notation.
Converting nested properties to dot notation
You can convert nested properties from the system structure to dot notation form.
To convert nested properties to dot notation form
288 https://docs.nomagic.com/display/MDTWRT/Project+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
147
• Select the nested property shape from the property shape structure, drag it to the empty space
on the diagram pane, and in the Question dialog, click the Represent as Shortcut button.
• Open the Display Parts/Ports dialog289 or Display Parameters/Properties dialog290, select an
appropriate deep nested property in the element tree, and click OK.
The nested property is displayed in dot notation form.
9 https://docs.nomagic.com/display/SYSMLPTWRT/Displaying+parts+and+ports#Displayingpartsandports28
UsingtheDisplayParts/Portsdialog
0 https://docs.nomagic.com/display/SYSMLPTWRT/
29
Displaying+parameters+and+properties#Displayingparametersandproperties-UsingtheDisplayParameters/
Propertiesdialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
148
Converting properties with dot notation to a structure of nested properties
You can convert a property shape displayed with dot notation form to a nested properties structure.
To convert properties with dot notation form to a nested properties structure
1. From the property shortcut menu, select Refactor > Convert to Nested Parts.
The property with dot notation is converted to a structure of nested properties.
The part caliper represented with dot notation is converted to a nested structure of Part Properties.
Moving a part from the diagram to a structure compartment
You can move a property shape with dot notation from the diagram back to the compartments291 of a
nested property.
To move a property with dot notation to the compartments of a nested property
1. Select the property shape with dot notation.
2. Drag it to the structure compartments.
The property is moved to the structure compartments and shown in dot notation form.
291 https://docs.nomagic.com/display/MDTWRT/Compartments
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
149
The part caliper is moved back to the nested property compartments.
Related pages
• SysML Internal Block Diagram(see page 520)
• SysML Parametric Diagram(see page 523)
• Displaying parts and ports (see page 128)
• Displaying parameters and properties(see page 304)
• Connecting parts through interface(see page 176)
• Part Property(see page 560)
• Reference Property(see page 563)
• Value Property (see page 569)
• Constraint Property(see page 550)
• Constraint Parameter(see page 549)
• Flow Property(see page 558)
• Participant Property(see page 561)
• Bound Reference(see page 546)
• Distributed Property(see page 553)
Sample model
The model used in the figures of this page is the Car Braking Analysis sample model. Download
CarBrakingAnalysis.mdzip292.
2 https://docs.nomagic.com/download/attachments/82753878/CarBrakingAnalysis.mdzip?
29
api=v2&modificationDate=1489670175286&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
150
SysML Internal Block Diagram context
When creating a new SysML Internal Block Diagram(see page 520) for an element which cannot be the
context of this diagram (e.g. Package293), the new context element (which is a Block(see page 545)) is
created automatically.
Turning off automatic creation of a diagram context element
To turn off automatic creation of a diagram context element
1. On the main menu294, select Project > Options.
2. In the Project Options dialog, find the Diagram Context option.
3. Select the Do Not Create value.
4. Click OK.
The automatic creation of a diagram context element is turned off.
This means that when you create a new diagram for an element which cannot be the context of this
diagram (e.g. Package295), the Select Diagram Context dialog will open automatically. It allows you to
select an existing element as a context, create a new context element by enabling the Creation Mode,
or click the Cancel button if you do not want to specify the diagram context. The diagram will be
created in the Package.
If you want to enable the automatic creation of a diagram context element, select the Create
Automatically value for the Diagram Context option.
Changing the diagram context element
After the diagram is created, you can change its context element.
To change the diagram context element
1. Right-click the diagram and select Specification.
2. In the Specification window296, find the Context property.
3. Click on its value cell, and select
.
4. In the Select Diagram Context dialog, do one of the following:
- Select an existing element as a context in the Tree or List tab
- Create a new context element by enabling the Creation Mode > Create and select it.
5. Click OK.
The diagram context element is changed.
293 https://docs.nomagic.com/display/MDTWRT/Package
294 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
295 https://docs.nomagic.com/display/MDTWRT/Package
296 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
151
Creating nested parts by pasting items from the list
When you have an indented list of the items you want to create as parts in the diagram, you can copy
the list and paste it in the SysML Internal Block Diagram(see page 520) diagram pane.
You can copy the list from a text editor (Word, Notepad, etc.), web page, PDF file, etc.
To create parts by pasting items from the list
1. Copy the list.
2. Go to the diagram and press Ctrl+V.
3. In the opened menu, select Element.
4. Select Part Property (or other Property) element type.
5. In the question dialog click Yes if you need to create nested parts.
The nested parts are created according to the copied list
Related pages
• Creating elements from other resources(see page 399)
Defining interfaces using ports
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
152
Ports are points at which external entities can connect to and interact with a Block(see page 545) in
different or more limited ways than connecting directly to the Block itself. They are properties with a
type that specifies features available to the external entities via Connectors297 to the ports. Proxy
Ports(see page 562) define the boundary by specifying which features of the owning Block(see page 545) or
Part Properties(see page 560) are visible through external connectors, while Full Ports(see page 558) define
the boundary with their own features. Proxy Ports are always typed by Interface Blocks(see page 559), a
specialized kind of Block(see page 545) that has no behaviors or internal parts. Full Ports cannot be
behavioral in the UML sense of standing in for the owning object, because they handle features
themselves, rather than exposing features of their owners, or internal parts of their owners.
In the following figure, the chanel2 Proxy Port is typed by GrayCodeIB Interface Block which contains two
Flow Properties of Pulse Signal: out a and out b. It means the Proxy Port that is typed by GrayCodeIB
Interface Block can send and receive Flow Items of Pulse Signal.
297 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
153
The GrayCodeIB Interface Block is a type of Proxy Ports.
To define interfaces using ports
1. Create a Block(see page 545) and decompose it in the SysML Internal Block Diagram(see page 520).
How to define Blocks>>(see page 112)
How to create Block internal structure >>(see page 119)
2. In the SysML Internal Block Diagram(see page 520), create Proxy Ports(see page 562). How to create
ports >>(see page 155)
3. Create Interface Block(see page 559) in the model and specify its Flow Properties(see page 558). How
to define Interface Block >>(see page 167)
4. Select create Interface Block as Proxy Port type. How to select port type >>(see page 159)
If ports are connected via Connector298, both port types must be compatible.
If the same Interface Block(see page 559) is set as the type for ports on both ends, one of the ports should
be conjugated. The conjugate mechanism reverses the direction of the Flow Properties(see page 558) and
makes the connection compatible. For this, you can conjugate a port or create a Conjugated Interface
Block(see page 547).
To conjugate a port, do one of the following:
• On the diagram pane, right-click the port shape, and select the Is Conjugated command.
• Open the Specification window299 of port, and set the Is Conjugated property value to true.
The port is conjugated and the tilde symbol (~) appears before the port's type. See the following
figure.
To create a Conjugated Interface Block
• Right-click one or more Interface Blocks and select Tools > Create Conjugated Interface Block.
The Conjugated Interface Block(see page 547) is created with the same Directed Features(see page
553) and Flow Properties(see page 558) as the original but with opposite directions. It is created
under the same owner as the original Interface Block.
298 https://docs.nomagic.com/display/MDTWRT/Connector
299 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
154
Related pages
• Creating ports(see page 155)
• Defining Interface Blocks(see page 167)
• Provided and Required Interfaces(see page 171)
Sample model
The model used in the figure of this page is the InvertedPendulum sample model. To open this
sample do one of the following:
• Download InvertedPendulum.mdzip300.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\Inverted
Pendulum\Inverted Pendulum.mdzip.
Creating ports
On this page
• Introduction(see page 155)
• Creating ports(see page 156)
• Converting the Part Property to Full Port(see page 156)
• Creating a port while creating a Connector(see page 157)
Introduction
You can create the following kinds of ports by using the SysML Plugin:
0 https://docs.nomagic.com/download/attachments/82753878/InvertedPendulum.mdzip?
30
api=v2&modificationDate=1498477335401&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
155
• Proxy Ports(see page 562) - expose features of the owning Block or its internal Part Properties.
• Full Ports(see page 558) - support their own features.
• Flow Port(see page 556) - since it is deprecated, you use the Proxy Port typed by the Interface Block
instead of the non-atomic Flow Port.
Creating ports
The procedure below is suitable for all kinds of ports.
To create a port, do one of the following:
• From the diagram palette, select the Proxy Port, Full Port, or Flow Port button and click the
element on the diagram pane.
• Select an element on the diagram pane and from the smart manipulator toolbar, click the Proxy
Port, Full Port, or Flow Port button.
• In the Block Specification window301, select the Ports/Interfaces property group, click the
Create button, and select Proxy Port, Full Port, or Flow Port button.
You can also create Proxy Ports302 at both ends of the Connector 303by dragging the Interface
Block(see page 559). Learn how to connect parts through interface >>(see page 176)
Converting the Part Property to Full Port
A Full Port is a part on a boundary. You can convert your Parts Properties into Full Ports by dragging
them to the diagram frame.
Note
All ports, connectors, and other information, including the layout, will remain unchanged.
To convert a Part Property to the Full Port
1. Select the Part Property shape and drag it to the diagram frame.
2. When the diagram frame is highlighted in blue, drop the shape.
The Full Port is created on the diagram frame.
Note
When the Full Port is created on the diagram frame, you cannot drag it back (except to
Undo the conversion).
301 https://docs.nomagic.com/display/MDTWRT/Specification+window
302 https://docs.nomagic.com/display/SYSMLPTWRT/Proxy+Port
303 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
156
The Part Property converted to the Full Port.
Creating a port while creating a Connector
The procedure below is suitable for all kinds of ports.
To create a port automatically when drawing a Connector from a port to a Part Property
1. Select a port shape on the diagram pane.
2. On the smart manipulator toolbar, click
. Select Part Property shape appears.
The menu appears if a new port can be created on the Part Property or it has hidden
ports.
3. From the Select Port menu, select one of the following commands:
• None - if you want to connect the Connector straight to the part.
• On a port in the list. Hidden ports of the part are listed. The selected port will be represented on
the diagram and the connector will be connected to it.
• New Port - to create a new port with the same name, type, and multiplicity as the port from
which the connector is drawn.
• New Nested Port - to create a new nested port. Note that the command exists only if the
connector is drawn from the nested port.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
157
You can draw a Connector to a port, too, and the menu appears. As a result, the nested port is
created.
The Select Port menu opens after drawing the Connector from the CANPort Port to Part Property typed by
GPS Module Block.
Related pages
• Displaying parts and ports304
• Connecting parts through interface305
• Autowiring function306
• Layout templates307
• Refactoring308
• Proxy Port(see page 562)
• Full Port(see page 558)
• Flow Port(see page 556)
• Connector309
• Interface Block(see page 559)
• Block(see page 545)
Port features
• Selecting port type(see page 159)
• Direction prefixes(see page 161)
• Hiding direction arrow on port shape(see page 166)
• Hiding the multiplicity(see page 166)
• Enabling Part compartments on Port shape(see page 166)
304 https://docs.nomagic.com/display/SYSMLPTWRT/Displaying+parts+and+ports
305 https://docs.nomagic.com/display/SYSMLPTWRT/Connecting+parts+through+interface
306 https://docs.nomagic.com/display/SYSMLPTWRT/Autowiring+function
307 https://docs.nomagic.com/display/SYSMLPTWRT/Layout+templates
308 https://docs.nomagic.com/display/MDTWRT/Refactoring
309 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
158
Sample model
The model used in the figures on this page is the diagram aspects sample model. To open this sample
do one of the following:
• Download diagram aspects.mdzip310.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\diagram aspects.mdzip.
Selecting port type
The Type Selection Mode turns on the automatic port and part type selection. When the function is
turned on:
• On a part creation, the Select Type dialog appears. The same is valid when creating ports.
• If a part does not have a specified type, then a new type for the part will be created on a nested
port creation. A type for the new port will be created, too.
• If a part does not have a name, type the name on the part shape on the diagram and the type
will be created automatically. The typed name will be the name of the part type (NOTE: that part
will be without a name).
0 https://docs.nomagic.com/download/attachments/82753878/diagram%20aspects.mdzip?
31
api=v2&modificationDate=1498237635845&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
159
To turn on the Type Selection Mode
• On the Composite Structure, Class, Component, or Package diagrams palette311, click
.
The Type Selection Mode works separately for each project.
311 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
160
You can save the time spent looking for elements in the type selection list by using package
imports312.
313
You can set the Interface Block(see page 559) as a type of Proxy Port314 by dragging Interface
Block onto Connector315. Learn how to connect parts through interface >>(see page 176)
Direction prefixes
You can display and hide the direction prefixes. They help to identify directions of Flow Properties(see
page 558) and Proxy Ports(see page 562). Read the following sections to learn how to work with direction
prefixes:
• Displaying direction prefixes of Proxy Port(see page 161)
• Displaying combined direction on Proxy Port shape(see page 164)
• Hiding direction prefixes of Flow Property on Part Property shape(see page 164)
• Displaying direction prefixes of Full Port(see page 165)
Displaying direction prefixes of Proxy Port
The direction prefix of the Proxy Port helps to identify its direction.
The direction prefixes of Proxy Ports are displayed:
• In Block Compartment(see page 161)
• In the Model Browser(see page 162)
• On the Proxy Port shape(see page 163)
• On the ToolTip(see page 163)
In Block Compartment
To display the Proxy Port direction prefixes in the Block Compartment
1. Right-click the Block and select the Symbol Properties.
312 https://docs.nomagic.com/display/MDTWRT/Package+import
313 https://docs.nomagic.com/display/MDTWRT/Selecting+port+and+part+types
314 https://docs.nomagic.com/display/SYSMLPTWRT/Proxy+Port
315 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
161
2. In the Symbol Properties dialog, set the Show Proxy Port Direction in Compartment property
value to true.
In the Model Browser
The direction prefixes of the Proxy Port in the Model Browser are displayed automatically.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
162
On the Proxy Port shape when its name is displayed inside the shape
To display the direction prefix on the Proxy Port shape
1. Right-click the Proxy Port shape and select Position of Labels > Name and Type Labels Inside
or All Labels Inside.
2. Right-click the Proxy Port shape and select the Symbol Properties.
3. In the Symbol Properties dialog, set the Show Direction Prefix Inside Port property value to
true.
The direction prefix is displayed on the selected Proxy Port shape.
On the ToolTip
The direction prefixes of the Proxy Port on the ToolTip are displayed automatically. To see it, move the
pointer over the Proxy Port or its name.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
163
Displaying combined direction on Proxy Port shape
Combined direction consists of all owned and inherited flow properties and directed features of the
Proxy Port. The flow properties direction are shown by default on the Proxy Port shape. If all features
have direction "out" or "provided", the combined direction is "out". If all features have direction "in"
or"required", the combined direction is "in". Otherwise the direction is "inout".
To include directed features into combined direction of the Proxy Port
1. From the main menu, select Options > Project.
2. In the Project Options dialog, on the right side, click General > SysML.
3. Set the Include Directed Features into Combined Direction of Proxy Port property value to
true.
Hiding direction prefixes of Flow Property on Part Property shape
To hide direction prefix of Flow property on Part Property shape
1. Right-click the Part property shape and select Symbol Properties.
2. In the Symbol Properties dialog, set the Show Flow Property Direction in Compartment
property value to false.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
164
Displaying direction prefixes of Full Port
The direction prefix of the Full Port helps to identify its direction.
The direction prefixes of Full Ports are displayed:
• In the Model Browser(see page 165)
• On the Full Port shape(see page 165)
• On the ToolTip(see page 165)
In the Model Browser
The direction prefixes of the Full Port in the Model Browser are displayed automatically.
On the Full Port shape when its name is displayed inside the shape
To display the direction prefix on the Full Port shape
1. Right-click the Full Port shape and select Position of Labels > Name and Type Labels Inside or
All Labels Inside.
2. Right-click the Full Port shape and select the Symbol Properties.
3. In the Symbol Properties dialog, set the Show Direction Prefix Inside Port property value to
true.
The direction prefix is displayed on the selected Full Port shape.
On the ToolTip
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
165
The direction prefixes of the Full Port on the ToolTip are displayed automatically. To see it, move the
pointer over the Full Port or its name.
Hiding direction arrow on port shape
To hide the direction arrow on Proxy Port(see page 562) or Flow Port(see page 556) shape
1. Right-click the Proxy Port or Flow Port shape and select the Symbol Properties.
2. In the Symbol Properties dialog, set the Show Port Direction property value to false.
3. Click Close.
The direction arrow is hidden on the selected port shape.
The direction arrow of the Full Port(see page 558) shape is hidden by default. To display it, set the
Show Port Direction property value to true in the Symbol Properties dialog316.
Hiding the multiplicity
You can hide the multiplicity next to the port and Part Property type.
To hide the multiplicity
1. Right-click the Flow Port(see page 556), Full Port(see page 558), Proxy Port(see page 562), or Part
Property(see page 560) shape and select Symbol Properties.
2. In the Symbol Properties dialog317, set the Show Multiplicity property value to false.
3. Click Close.
Enabling Part compartments on Port shape
You can display a Port shape as a Part and display compartments of the Port type in it. This means you
can represent the inner structure or properties of the Block type in a Port shape.
To enable Part compartments on the Port shape
316 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
317 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
166
1. On the diagram pane, right-click the selected Port.
2. In the open shortcut menu, select Enable Part Compartment. The Port is represented as a Part
symbol in the diagram, and the Compartments smart manipulator activates on the Port.
3. Click the Compartments smart manipulator to open the list of properties and select properties
you want to display in the Port shape.
To restore the usual representation of the Port, you must delete the Port from the diagram and add it
again.
Related pages
• Compartments318
Defining Interface Blocks
To define Interface Block
1. Create Interface Block in the model in one of the following way:
• From the SysML Block Definition(see page 519) diagram palette(see page 15), select
the Interface Block button, and click the on the diagram pane(see page 15).
• In the Model Browser(see page 20), right-click the Package319in which you want to store your
interfaces, and select Create Element > Interface Block.
2. Specify Flow Properties in one of the following way:
• Open the Specification window320 of Interface Block, select Properties group, click the
Create button, and select Flow Property. Type its name, specify its direction, other
properties, and click Close.
• In the Model Browser(see page 20), right-click the Interface Block, and select Create Element
> Flow Property. Type its name, specify its direction, or other properties.
318 https://docs.nomagic.com/display/MDTWRT/Compartments
319 https://docs.nomagic.com/display/MDTWRT/Package
320 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
167
Defined Interface Block and specified its Flow Properties in the Model Browser
and Specification window.
Related pages
• Managing Interfaces of the Proxy Port(see page 168)
• Managing Block Interfaces(see page 170)
Sample model
The model used in the figure of this page is the InvertedPendulum sample model. To open this
sample do one of the following:
• Download InvertedPendulum.mdzip321.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\Inverted
Pendulum\Inverted Pendulum.mdzip.
Managing Interfaces of the Proxy Port
The detailed information about Proxy Port interfaces is collected on the left of the Port Specification
window322 > Interface Block Properties.
1 https://docs.nomagic.com/download/attachments/9919520/InvertedPendulum.mdzip?
32
api=v2&modificationDate=1498477335401&version=1
322 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
168
The Interface Block properties group in the Specification window of the Proxy Port.
Column name
Description
Name
Compartment name.
Type
Compartment type.
Default Value
Use to set the value manually.
Owner
Interface Block(see page 559) which is the owner of the selected
Proxy Port(see page 562).
Button name
Description
Opens the Specification window323 of the compartment
Up
Move item to upper position in the list. The items are automatically
renumbered after moving.
Down
Move item to lower position in the list. The items are automatically
renumbered after moving.
323 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
169
Button name
Description
Create
Opens the list with the available to create properties. Click to create the
Value Property(see page 569), Flow Property(see page 558) or Reference
Property(see page 563).
Redefine
Duplicates the selected item and marks its name in ascending order.
Delete
Removes the selected item from the list.
Managing Block Interfaces
All owned and inherited ports and their interfaces(see page 559) of the selected Block(see page 545) are
collected on the left of the Block Specification window324 > Ports/Interfaces. Manage them by creating,
redefining or deleting.
324 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
170
Column name
Description
Direction
Direction prefix of the port. The tilde symbol (~) appears before the
direction prefix when the port is conjugated. How to conjugate port
>>(see page 152)
Port Name
Name of the port.
Port Type
Type of the port.
Type Features
Features of the port type.
Button name
Description
Opens the Specification window of the selected port.
Create
Opens the list with the available to create properties. Click to create
the Connector Property(see page 192), Part Property(see page 560),
Reference Property(see page 563), Value Property(see page 569), Constraint
Property(see page 550), Flow Property(see page 558).
Redefine
Duplicates the selected item and marks its name in ascending order.
Delete
Removes the selected item from the list.
Provided and Required Interfaces
Provided/Required Interfaces help to identify compatible ports that can be connected together in the
SysML Internal Block Diagram(see page 520). On a port, you can:
• Creating provided and required interfaces(see page 171)
• Displaying provided/required interfaces(see page 173)
Creating provided and required interfaces
To create new Provided/Required Interface of a port
1. Do one of the following:
• Right-click any kind of port shape and from the shortcut menu select Specification. In the
Specification window325, select the Provided/Required Interfaces property group.
325 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
171
• Select a Port shape and from its smart manipulator, click
.
2. In the Provided/Required Interfaces pane, click the Add button and select either Provided or
Required.
3. Two situations are available:
• If the port is typed, the Select Interface dialog opens (see the following figure). In this
dialog you can do the following:
• Select and existing interface (and flow specifications) to be used as the Provided /
Required Interface of the port.
• Make sure the Creation Mode is switched on, click the Create button, and select
Interface. In the specification window, type its name, and click Close. The new
interface is created. Select it to be used as the Provided / Required Interface of the
port.
• If the port is not typed, the Select Port Type dialog opens (see the following figure). You
can do the following:
• Set provided interface as port type (for Provided Interface only). The Select
Interface dialog opens. In this dialog, you can either choose an existing interface or
create a new one, to be used as the Provided Interface and the type of the port.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
172
• Create “dummy” port type automatically. The Select Interface dialog opens. In
this dialog, you can either choose an existing interface or create a new one, to be
used as the Provided or Required Interface of the port. In addition, a dummy
classifier, realizing (for Provided) or using (for Required) the interface, is
automatically created and used as the type of the port.
• Select or create port type manually. If you select this option, the Select Port Type
dialog opens. In this dialog, choose a classifier to be used as the type of the port.
Click OK, the Select Interface dialog opens. In this dialog, you either choose an
existing interface or create a new one, to be used as the Provided or Required
Interface of the port. In addition, a Realization (or Usage) dependency is
automatically created from the port type to the Provided (or Required) Interface of
the port.
Displaying provided/required interfaces
To display provided/required interfaces
1. Select the port shape that has the provided/required interfaces you want to display.
2. Do one of the following:
- From the port shortcut menu, select Display > Display Provided/Required Interfaces.
- On the diagram toolbar, click
and select Display Provided/Required Interfaces.
The Required/Provided Interfaces are displayed on the port, in the form of ball-socket (lollipop)
notation.
Ports can provide or require many interfaces, therefore, you can choose which ones to display or hide.
Use the Edit Compartment dialog(see page 195) to manage the visibility of these interfaces.
Related pages
• Specifying feature directions(see page 174)
• Managing Block Interfaces326
Sample model
326 https://docs.nomagic.com/display/SYSMLPTWRT/Managing+Block+Interfaces
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
173
The model used in the figure of this page is the InvertedPendulum sample model. To open this
sample do one of the following:
• Download InvertedPendulum.mdzip327.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\Inverted
Pendulum\Inverted Pendulum.mdzip.
Specifying feature directions
Before specifying the feature directions, you need to understand the following concepts:
• A Feature Direction(see page 553) is an enumeration type that defines literals used by directed
features for specifying whether they are supported by the owning Block(see page 545), or is to be
supported by other Blocks for the owning Block to use.
• A Directed Feature(see page 553) indicates whether the feature is supported by the owning Block
(see page 545)(provided), or is to be supported by other Blocks for the owning Block to use
(required), or both (the owning block for features on types of Proxy Ports(see page 562) is the type
of the Block usage the Proxy Port is standing in for, which might be an internal part). Using nonflow properties means to read or write them, and using behavioral features means to invoke
them. Provided non-flow properties are read and written on the owning Block, while required
non-flow properties are read or written on an external Block. Provided behavioral features are
invoked with the owning Block as target, while required behavioral features are invoked with an
external Block as target (required).
The directed feature is a feature element that applies the «DirectedFeature» stereotype328. You can
specify the feature direction of the selected element.
To specify a feature direction
1. Right-click a feature’s symbols owned by a Block(see page 545) such as Part Property(see page 560),
Attribute329, Operation330, and Signal331reception.
2. From the shortcut menu, point to Feature Direction and select one of the following:
• Provided. Indicates that the feature shall be supported by the owning Block.
• Required. Indicates that the feature shall be supported by other Blocks.
• Provided and Required. Indicates that the feature shall be both provided and required.
The «DirectedFeature» stereotype is applied automatically.
Connecting Blocks in SysML Internal Block Diagram
7 https://docs.nomagic.com/download/attachments/9919520/InvertedPendulum.mdzip?
32
api=v2&modificationDate=1498477335401&version=1
328 https://docs.nomagic.com/display/MDTWRT/Stereotype
329 https://docs.nomagic.com/display/MDTWRT/Attribute
330 https://docs.nomagic.com/display/MDTWRT/Operation
331 https://docs.nomagic.com/display/MDTWRT/Signal+Event
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
174
After the composite Blocks (see page 545)are created in the SysML Block Definition Diagram(see page 519),
they can be instantiated on the SysML Internal Block Diagram(see page 520) as Part Properties(see page 560).
These Part Properties are assembled through the Connectors332, linking them directly or via their ports.
An internal structure of Coffee Machine Block where Part Properties are
connected via Proxy Ports by using the Connector.
Read the following sections to learn how to connect Part Properties in the SysML Internal Block
Diagram(see page 520):
• Creating a relationship333
• Connecting parts through interface334
• Creating Item Flow335
• Implied Connectors336
• Autowiring function337
• Enforce Ports Compatibility mode338
• Using Association Block as Connector type339
332 https://docs.nomagic.com/display/MDTWRT/Connector
333 https://docs.nomagic.com/display/MDTWRT/Creating+a+relationship
334 https://docs.nomagic.com/display/SYSMLPTWRT/Connecting+parts+through+interface
335 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+Item+Flow
336 https://docs.nomagic.com/display/SYSMLPTWRT/Implied+Connectors
337 https://docs.nomagic.com/display/SYSMLPTWRT/Autowiring+function
338 https://docs.nomagic.com/display/SYSMLPTWRT/Enforce+Ports+Compatibility+mode
339 https://docs.nomagic.com/display/SYSMLPTWRT/Using+Association+Block+as+Connector+type
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
175
Sample model
The model used in the figure of this page is the Coffee Machine sample model. To open this sample do
one of the following:
• Download CoffeeMachine.mdzip340.
• Find in modeling tool <modeling tool installation
directory>\samples\Simulation\CoffeeMachine.mdzip.
Connecting parts through interface
You can drag the Interface Block(see page 559) directly on the Connector341relationship to:
• Create Proxy Ports(see page 562) at both ends of the Connector.
• Set types (interfaces) of Proxy Ports.
• Set directions of Proxy Ports.
• Keep layout of the Connector.
That helps to ensure an efficient interface modeling in the Internal Block Diagram(see page 520).
To connect parts(see page 560) through interface
1. Create a Connector between two Part Properties(see page 560).
2. Drag an Interface Block(see page 559) on the Connector.
0 https://docs.nomagic.com/download/attachments/82753878/CoffeeMachine.mdzip?
34
api=v2&modificationDate=1481207046468&version=1
341 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
176
3. From the opened menu, select Connect Through Interface command.
The Proxy Ports(see page 562) with directions and interfaces are created.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
177
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
178
Implied Connectors
The implied relation functionality allows you to analyze existing relations among parts in the Internal
Block Diagrams. It let you know that parts are somehow related with each other without giving the
detailed view of actual Connectors and ports. You can display implied relations between parts which
are connected through ports/interfaces. By default, the implied relation is represented as a dashed line
with a short summary in label of how many actual connectors are underneath. You can specify a
different style of the implied relation by using its the Symbol Properties dialog342.
The implied relation functionality allows you to:
• Display implied relations between Part Properties(see page 560) through ports/interfaces.
• Display actual Connectors343 and ports from the implied relations level by level or all at once.
• Find actual Connectors in the Containment tree344 directly from the implied relation.
• Specify symbol properties345 of the implied relation.
342 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
343 https://docs.nomagic.com/display/MDTWRT/Connector
344 https://docs.nomagic.com/display/MDTWRT/Containment+tab
345 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
179
On the left side: the implied relation shows that 18 connectors exist between TV
and TV Tuner parts. On the right side: all 18 actual connectors and ports are
shown by using the Semantic Zoom In, or Display Underlying
Connectors command.
How to work with implied Connectors read in the following pages:
• Displaying implied Connectors(see page 180)
• Displaying actual Connectors and ports(see page 182)
• Selecting actual Connectors in the Containment tree(see page 185)
• Changing the label display mode(see page 186)
Related pages
• SysML Internal Block Diagram(see page 520)
• Connecting parts through interface(see page 176)
• Hiding direction arrow on port shape(see page 166)
• Displaying parts and ports(see page 128)
• Autowire Parts(see page 189)
• Property path notation(see page 145)
• Enforce Ports Compatibility mode(see page 192)
• Displaying elements346
• Connector347
• Proxy Port(see page 562)
• Flow Port(see page 556)
• Full Port(see page 558)
Sample model
The sample model used in the figures on this page is the Implied Connectors sample model.
Download Implied Connectors.mdzip348.
Displaying implied Connectors
You can display implied relations between Part Properties, ports, diagram frames which are connected
through ports/interfaces.
To display implied relations
346 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
347 https://docs.nomagic.com/display/MDTWRT/Connector
8 https://docs.nomagic.com/download/attachments/82754652/Implied%20Connectors.mdzip?
34
api=v2&modificationDate=1485165501366&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
180
1. Select the Part Property shape, diagram pane, or diagram frame you want to display implied
relations.
2. Do one of the following:
• Right-click to open the shortcut menu, and select Display > Display Implied Relations.
• On the diagram toolbar, click
• Press Ctrl+Alt+V.
and select Display Implied Relations.
The implied relations are displayed between Part Properties, ports, and/or diagram frame. By default,
the implied relation is represented as a dashed line with a short summary in label of how many actual
connectors are underneath. You can specify a different style of the implied relation by using its the
Symbol Properties dialog349. The Label Display Mode property is described separately in
the Changing the label display mode350 page.
Three implied relations displayed between Part Properties typed by TV and TV Tuner Blocks and diagram
frame by using the Display button from the diagram toolbar.
Related pages
349 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
350 https://docs.nomagic.com/display/SYSMLPTWRT/Changing+the+label+display+mode
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
181
• SysML Internal Block Diagram(see page 520)
• Connecting parts through interface(see page 176)
• Hiding direction arrow on port shape(see page 166)
• Displaying parts and ports(see page 128)
• Autowire Parts(see page 189)
• Property path notation(see page 145)
• Enforce Ports Compatibility mode(see page 192)
• Displaying elements351
• Connector352
• Proxy Port(see page 562)
• Flow Port(see page 556)
• Full Port(see page 558)
Sample model
The sample model used in the figures on this page is the Implied Connectors sample model.
Download Implied Connectors.mdzip353.
Displaying actual Connectors and ports
On this page
• Using the Semantic Zoom(see page 182)
• Using the Display Underlying Connectors command(see page 183)
When trying to see the detailed view underneath the implied relation, you can display actual
Connectors and ports directly from the implied relation in the following ways:
• Using the Semantic Zoom In button to show actual ports and Connectors by expanding only one
level into deep at a time. How to use the Semantic Zoom >>354
• Using the Display Underlying Connectors command to show all actual ports and Connectors at
once. How to use Display Underlying Connectors command >>355
Using the Semantic Zoom
This feature allows you to view details of the implied relation and display nested ports level by level into
deep. The Semantic Zoom In button displays ports and/or Connectors which are underneath the
implied relation by expanding only one level into deep at a time. You can use that button until all actual
351 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
352 https://docs.nomagic.com/display/MDTWRT/Connector
3 https://docs.nomagic.com/download/attachments/82754652/Implied%20Connectors.mdzip?
35
api=v2&modificationDate=1485165501366&version=1
4 https://docs.nomagic.com/display/SYSMLPTWRT/
35
Displaying+actual+Connectors+and+ports#DisplayingactualConnectorsandports-UsingtheSemanticZoom
5 https://docs.nomagic.com/display/SYSMLPTWRT/
35
Displaying+actual+Connectors+and+ports#DisplayingactualConnectorsandportsUsingtheDisplayUnderlyingConnectorscommand
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
182
ports and Connectors are displayed and implied relation disappears. The Semantic Zoom Out button
collapses displayed actual ports and/or Connectors on the diagram one level at a time.
To display/collapse actual ports and Connectors one level into deep at a time
1. Select the implied relation.
2. From its smart manipulator toolbar select:
- The Semantic Zoom In button (
) to display actual ports and Connectors one level into deep.
- The Semantic Zoom Out button (
level into deep.
) to collapse displayed actual ports and Connectors one
Displaying/collapsing all actual ports and Connectors by using the Semantic Zoom In/Out button.
Using the Display Underlying Connectors command
You can display all actual Connectors and ports from implied relations at once with one click.
To display all actual Connectors and ports at once
1. Select the implied relation.
2. From its shortcut menu, select the Display Underlying Connectors command.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
183
Displaying all actual Connectors and ports by using the Display Underlying Connectors command.
Related pages
• SysML Internal Block Diagram(see page 520)
• Connecting parts through interface(see page 176)
• Hiding direction arrow on port shape(see page 166)
• Displaying parts and ports(see page 128)
• Autowire Parts(see page 189)
• Property path notation(see page 145)
• Enforce Ports Compatibility mode(see page 192)
• Displaying elements356
• Connector357
• Proxy Port(see page 562)
356 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
357 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
184
• Flow Port(see page 556)
• Full Port(see page 558)
Sample model
The sample model used in the figures on this page is the Implied Connectors sample model.
Download Implied Connectors.mdzip358.
Selecting actual Connectors in the Containment tree
If you want to see an actual Connectors underneath the implied relation without displaying them, you
can select them in the Containment tree. How to select actual Connector in Containment tree read the
following procedure.
To select actual Connector in the Containment tree
1. Select the implied relation.
2. From its shortcut menu, point to the Underlying Connections command group, and select an
appropriate Connector.
Actual Connector is selected in the Containment tree.
The Underlying Connectors command group provides a list of actual Connectors which are underneath
the implied relation.
8 https://docs.nomagic.com/download/attachments/82754652/Implied%20Connectors.mdzip?
35
api=v2&modificationDate=1485165501366&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
185
Related pages
• SysML Internal Block Diagram(see page 520)
• Connecting parts through interface(see page 176)
• Hiding direction arrow on port shape(see page 166)
• Displaying parts and ports(see page 128)
• Autowire Parts(see page 189)
• Property path notation(see page 145)
• Enforce Ports Compatibility mode(see page 192)
• Displaying elements359
• Connector360
• Proxy Port(see page 562)
• Flow Port(see page 556)
• Full Port(see page 558)
Sample model
The sample model used in the figures on this page is the Implied Connectors sample model.
Download Implied Connectors.mdzip361.
Changing the label display mode
On this page
• Compact Label Display Mode(see page 187)
• Detailed Label Display Mode(see page 187)
The label of implied relation provides useful information about actual ports and Connectors. You can
define how much of the information should be shown in the label by changing the Label Display Mode
in the Symbol Properties dialog362. The procedure below describes how to change the label display
mode and explains the meaning each of display mode.
To change the label display mode
1. Right-click the implied relation.
2. Select Symbol Properties.
3. In the Symbol Properties dialog363, find the Label Display Mode property and select one of the
following value:
• Do Not Display - to hide the label.
359 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
360 https://docs.nomagic.com/display/MDTWRT/Connector
1 https://docs.nomagic.com/download/attachments/82754652/Implied%20Connectors.mdzip?
36
api=v2&modificationDate=1485165501366&version=1
362 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
363 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
186
• Compact (default) - to show a short summary in the label of how many actual
connectors are underneath.
• Detailed - to show all names or types of ports on both actual connector ends.
4. Click OK.
Compact Label Display Mode
It allows you to show a short summary in the label of how many actual connectors are underneath. It
also displays names of the first level ports at both connector ends, if actual connectors exist only
between two ports. Otherwise, the names will not be shown. The figure below demonstrates the
situation, when all labels of implied relations provide a different information despite the same
Compact display mode is selected for all of them.
Three labels of the implied relation with Compact display mode which provides different information.
1. The label of the implied relation between Part Property typed by TV Block and diagram frame
indicates that only 1 actual connector exists between part and diagram frame because the number is
not shown in brackets. The power in and socket 2 names in the label shows the names of the first level
ports.
2. The label of the implied relation between Part Properties typed by TV and TV Tuner Blocks indicates
that 18 actual connectors exist between those parts. The hdmi name in the label shows the names of
the first level ports.
3. The label of the implied relation between Part Property typed by TV Tuner Block and diagram frame
indicates that 9 actual connectors exist between part and diagram frame. The names of ports are not
displayed in the label because actual connectors (which are underneath of implied relation) have
different first level ports at both ends.
Detailed Label Display Mode
It allows you to show all names or types of ports on both actual connector ends. If actual Connectors
are between two ports, the label is the same as Compact mode. The figure below demonstrates the
situation, when all labels of implied relations provide a different information despite the same Detailed
display mode is selected for all of them.
Three labels of the implied relation with Detailed display mode which provides different information.
In the figure above, the labels numbered 1. and 2. in the illustration, provide the same information as
Compact display mode because actual connectors exist only between two ports. The label between the
TV Tuner Block and diagram frame (3.) shows that 8 connectors exist between internet and LAN socket
ports and 1 connector between power in and socket 2 ports. It is useful to set the Detailed mode when
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
187
you want to see all first level port names in the implied relation label (see figure below).
The implied relation with the Detailed label display mode.
Related pages
• SysML Internal Block Diagram(see page 520)
• Connecting parts through interface(see page 176)
• Hiding direction arrow on port shape(see page 166)
• Displaying parts and ports(see page 128)
• Autowire Parts(see page 189)
• Property path notation(see page 145)
• Enforce Ports Compatibility mode(see page 192)
• Displaying elements364
• Connector365
• Proxy Port(see page 562)
• Flow Port(see page 556)
• Full Port(see page 558)
Sample model
The sample model used in the figures on this page is the Implied Connectors sample model.
Download Implied Connectors.mdzip366.
364 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
365 https://docs.nomagic.com/display/MDTWRT/Connector
6 https://docs.nomagic.com/download/attachments/82754652/Implied%20Connectors.mdzip?
36
api=v2&modificationDate=1485165501366&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
188
Autowire Parts
The Autowire Parts capability analyzes and finds compatible ports/interfaces, and automatically
creates Connectors367 between Part Properties(see page 560). The figure below demonstrates the Thermal
View Internal Block diagram before and after Autowire Parts when the entire diagram is selected. This
functionality provides a quick and easy way to create multiple connectors simultaneously.
After parts (see page 560)and ports are displayed or created in the SysML Internal Block Diagram(see page
520), the parts can be related to one another via Connectors368. You can manually create these
connections by using the Connector button from the part's/port's shape smart manipulator toolbar or
from the diagram palette369. You can also do this automatically by using the Autowire Parts command
from the Tools menu (
) in the diagram toolbar, if the following conditions are satisfied:
• Parts and ports are displayed on the Internal Block diagram pane.
• The displayed ports are Proxy Ports(see page 562) or Full Ports(see page 558).
• Ports are typed by Interface Blocks(see page 559) that have flow properties(see page 558) defined.
• Types and directions of these flow properties are compatible.
• The Connectors370 do not exist in the model.
The following procedure describes how to use the Autowire Parts function. This functionality works for
an entire diagram or individually selected parts and ports.
To connect Part Properties via compatible ports automatically
1. Select any number of part or port shapes, or the diagram pane.
2. In the diagram toolbar, click
Tools > Autowire Parts, or press Ctrl+Alt+W.
367 https://docs.nomagic.com/display/MDTWRT/Connector
368 https://docs.nomagic.com/display/MDTWRT/Connector
369 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
370 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
189
Information
If new connectors are not created after clicking the Autowire Parts, check if all required
conditions(see page 189) are satisfied.
3. In the opened Messages window, you can specify two options:
• Highlight new connections - leave the check box selected, if you want the newly created
Connectors to be highlighted on the diagram pane, and be able to confirm or delete them
manually.
• Show this message next time - leave the check box selected, if you want this message to
appear the next time you click the Autowire Parts command.
4. Click OK.
5. The Connector(s) between Part Properties via compatible interfaces are created in the model. If
you left the Highlight new connection check box selected in the Messages window (step 3, first
bullet), you must review the newly created Connectors in the following way (see the figure
below):
a. Select the Connector.
b. Click
and choose:
- Confirm Connector - removes the highlight from the Connector.
- Delete Connector - removes the Connector from the model.
- Ignore - removes the highlight from the Connector.
- Select In Validation Results - opens the Active Validation Results table.
Automatic delegation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
190
In the SysML Internal Block Diagram(see page 520), the automatic delegation functionality
• Creates a connector from the port to the nearest border.
• Creates connectors with relevant ports between the ports of the nested parts (delegate).
In the diagram, when you have a part with the port, by the click of the button you can create a
connector from the port to the nearest border (diagram frame). The appropriate port on the border
(diagram frame) is also created.
To create a connector from the port to the nearest border (diagram frame) automatically
1. Select a port from which the connector should be created.
2. In the diagram toolbar, click
Tools > Delegate Port(s).
The connector and corresponding port are created on the nearest border (diagram frame).
Another case is when you have nested parts with ports and you need to connect those nested parts. In
general, you would have to create a connector to the nested parts' owners and then connect those
owners. But if you already have those nested parts connected directly (as shown in the figure below),
you can create the needed ports and connectors automatically or in other word - delegate.
To delegate the ports and connectors automatically
1. Select a connector between two nested parts.
2. In the diagram toolbar, click
Tools > Delegate Port(s).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
191
This example shows how the ports and connectors are created after you click
the Delegate Port(s) button.
Please note, that if the connector has a flow, that flow is also applied to the delegated connectors (as
shown in the figure above). Some adjustments might be necessary. They will be indicated by the
validation rules.
Related pages
• Autowire Parts(see page 189)
• Item Flow management(see page 105)
Enforce Ports Compatibility mode
Enforce Ports Compatibility mode restricts connections and persists clearly visible only compatible
ports (Flow Port(see page 556), Full Port(see page 558), Proxy Port(see page 562)) in SysML Internal Block
Diagram(see page 520) and Constraint Parameters(see page 549) in SysML Parametric Diagram(see page 523).
Non compatible elements become transparent.
To use Enforce Ports Compatibility mode
1. Switch to Enforce Ports Compatibility mode.
2. Create the connection between ports (Flow Port(see page 556), Full Port(see page 558), Proxy Port(see
page 562)) or Constraint Parameters(see page 549).
All ports and Constraint Parameters that are compatible to connect persist clearly visible.
Using Association Block as Connector type
An Association Block(see page 544) can relate two Blocks (see page 545)together, as well as having an internal
structure and other features of its own. The purpose of the Connector Property is to show that internal
structure and features using Compartments(see page 195), property paths(see page 145), displaying internal
structure(see page 144), or other Display commands371. You can specify more detail for Connectors372 by
371 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
372 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
192
typing them with Association Blocks. The Connector Property is created in the model after the
Connector is typed by an Association Block. The Connector Property allows representation of
Association Block usages in the SysML Internal Block Diagrams(see page 520).
To use the Association Block as a Connector type
1. Set the Association Block as a Connector type in one of the following ways:
- In the Containment tree, select Association Block and drag it onto a Connector on the diagram
pane.
- In the Containment tree, select Association Block and drag it onto a Connector on the diagram
pane. Hold it down until the Tooltip appears (long drag) and drop it. From the opened menu,
select the Set as Type command.
2. Select the Connector Property, open the Display Parts/Ports dialog(see page 129), and select
internal structure fragments of Association Block to show them on the Connector Property
shape.
The internal structure is shown inside the Connector Property shape. See the figure below for an
example.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
193
The Connector Property shows the internal structure of the Water Delivery
Association Block and is connected with the Diameter Constraint Property.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
194
Related pages
• Creating Association Block373
Sample model
The model used in the figure of this page is the WaterSupply_19.0 sample model. Download
WaterSupply_19.0.mdzip374.
SysML specific compartments
The compartment is an area on or next to the shape used to display component properties. As an
example, please see the figure below.
The parts, values, and proxy ports compartments are shown on the Water Heating
Element Block shape.
The Compartment Editor allows you to display compartments and their properties on the Block(see page
545):
3 https://docs.nomagic.com/display/SYSMLPTWRT/
37
Defining+Blocks+in+Block+Definition+Diagram#DefiningBlocksinBlockDefinitionDiagramCreatingAssociationBlock
4 https://docs.nomagic.com/download/attachments/82754638/WaterSupply_19.0.mdzip?
37
api=v2&modificationDate=1511360201310&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
195
• constraints
• flow properties
• parts
• properties (formerly :UML properties)
• references
• values
• full ports
• proxy ports
• parameters
The following table explains which elements are displayed on a selected shape to show the additional
information.
SysML specific
compartments
Displayed Elements
constraints
Constraints and Constraint Properties.
Constraint Properties: properties typed by Constraint Blocks, or subtypes of
Constraint Blocks, always having the ‘composite’ aggregation kind.
flow properties
Flow Properties: properties that apply the «FlowProperty» stereotype.
parts
Part Properties: properties typed by Blocks or subtypes of Blocks.
properties
All other properties that cannot be classified into the previous compartments.
references
Shared Properties and Reference Properties: properties typed by Blocks or subtypes of
Blocks (except Constraint Block) having ‘shared’ and ‘none’ aggregation kind,
respectively. There is no distinction between Shared Property and Reference Property.
values
Value Properties: properties typed by Value Types or subtypes of Value Types, always
having the ‘composite’ aggregation kind.
full ports
The port is stereotyped by FullPort.
proxy ports
The port stereotyped by ProxyPort.
parameters
Constraint Parameters.
The following sections outline the main procedures for working with the compartment area:
• Creating elements in compartments(see page 197)
• Displaying and suppressing compartments(see page 197)
• Customizing compartments(see page 197)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
196
Creating elements in compartments
To quickly create elements in compartments on shapes, do one of the following
• On the diagram, select a shape and click the Create Element smart manipulator. Then in the
menu, select the element that you want to create.
• On the diagram, select a shape. Then next to the particular compartment, click the Create
<element name> smart manipulator.
Displaying and suppressing compartments
To display or suppress compartments, do one of the following
• On the diagram, click the shape and click the Compartments smart manipulator. Then select or or
cancel the selection of the particular compartment, for example, Attributes, Operations.
The Compartments smart manipulator exists on shapes that have the compartment
boxes. For example, pins, initial nodes do not have the Compartments smart
manipulator.
• On the diagram, select a shape and click the Suppress <compartment name> smart manipulator.
• On the diagram, right-click the shape and select Symbol Properties. Then select or cancel the
selection of the Suppress <compartment name> check box.
Customizing compartments
Use the Compartment Edit dialog to control the list of elements and properties visible in
compartments on shapes. You can display or hide stereotypes, constraints, tagged values, attributes,
operations, and others. If there are hidden properties on the boxable compartment, the ... is displayed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
197
You can also display or hide the element specification properties, such as Name, Is Active, Owner, To Do
in the Compartment Edit dialog under the Element Properties tab.
To open the Compartment Edit dialog from the diagram pane
• Select shape and click the Compartments smart manipulator. On the menu, click the arrow to
expand and then select Edit Compartments.
• Right-click a single or any number of shapes or classifier compartments (e.g. Properties,
Operations, Receptions, Ports, and etc.) and from the shortcut menu, select Edit
Compartments.
Compartment Edit dialog of multiple shapes
When you edit compartments of more than one shape at once, the Compartment Edit
dialog works with the following rules:
- If you select multiple shapes of the same element, the Compartment Edit dialog is the
same as for a single shape, but changes are applied for all selected shapes after clicking
OK.
- If you select multiple shapes of different elements, the Compartment Edit dialog
shows a union of compartments and their items.
- If you select multiple shapes but at least one of them hides the common compartment
item while another shows it, the Compartment Edit dialog displays that item in italics in
the Element Properties tab > Selected area. If you move the conflicting item to the
Hidden area, it becomes non-italicized and changes are applied for both shapes after
clicking OK.
• On the Note shape, click the Edit Element Properties smart manipulator.
For example, the following procedure shows how to customize the compartments of a part.
To customize a compartment of a Part Property
1. Right-click a Part Property shape and from the shortcut menu, select the Edit
Compartment button.
2. In the Compartment Edit dialog, select a compartment tab which you want to customize.
3. Double-click an element or use the arrow buttons to move an element from the Hidden to
the Selected area to display the element.
4. Click OK when done.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
198
The air and is properties are displayed on the r part shape by using the
Compartment Edit dialog. The image is from the
TemperatureRegulationLoop.mdzip sample model. Find it in modeling tool
<modeling tool installation directory>\samples\SysML.
Using Units
On this page
• Specifying Unit for a Value Property(see page 200)
• Displaying/hiding Units(see page 201)
• Displaying/hiding units for Value Property(see page 201)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
199
• Displaying/hiding unit symbols for Value Property(see page 202)
• Displaying/hiding units symbols for values(see page 202)
A Unit represents a standard unit of measure. For example, metre, kilometre, or foot are units of
length. Units are used to specify Value Properties(see page 569). This section explains how to specify units
for a Value Property, how to display or hide units and unit symbols in various places.
Specifying Unit for a Value Property
When the Block has the Value Property defined, it requires a numeric value and must be typed by the
Value Type(see page 570), either with or without (unitless375) a specified Unit.
To specify the Unit for a Value Property
1. Select the Value Property in the Block compartments.
2. If the ISO-80000 library is not uploaded in your project, click the ISO button on the smart
manipulator toolbar.
• If you work with projects older than version 18.0, which use the QUDV library and
SysML 1.3 library, the ISO-80000 library will not be compatible.
• If you work with Teamwork projects, the ISO-80000 library is uploaded by default.
3. Open the Select Type menu in one of the following way:
• Click
.
• Press Ctrl+T.
• From the shortcut menu, select Type.
4. Select the Value Type by typing the quantity name and unit name in the following syntax:
quantity name[unit name].
Unit libraries
- If you cannot find a suitable Unit in the standard libraries, you can create custom Units.
Learn how to create custom units >>376
- You can manage the scope of provided units with the Package Import377 feature.
The unit is specified for a Value Property. As example, see the figure below.
375 https://docs.nomagic.com/display/SYSMLPTWRT/Value+Type#ValueType-UnitlessValueTypes
376 https://docs.nomagic.com/display/SYSMLPTWRT/Unit#Unit-CustomUnits
377 https://docs.nomagic.com/display/MDTWRT/Package+import
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
200
The stoppingDistance Value Property typed by distance[metre] Value Type.
Displaying/hiding Units
After the unit is specified you can:
• Display/hide units for Value Property.(see page 201)
• Display/hide unit symbols for Value Property.(see page 202)
• Display/hide unit symbols for values.(see page 202)
Displaying/hiding units for Value Property
The full name of the unit (e.g. metre, kilogram) is shown by default next to the Value Property on the
Block compartments378.
To hide/display full name of unit for Value Property
1. Select the Block shape.
2. From its shortcut menu, select Symbol Properties.
3. Select the All options display mode.
4. Find the Show Attributes Tagged Values option.
5. Set its value to true to show the unit (default), or false to hide it.
The full name of the unit is shown/hidden next to values in brackets in the compartments.
378 https://docs.nomagic.com/display/MDTWRT/Compartments
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
201
Displaying/hiding unit symbols for Value Property
You can show the unit symbol in brackets (e.g. (m), (kg)) next to the Value Property on the Block
compartments379. If the Value Property has a value defined, unit symbol in brackets is hidden (see the
figure below). How to show unit symbols next to values >>(see page 202)
To display/hide unit symbol next to Value Property
1. Select the Block shape.
2. From its shortcut menu, select Symbol Properties.
3. Find the Show Unit on Value Property option.
4. Set its value to true to show the unit symbol, or false (default) to hide it.
The unit symbol is shown/hidden next to Value Property.
Displaying/hiding units symbols for values
You can hide or display the symbol of units (e.g. m, kg):
• Next to values in the whole project.(see page 202)
• Next to slots on the Instance Specification shape.(see page 203)
• In cells and column headers of the Instance Table.(see page 204)
Displaying/hiding unit symbols next to values
You can display or hide the unit symbols (e.g. m, kg) of values in the whole project when the Unit is
already defined for the Value Property and it has a value specified. For projects older than version 18.5,
you must enable the Show Units option in the Project Options dialog if you want to see unit symbols.
As of version 18.5, this option is enabled by default for any new projects.
379 https://docs.nomagic.com/display/MDTWRT/Compartments
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
202
To display/hide units symbols next to values
1. Select Options > Project.
2. In the Project Options dialog, expand the General option group and select SysML.
3. Set the Show Units option value to true to show unit symbols, or false to hide.
The unit symbols are shown next to the values in the compartments.
Displaying/hiding unit symbols next to slots
You can display a unit symbol for a slot on the Instance Specification shape by specifying it in the
following ways:
• Using the Specify Type button from the smart manipulator toolbar(see page 203).
• Typing the appropriate unit symbol directly next to slot value(see page 204).
• From the right-click menu(see page 204).
Warning
The following procedures work only if the Show Units option is enabled. How to enable the
Show Units option >(see page 203)
To specify or change the unit symbol of a slot using the Specify Type button
1. Do one of the following:
• Select the value in the compartment, and click the Specify Type button.
• Right-click the value in the compartment, and select Type.
• Select the value in the compartment, and press Ctrl+T.
2. Specify the new unit, or select an existing unit from the Select Type menu list.
Information
The list of units in the Select Type menu consists of those units that are defined in the
Block property type, or in its subtypes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
203
To specify or change unit by typing it manually
1. Select the slot on the Instance Specification shape.
2. Click it to edit.
3. Type the required unit symbol next to the slot value.
4. Press Enter.
To specify or change the unit using the right-click menu
1. Select the slot in the Instance Specification compartment, the row in the Instance table380, or the
Slot in the Containment tree.
2. Right-click it, select the Unit button, and choose the required unit from the list.
Information
The list of units under the Unit button consists of those units that are defined in the
Block property type, or in its subtypes.
Displaying unit symbols in the Instance table
You can display units in the Instance table381 in the following ways:
• Next to the values in cells.(see page 204)
• On column header of the table.(see page 205)
To show unit symbols in cells of the Instance Table
380 https://docs.nomagic.com/display/MDTWRT/Instance+table
381 https://docs.nomagic.com/display/MDTWRT/Instance+table
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
204
1. Click the Options button.
2. Select the Show Units on Values option.
The unit symbols are displayed next to the values in cells.
Warning
The Show Units on Values option does not allow you to specify units directly in the row of the
Instance Table. If you want to edit them, enable the Show Unit option in the Project Options
dialog. How to enable Show Units option >(see page 203)
To show the unit symbol in the column header of the Instance Table
1. Click the Options button.
2. Select the Show Units on Columns option.
The unit symbols are displayed on the column header.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
205
Related pages
• Customizing Units(see page 206)
• Using QUDV model library(see page 208)
Sample model
The model used in the figures of this page is the Extract requirement values sample model that
comes with SysML Plugin. To open this sample do one of the following:
• Download extract requirement values.mdzip382.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\extract requirement
values.mdzip.
Customizing Units
If you did not find a suitable Using Units(see page 199) in the standard libraries (ISO-80000), you can:
• Creating a custom Value Type(see page 207)
• Creating custom Unit(see page 207)
2 https://docs.nomagic.com/download/attachments/82753878/extract%20requirement%20values.mdzip?
38
api=v2&modificationDate=1490709033381&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
206
Creating a custom Value Type
If you want to use a different Value Type(see page 570) than our library provides, you can create a custom
Value Type(see page 570) and specify a desired Using Units(see page 199) for it from the ISO-80000 package.
To create a custom Value Type
1. Select a package in the Containment tree383 where you want to create a new Value Type.
2. Right-click it and select Create Element.
3. In the opened dialog, search for a Value Type and select it.
4. Type its name in the following syntax: quantity name[unit name]. (e.g. volume[liter]).
5. Press Enter.
6. Double-click the newly created Value Type to open its Specification window384.
7. In the Specification window, specify the Unit property value:
a. Click
.
b. In the Select Instance Specification dialog, clear the Apply Filter box.
c. Make sure the ISO-80000 library is loaded in your project.
Warning
If the ISO-80000 library is not uploaded in your project, you can load it directly in the
Select Instance Specification dialog by clicking the Load button.
d. Select the required Unit from the ISO-80000 package (e.g.litre).
8. Click Close.
The new Value Type is defined in your project and can be used as a type for a Value Property.
Creating custom Unit
If you need to use imperial units (e.g. inch, foot, mile) or other units that are not defined in the
ISO-80000 standard, you can create a custom Unit in your project. A Using Units(see page 199) must
always be related to a Quantity Kind(see page 562), but a Quantity Kind need not have any associated
Units. Often equations can be expressed in terms of quantities that include Quantity Kinds without
specifying Units.
To create a custom Unit
1. From the Block Definition Diagram(see page 520) palette, expand the Value Type button and select
the Unit button.
If you do not see the Unit button, make sure the Expert Mode is turned on.
2. Click the mouse pointer on the diagram pane. The Select Classifier dialog opens automatically.
3. In the Select Classifier dialog, find the Unit Block, double-click it to select and click OK. The new
Unit is created.
4. Type its name (e.g. mile).
5. Double-click the Unit shape to open its Specification window385.
6. In the Specification window specify:
383 https://docs.nomagic.com/display/MDTWRT/Containment+tab
384 https://docs.nomagic.com/display/MDTWRT/Specification+window
385 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
207
• The Quantity Kind property value:
a. Click
.
b. In the Select Quantity Kind dialog, clear the Apply Filter box.
c. Make sure the ISO-80000 library is loaded in your project.
Warning
If the ISO-80000 library is not uploaded in your project, you can load it directly in
the Select Quantity Kind dialog by clicking the Load button.
d. Select the required quantity from the ISO-80000 package (e.g. distance).
• The symbol of Unit:
a. In the Property group list386, select Slots.
b. Select the symbol slot and click the Create Value button.
c. Type the unit symbol in the Value area (e.g. mi).
d. Click Close.
The new Unit is created and can now be specified for the Value Type and then used in your
project as a type of Value Property.
Related pages
• SysML Block Definition Diagram387
• Instance Table388
• Package import389
• Using QUDV model library390
• Using Units(see page 199)
• Quantity Kind391
• Value Type392
• Value Property393
• Block394
Using QUDV model library
On this page
• Description of the QUDV model library(see page 209)
• Description of sub-libraries(see page 209)
• Loading the ISO 80000 library(see page 212)
• Loading the basic units from ISO 80000 library(see page 214)
386 https://docs.nomagic.com/display/MDTWRT/Specification+window
387 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Block+Definition+Diagram
388 https://docs.nomagic.com/display/MDTWRT/Instance+table
389 https://docs.nomagic.com/display/MDTWRT/Package+import
390 https://docs.nomagic.com/display/SYSMLPTWRT/Using+QUDV+model+library
391 https://docs.nomagic.com/display/SYSMLPTWRT/Quantity+Kind
392 https://docs.nomagic.com/display/SYSMLPTWRT/Value+Type
393 https://docs.nomagic.com/display/SYSMLPTWRT/Value+Property
394 https://docs.nomagic.com/display/SYSMLPTWRT/Block
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
208
Description of the QUDV model library
This model library is designed in such a way that extensions to ISQ and SI can be represented, as well
as any alternative systems of quantities and units.
The SysML 1.5 QUDV library:
• Complies with International Vocabulary of Metrology (VIM 3rd edition)395.
• Includes ISO/IEC 80000396 definitions of base quantities and units to provide semantics for
computer-based dimensional analysis.
The QUDV (Quantity Unit Dimension Value) library is introduced in OMG SysML Specification 1.5397:
Annex E: Non-normative Extensions > E.5 Model Library for Quantities, Units, Dimensions, and
Values (QUDV).
Description of sub-libraries
Sub-libraries are located in the modelLibraries folder in the installation directory of your modeling tool.
The SysML plugin consists of those sub-libraries:
395 http://www.nist.gov/pml/div688/grp40/upload/International-Vocabulary-of-Metrology.pdf
396 http://www.iso.org/iso/catalogue_detail?csnumber=30669
397 http://www.omg.org/spec/SysML/About-SysML/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
209
• ISO-80000.mdzip. ISO-80000 model library consists of specific quantities and units that are
defined by ISO 80000. Full details of ISO-80000 Library Model definitions are available in OMG
SysML Specification 1.5398: Annex E: Non-normative Extensions > E.6 Model Library of SysML
Quantity Kinds and Units for ISO 80000.
• The ISO-80000 library is loaded by default in the MagicGrid Blank399 and
MagicGrid QuickStart400 projects.
• If you work with projects older than version 18.0, which use the QUDV library and
SysML 1.3 library, the ISO-80000 library will not be compatible.
• ISO-80000-Extension.mdzip. The ISO-80000-Extension library extends the ISO-80000 library with
the collection of imperial, nautical, and common units.
The ISO-80000-Extension library is loaded by default in the MagicGrid Blank401 and
MagicGrid QuickStart402 projects.
• QUDV.mdzip. QUDV model library consists of main definitions of new units and quantity kinds
system as specified in OMG SysML Specifications, for example, SimpleUnit, SimpleQuantityKind,
DerivedUnit, DerivedQuantityKind, AffineConversionUnit, UnitFactor, QuantityKindFactor, and
many more. Full details of ISO-80000 Library Model definitions are available in OMG SysML
Specification 1.5403: Annex E: Non-normative Extensions > E.5 Model Library for Quantities,
Units, Dimensions, and Values (QUDV).
• SI Value Type Library.mdzip. SysML Plugin provides a model library that contains predefined
value types. You can use them for typing the Value Properties in your SysML model. These value
types use the units and quantity kinds defined in the QUDV model library.
Units and Quantity Kinds table
Name
Unit
Quantity Kind
A
ampere : SimpleUnit
electricCurrent : SimpleQuantityKind
A/m
amperePerMeter : DerivedUnit
magneticFieldStrength :
DerivedQuantityKind
A/m²
amperePerSquareMeter :
DerivedUnit
currentDensity : DerivedQuantityKind
Bq
becquerel : DerivedUnit
radionuclideActivity :
DerivedQuantityKind
C
coulomb : DerivedUnit
electricCharge : DerivedQuantityKind
398 http://www.omg.org/spec/SysML/About-SysML/
399 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
400 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
401 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
402 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
403 http://www.omg.org/spec/SysML/About-SysML/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
210
Name
Unit
Quantity Kind
cd
candela : SimpleUnit
luminousIntensity : SimpleQuantityKind
cd/m²
candelaPerSquareMeter :
DerivedUnit
luminance : DerivedQuantityKind
F
farad : DerivedUnit
capacitance : DerivedQuantityKind
Gy
gray : DerivedUnit
absorbedDose : DerivedQuantityKind
H
henry : DerivedUnit
inductance : DerivedQuantityKind
Hz
hertz : DerivedUnit
frequency : DerivedQuantityKind
J
joule : DerivedUnit
energy : DerivedQuantityKind
K
kelvin : SimpleUnit
thermodynamicTemperature :
SimpleQuantityKind
kat
katal : DerivedUnit
catalyticActivity : DerivedQuantityKind
kg
kilogram : SimpleUnit
mass : SimpleQuantityKind
kg/m³
kilogramPerCubicMeter :
DerivedUnit
massDensity : DerivedQuantityKind
lm
lumen : DerivedUnit
luminousFlux : DerivedQuantityKind
lx
lux : DerivedUnit
illuminance : DerivedQuantityKind
m
meter : SimpleUnit
length : SimpleQuantityKind
m/s
meterPerSecond : DerivedUnit
velocity : DerivedQuantityKind
m/s²
meterPerSecondSquared :
DerivedUnit
acceleration : DerivedQuantityKind
mol
mole : SimpleUnit
amountOfSubstance :
SimpleQuantityKind
mol/m³
molePerCubicMeter : DerivedUnit
amountOfSubstanceConcentration :
DerivedQuantityKind
m²
squareMeter : DerivedUnit
area : DerivedQuantityKind
m³
cubicMeter : DerivedUnit
volume : DerivedQuantityKind
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
211
Name
Unit
Quantity Kind
m³/kg
cubicMeterPerKilogram :
DerivedUnit
specificVolume : DerivedQuantityKind
m ¹־
reciprocalMeter : DerivedUnit
waveNumber : DerivedQuantityKind
N
newton : DerivedUnit
force : DerivedQuantityKind
Pa
pascal : DerivedUnit
pressure : DerivedQuantityKind
rad
radian : DerivedUnit
planeAngle : DerivedQuantityKind
s
second : SimpleUnit
time : SimpleUnit
S
siemens : DerivedUnit
electricConductance :
DerivedQuantityKind
sr
steradian : DerivedUnit
solidAngle : DerivedQuantityKind
Sv
sievert : DerivedUnit
doseEquivalent : DerivedQuantityKind
T
tesla : DerivedUnit
magneticFluxDensity :
DerivedQuantityKind
V
volt : DerivedUnit
electricPotentialDifference :
DerivedQuantityKind
W
watt : DerivedUnit
power : DerivedQuantityKind
Wb
weber : DerivedUnit
magneticFlux : DerivedQuantityKind
°C
celciusTemperature :
AffineConversionUnit
celciusTemperature :
DerivedQuantityKind
Ω
ohm : DerivedUnit
electricResistance : DerivedQuantityKind
• SIDefinitions.mdzip. The SI Definitions library consists of predefined units and quantity kinds in
QUDV system that you can use in your model. You can customize the units and value types.
• SISpecializations.mdzip. The SI Specializations library consists of a diagram (and Blocks). It
demonstrates how to extend the current QUDV system.
• SysML_SI_Definitions_Library.mdzip.
• QUDV_SysML1.4.mdzip.
Loading the ISO 80000 library
If you want to use the full ISO 80000 library in your project, you can:
• Load it manually for a separate main projects.(see page 213)
• Set the ISO 80000 library usage options each time when opening the main project.(see page 0)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
212
To load the full ISO 80000 library for a separate project, do either
• Select the value in Compartment area and click the ISO button on smart manipulator toolbar.
• Click
in the Containment tree and select the Show Auxiliary Resources option. The
ISO-80000 package appears in the Containment tree. Right-click it and select Project Usages >
Load.
All standard units and value types are loaded.
To specify the ISO80000 library usage each time when opening the main project
1. On the main menu, select Options > Project Usages.
2. On the right side of the Used Projects dialog, select the ISO-80000.mdzip package.
3. On the left side of this dialog, in the Load Mode area, select desired mode:
- Always load - the library is always loaded when the main project is opened.
- Autoload - the library is not loaded when the main project is loaded. Modeling tool monitors
user activities in the project and loads the particular used project on the demand by the project.
- Autoload with prompt - this mode is similar to an Autoload mode. The difference is that
modeling tool asks the user a confirmation before loading it.
- Manual load - the library is not loaded when the main project is loaded. The model integrity is
not broken, as all required elements of the used project exists, just simplified versions (that is,
loaded as proxies) of the elements are used in the project. This load mode is recommended for
all used projects that are stable or rarely modified.
4. Click OK.
5. Reload the main project.
The ISO-80000.mdzip package is used in the main project according to the selected mode.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
213
Loading the basic units from ISO 80000 library
You can load only the basic SI, US customary, naval and imperial units from the ISO-80000 and
ISO-80000-Extension libraries instead of the whole library.
To load the basic units from ISO 80000 library
• When creating a new SysML project(see page 55), set the Use Basic Units Library option value to
true.
• Directly on Value Property(see page 569) symbol: select the Value Property symbol and click
the ISO button on the smart manipulator toolbar.
The basic units library is loaded including two Basic Unit Categories and Basic Units Dependency
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
214
Matrices.
The Basic Unit Categories and Basic Units matrices, shown in the following figure, allow to manage
imports for a project. You can create or delete the relationships in the matrices in order to include or
remove the units you have to use. Learn how to modify a Dependency Matrix >>404
404 https://docs.nomagic.com/display/MDTWRT/Using+Dependency+Matrix
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
215
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
216
Related pages
• Managing project usages405
Initial Values
405 https://docs.nomagic.com/display/MDTWRT/Managing+project+usages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
217
A compartment406 with a label of initial values is used to show values of properties belonging to a
containing block. These values override any default values that may have been previously specified on
these properties on their originally defining block. Initial value compartments may be specified within
nested properties, which then apply only in the particular usage context defined by the outermost
containing block.
The purpose of initial value compartments is to show various values as a result of a reconfigured
selected context. Initial value compartments allows to:
• Create different configurations for the same structure and display them directly in the Internal
Block Definition diagrams(see page 520).
• Have different values for the same part in different contexts.
• Assign a different initial value to an inherited property.
The initial values compartment can be shown on Part Property(see page 560) shape compartment and
display the values of the properties reconfigured in a selected context.
The procedures below describes how to work with initial values and its compartments:
• Defining initial values(see page 218)
• Displaying/hiding initial values compartments(see page 220)
• Selecting the context of initial values(see page 221)
• Displaying/hiding element type in the initial values compartments(see page 221)
Defining initial values
You can define context-specific initial values by overriding any default values that was previously
specified on Value Properties on their originally defining Block. Before defining a context-specific initial
value, the following prerequisites must be met:
• The Value Property must be created for a Block which is a type of Part Property.
• The Type and Default Value are defined for the Value Property in its Specification window.
To define initial value
1. Right-click the Part Property shape with default value defined.
406 https://docs.nomagic.com/display/MDTWRT/Compartments
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
218
2. From the shortcut menu, select Tools > Define Context-Specific Initial Value.
3. From the Select Property dialog, select Value Property which you want to redefine.
After selecting the Value Property, the structure of instances is created automatically in
the Model Browser.
4. Type the value directly on the Part Property shape.
If you can not specify the new value, check if the context of that Part Property is correct.
How to select the context of initial value >(see page 221)
5. Press Enter.
The slot with newly defined value is created for the Instance Specification. The default value is
not changed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
219
Displaying/hiding initial values compartments
You can display/hide initial values on the Part Property Compartments. Read more about SysML
specific compartments(see page 195).
To show/hide Initial Values on Part Property compartment, do one of the following
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
220
• Select the Part Property shape, click the Compartments smart manipulator407, and select Initial
Values.
• Right-click the Part Property shape and from the shortcut menu select Symbol Properties. In the
Symbol Properties dialog, select the Expert or All mode, and set the Suppress Context
Specific Values property value to true to show initial values, or false - to hide them.
Selecting the context of initial values
Initial values which are shown in the Part Property compartments depends from the selected context.
For example, if the selected context is A then the compartment show values of A.
To select a context of initial values
1. Right-click the Part Property shape and from the shortcut menu select Symbol Properties.
2. In the Symbol Properties dialog, select the All mode.
3. Select the Context of Context-Specific Values property value box, and click
.
4. From the Select Element dialog, choose the element which will be the context.
5. Click OK.
6. Click Close.
The context for initial values is specified.
Displaying/hiding element type in the initial values compartments
You can display or hide the elements types in the initial values compartments of a part using either the
Symbol(s) Properties dialog or the part shortcut menu.
To display/hide element type in the initial values compartments
407 https://docs.nomagic.com/display/MDTWRT/Smart+manipulators
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
221
1. Right-click the Part Property shape and select the Symbol Properties command.
2. In the Symbol Properties dialog, select the Expert or All mode.
3. Select the Show Slot Type property value from drop-down list:
• None - to hide types.
• Name - to display names of the element types.
• Qualified Name - to display qualified names of the element types.
Related pages
• Reconfiguration(see page 222)
• Value Propagation(see page 224)
Sample model
The model used in the figures of this page is the Phone Camera sample model. To open this sample
download PhoneCamerasInitialValues.mdzip408.
Reconfiguration
In the FuelTank example (see "Progressive Reconfiguration"), the capacity of a FuelTank in a Vehicle
context is reconfigured to 46 litres. In the WheelHubAssembly example, (see "Deep Reconfiguration"),
the diameter of the Tire, Tire Bead and Rim, the inflationPressure of the WheelAssembly, etc., in a Truck
context will be reconfigured to suit the truck.
When modeling you can use two methods of reconfiguration:
• Progressive Reconfiguration(see page 222)
• Deep Reconfiguration(see page 223)
Progressive Reconfiguration
Progressive Reconfiguration enables SysML to handle a wide range of systems engineering
configuration tasks. Progressive Reconfiguration continuously applies the following values:
• Static class-level default values.
• Inherited Property-specific initial values.
• Redefined Property-specific initial values.
• Property-specific initial values.
Property-specific initial values are specific to the usage of a Block as a Part Property in a higher context
(i.e. another structured block or “assembly”). If there are many Part Properties of the same type, these
Part Properties may have different property-specific default values and will then be initialized
differently.
For more information about working with the Report Wizard, see the MagicDraw ReportWizard
UserGuide.pdf Property-specific initial values are managed by the higher-context structured block,
which owns the Part Properties that initialize or configure their (possibly different) values on
instantiation. For example, the generic capacity of a FuelTank (not any particular one) is 40 liters (class8 https://docs.nomagic.com/download/attachments/82753878/PhoneCamerasInitialValues.mdzip?
40
api=v2&modificationDate=1493299540354&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
222
level default value). For a vehicle, however, the generic capacity of its FuelTank is 46 liters. An abstract
Vehicle block will thus configure its tank:FuelTank part property by initializing it with a new capacity
value. This can be done with Progressive Reconfiguration that will assign the instance specification
tank:FuelTank to the property tank:FuelTank of the Vehicle block.
An example of Progressive Reconfiguration is when the values of y and z of a Location are reconfigured
to 1 in the Thing context. Thus, the “values (Thing)” compartment in the l:Location part (in the Thing
package) will display 1 as the values of y and z.
Deep Reconfiguration
Deep Reconfiguration enables you to configure deep-nested part(s) with context-specific value(s).
Consider, for example, the case of a truck reusing a complex WheelHubAssembly for three pairs of
wheels, each with different characteristics. Although the basic WheelHubAssembly might be suitable for
a range of vehicles (a car, touring car, and minivan), it is not nearly suitable for a large truck. Some of
the WheelHubAssembly parts and subparts required for a truck are larger and must be stronger to
handle heavy loads. They include:
• the diameter of the Tire, TireBead, and Rim will be larger.
• the inflationPressure value of the WheelAssembly will be higher.
• the LugBoltJoint will be subject to greater torque and boltTension.
• the LugBoltThreadedHole will have larger lugBoltSize and threadSize.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
223
In this case, Progressive Reconfiguration will fail because the new configuration requirements “cascade”
throughout the entire complex WheelHubAssembly from the outermost context to the deepest part.
Since no Progressive Reconfiguration approach can handle this deep reconfiguration of complex
assemblies, you need to use Deep Reconfiguration.
You can start with a completely new TruckWheelHubAssembly that configures a completely new
TruckWheelAssembly, right down to a TruckLugBoltJoint. However, you could use, instead, SysML
PropertySpecificType strategy, which is a set of “on-the-fly” extensions (subtypes) of each Block used in
a complex assembly hierarchy, to afford a point of redefinition of the Part Properties and their Value
Properties as required. See the ‘PropertySpecificType‘ section in OMG SysML specifications.
An example of Deep Reconfiguration is when the value of x of a Location in the UniverseContext
package is reconfigured to 3 in the UniverseContext context. Thus, the “values (UniverseContext)”
compartment in the l:Location part (in the t1:Thing part in the UniverseContext package) will display 3
as the value of x. If UniverseContext is selected, the value of z, instead of x, will be reconfigured to 2.
For more information about Deep Reconfiguration, see training.nomagic.com409.
Sample model
You can see an example of a Deep Reconfiguration project by opening context specific
values.mdzip in the <md.install.dir>/samples/SysML directory.
Value Propagation
The value propagation mechanism enables values that are not overridden by the values from the
selected context in the initialValue compartment to be displayed. Assuming the property and the Value
Propagation options are enabled, the value available in the next context will be used to reconfigure the
property if there is no value in the selected context to reconfigure the property. However, if there is no
value available in any context, the class-level default value will be displayed in the initialValue
compartment, indicating that the property is not reconfigured at all.
The value propagation mechanism is enabled by default. To disable this mechanism, follow the
procedure below.
To disable the value propagation mechanism
1. On the main toolbar, click Options > Project. .
2. In the Project Options dialog, select General > SysML.
3. Select the Propagate SysML Values property value tofalse.
4. Click OK.
Example when the value propagation mechanism is enabled
409 http://training.nomagic.com
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
224
In the UniverseContext package, only the value of x of a Location is reconfigured to 3 in the
UniverseContext context. The values of y and z are not set by the selected context. Since the
value propagation is enabled, the next context, Universe, is considered. In the Universe context,
the value of z is set to 2. However, the value of y is still missing; therefore, the next context,
Thing, is considered. In the Thing context, the value of y is set to 1. Now, all attributes of the
Location are set as follows:
• x=3
• y=1
• z=2
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
225
Creating Interface Control Document tables
On this page
• Introduction(see page 226)
• Creating Blackbox ICD Table(see page 228)
• Creating Whitebox ICD Table(see page 229)
• Customizing the representation of the ICD table(see page 229)
Introduction
An Interface Control Document (ICD) table describes interfaces between systems or/and subsystems.
That helps to ensure a compatibility between system components. The ICD tables can describe the
following:
• The inputs and outputs of a single system.
• The interface between two systems or subsystems.
• The complete interface protocol from the lowest physical elements (e.g., the mating plugs, the
electrical signal voltage levels) to the highest logical levels (e.g., the level 7 application layer of
the OSI model), or some subset thereof.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
226
The Blackbox ICD table of the Distiller Block.
The views for system components interface are generated automatically from the system model. This
provides up to date, efficiently managed, and fully featured model-based ICDs. The true model-based
document-free approach is supported, along with all the capabilities of table export to document
(images, html, .xls, .csv files). You can create the Balckbox ICD table(see page 540) and/or Whitebox ICD
table(see page 541) directly from the SysML Block Definition Diagram(see page 519) and SysML Internal Block
Diagram(see page 520).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
227
Creating Blackbox ICD Table
To create a Blackbox ICD Table
1. In the Containment tree or on the diagram pane, select the Block(see page 545) which ports/
interfaces you want to represent in the Blackbox ICD Table(see page 540).
2. Do one of the following:
• From the main menu, select Diagrams > Create Diagram. Type “bla” and press Enter.
• On the main toolbar, click the Create Diagram button. Type “bla” and press Enter.
• Press Ctrl+N. Type “bla” and press Enter.
• Right-click the Block and select Create Diagram > Blackbox ICD Table.
• Open the Specification window of the Block, select the Ports/Interfaces property group
and click the Create ICD Table button.
The Blackbox ICD Table is created. All external Ports/interfaces of the selected Block are
represented in the table automatically. Learn more about Blackbox ICD Table >>(see page
540)
3. Type a table name and press Enter.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
228
Creating Whitebox ICD Table
To create a Whitebox ICD Table
1. In the Containment tree or on the diagram pane, select the Block(see page 545) which assembly you
want to represent in the Whitebox ICD Table(see page 541).
2. Do one of the following:
• From the main menu, select Diagrams > Create Diagram. Type “wh” and press Enter.
• On the main toolbar, click the Create Diagram button. Type “wh” and press Enter.
• Press Ctrl+N. Type “wh” and press Enter.
• Right-click the Block and select Create Diagram > Whitebox ICD Table.
The Whitebox ICD Table is created. All Parts, their Ports/interfaces and flows are
represented in the table automatically. Learn more about Whitebox ICD Table >>(see page
541)
3. Type a table name and press Enter.
Customizing the representation of the ICD table
You can customize the representation of the ICD table by using the table toolbar410 and table Criteria
area411.
Rollup Pattern Wizard
On this page
• Introduction(see page 229)
• Opening the Rollup Pattern Wizard(see page 230)
• The Rollup Pattern Wizard areas(see page 230)
• Selecting/ removing the pattern Block(see page 231)
• Selecting the options(see page 231)
Introduction
Rollup calculations are among the most common use cases in systems engineering. System modelers
want to calculate total mass, cost, power, or another system dimension, based on individual values of
all the parts in the model. The pattern can recursively propagate the particular value up a hierarchy of
410 https://docs.nomagic.com/display/MDTWRT/Table+toolbars
411 https://docs.nomagic.com/display/MDTWRT/Table+Criteria+area
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
229
components characterized by this value.
The Rollup Pattern Wizard allows you to calculate the total cost, mass, power, or another system
metric of elements in the model. Different types of pattern Blocks can be created(see page 235) to suit the
calculation needs. This new modeling tool provides three default rollup patterns(see page 232) that
calculate the total cost, mass, or power. You can apply the default or newly created pattern Block by
using the Rollup Pattern Wizard. It automatically applies pattern Blocks(see page 238) (using the
Generalization412) to any number of Blocks(see page 545) or Instance Specifications413 recursively, and
creates property values. This wizard also allows you to remove pattern Blocks(see page 241) from the
selected Block or Instance Specification. The procedures below describe how to open and use the
Rollup Pattern Wizard.
Opening the Rollup Pattern Wizard
To open the Rollup Pattern Wizard
1. From the shortcut menu of the Block or Instance Specification to which you want to apply a
pattern Block, select:
• Tools > Apply Rollup Pattern, if you want to apply a pattern Block for the selected Block
or Instance Specification.
• Tools > Remove Rollup Pattern, if you want to remove the pattern Block from the
selected Block or Instance Specification.
The Rollup Pattern Wizard areas
The Rollup Pattern Wizard consists of two areas:
• Select/Remove Pattern Block (1).
• Options (2).
412 https://docs.nomagic.com/display/MDTWRT/Generalization
413 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
230
The Rollup Pattern Wizard when trying to apply a rollup pattern for a Block. Two
areas of the wizard are highlighted: 1- Select Pattern Block, 2 -Options.
The procedures below describe how to work with the Rollup Pattern Wizard:
• Select/remove the pattern Block.(see page 231)
• Select the options.(see page 231)
Selecting/ removing the pattern Block
To select/remove the pattern Block
1. Click
to expand the list of available pattern Blocks.
2. Choose the rollup pattern Block that you want to apply/ remove.
Selecting the options
Apply Rollup Pattern Box
Description
Option appears when
applying rollup pattern
for...
Apply Recursively
Applies the pattern Block recursively.
Block, Instance Specification
Set Role Name
Sets the role names of Part Properties.
Block
Set Subsetted Properties
Sets the Subsetted Properties of the Part
Properties.
Block
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
231
Apply Rollup Pattern Box
Description
Option appears when
applying rollup pattern
for...
Create Value Properties and
Redefine
Creates and redefines Value Properties.
Block
Remove Rollup Pattern Box
Description
Option appears when
applying rollup pattern
for...
Recursively Remove Rollup
Pattern
Removes the pattern Block recursively.
Block, Instance
Specification
Remove Role Name
Removes the role names of Part Properties.
Block
Remove Subsetted Properties
Removes the Subsetted Properties of the Part
Properties.
Block
Remove Value Properties
Removes Value Properties.
Block
Related pages
• Default Rollup Pattern Blocks(see page 232)
• Creating new Rollup Pattern Block(see page 235)
• Applying Rollup Pattern Blocks(see page 238)
• Removing Rollup Pattern Blocks(see page 241)
Webinar
• Total Mass, Cost, and Power Rollups414
Default Rollup Pattern Blocks
You can apply the default or newly created pattern Block(see page 235) by using the Rollup Pattern
Wizard(see page 229). If you want to apply total cost, mass, or power calculation for your model, you can
use the default rollup patterns. The default rollup pattern Blocks are as follows:
• CostRollupPattern.
• MassRollupPattern.
• PowerRollupPattern.
414 http://www.nomagic.com/mbse/events/webinars/item/webinar-7-2016-total-mass-cost-and-power-rollups.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
232
The total cost, mass, or power rollup pattern Blocks defined in the SysML Block
Definition Diagram.
The default rollup patterns are created to calculate the total cost, mass, and power of the model
elements. Each pattern Block contains a SysML Parametric Diagram(see page 523) that defines the
calculation needs, and allows you to define any kind of rollup pattern. The patterns are created in
association with a Constraint Block(see page 548) that defines the logic of the constraints. The Constraint
Property(see page 550) type is a Constraint Block(see page 548). The following figure demonstrates the
Parametric Diagram of Cost Rollup Pattern.
The SysML Parametric Diagram of Cost Rollup Pattern.
All default rollup patterns are stored in each project under the auxiliary resources.The procedure below
describes how to find them in your project.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
233
To find default rollup pattern Blocks in a project
1. In the Containment tree, click
, and select the Show Auxiliary Resources option.
2. Select package MD Customization for SysML > rollup patterns.
The default rollup pattern Blocks are stored in the model under the auxiliary
resources.
Related pages
• Default Rollup Pattern Blocks(see page 232)
• Creating new Rollup Pattern Block(see page 235)
• Applying Rollup Pattern Blocks(see page 238)
• Removing Rollup Pattern Blocks(see page 241)
Webinar
• Total Mass, Cost, and Power Rollups415
415 https://www.nomagic.com/events/webinars/item/webinar-7-2016-total-mass-cost-and-power-rollups
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
234
Sample model
The sample model used in the figures of this page is the Laptop Cost Analysis that comes with Cameo
Simulation Toolkit Plugin416. To open this sample do one of the following:
• Download LaptopCostAnalysis.mdzip417.
• Find in modeling tool <modeling tool installation
directory>\samples\simulation\LaptopCostAnalysis.mdzip
Creating new Rollup Pattern Block
You can apply the default pattern Block(see page 232) or a newly created one by using the Rollup Pattern
Wizard(see page 229). If you want to apply different kinds of calculations than default rollup patterns(see
page 232) for your model, you can create a different type of rollup pattern Block. To do this, copy any
default rollup pattern Block, paste it in the model, change its name, and specify all required value
properties. The procedure below describes how to create a different kind of rollup pattern Block.
To define a different kind of rollup pattern (e.g.,TimeRollupPattern)
1. Find the default rollup pattern Blocks under the auxiliary resources in your project. How to >(see
page 232)
2. Copy any default rollup pattern Block (e.g., CostRollupPattern).
416 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
7 https://docs.nomagic.com/download/attachments/82753878/LaptopCostAnalysis.mdzip?
41
api=v2&modificationDate=1483365649774&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
235
3. Paste it in your model (e.g. under the RollUp Pattern Package).
4. The copy of the pattern Block is created (e.g. CostRollupPattern1).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
236
5. Rename the pattern Block, value properties, part property, Constraint Block, and Parametric
diagram according to your needs (e.g., Block TimeRollupPattern, Constraint Block totalTime,
properties time).
6. Define the Type property value of a value property in the Specification window according to your
needs (e.g., from Real to Seconds).
The different type of rollup pattern Block (e.g., TimeRollupPattern) is created (see the figure
below).
Related pages
• Default Rollup Pattern Blocks(see page 232)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
237
• Creating new Rollup Pattern Block(see page 235)
• Applying Rollup Pattern Blocks(see page 238)
• Removing Rollup Pattern Blocks(see page 241)
Webinar
• Total Mass, Cost, and Power Rollups418
Sample model
The sample model used in the figures of this page is the Laptop Cost Analysis that comes with Cameo
Simulation Toolkit Plugin419. To open this sample do one of the following:
• Download LaptopCostAnalysis.mdzip420.
• Find in modeling tool <modeling tool installation
directory>\samples\simulation\LaptopCostAnalysis.mdzip
Applying Rollup Pattern Blocks
When trying to calculate total mass, cost, power, or another system dimension based on individual
values of all the parts in the model, you need to apply a pattern Block to any number of Blocks(see page
545) or Instance Specifications421 by using the Rollup Pattern Wizard(see page 229). It automatically applies
pattern Blocks (using the Generalization422) recursively, and creates property values. The procedure
below describes how to apply the rollup pattern Block.
To apply the rollup pattern Block
1. Right-click the Block(see page 545) or Instance Specification423 to which you want to apply the rollup
pattern Block.
2. Select Tools > Apply Rollup Pattern.
418 http://www.nomagic.com/mbse/events/webinars/item/webinar-7-2016-total-mass-cost-and-power-rollups.html
419 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
0 https://docs.nomagic.com/download/attachments/82753878/LaptopCostAnalysis.mdzip?
42
api=v2&modificationDate=1483365649774&version=1
421 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
422 https://docs.nomagic.com/display/MDTWRT/Generalization
423 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
238
3. In the Rollup Pattern Wizard(see page 229), click
, and select the pattern Block you want to apply.
Rollup pattern Blocks
You can select:
- The default rollup pattern Blocks(see page 232): CostRollupPattern, MassRollupPattern,
and PowerRollupPattern. They are created to calculate the total cost, mass, and power of
the model elements.
- Your own created rollup pattern Blocks. How to create new rollup pattern Block >(see
page 235)
4. Specify options:
- Apply Recursively to apply the pattern Block recursively.
- Set Role Name to set the role names of Part Properties.
- Set Subsetted Properties to set the Subsetted Properties of the Part Properties.
- Create Value Properties and Redefine to create and redefine Value Properties.
5. Click OK.
The pattern Block is applied to the model elements according to selected options.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
239
Related pages
• Default Rollup Pattern Blocks(see page 232)
• Creating new Rollup Pattern Block(see page 235)
• Applying Rollup Pattern Blocks(see page 238)
• Removing Rollup Pattern Blocks(see page 241)
Webinar
• Total Mass, Cost, and Power Rollups424
Sample model
The sample model used in the figures of this page is the Laptop Cost Analysis that comes with Cameo
Simulation Toolkit Plugin425. To open this sample do one of the following:
• Download LaptopCostAnalysis.mdzip426.
424 http://www.nomagic.com/mbse/events/webinars/item/webinar-7-2016-total-mass-cost-and-power-rollups.html
425 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
6 https://docs.nomagic.com/download/attachments/82753878/LaptopCostAnalysis.mdzip?
42
api=v2&modificationDate=1483365649774&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
240
• Find in modeling tool <modeling tool installation
directory>\samples\simulation\LaptopCostAnalysis.mdzip
Removing Rollup Pattern Blocks
When removing the applied rollup pattern Block from the model elements, you are removing all of the
created property values, subsetted properties, redefines properties, and role names. You can remove
the applied rollup pattern Block by using the Rollup Pattern Wizard(see page 229). The procedure below
describes how to remove a previously applied rollup pattern Block.
To remove the rollup pattern Block
1. Right-click the Block(see page 545) or Instance Specification427 from which you want to remove the
rollup pattern Block.
2. Select Tools > Remove Rollup Pattern.
3. In the Rollup Pattern Wizard(see page 229), select options:
- Recursively Remove Rollup Pattern to remove the pattern Block recursively.
- Remove Role Name to remove the role names of Part Properties.
- Remove Subsetted Properties to remove the Subsetted Properties of the Part Properties.
- Remove Value Properties to remove Value Properties.
427 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
241
4. Click OK.
The pattern Block is removed from the model elements according to selected options.
The CostRollupPattern is removed from the model along with all the created
property values, subsetted properties, redefines properties, and role names.
Related pages
• Default Rollup Pattern Blocks(see page 232)
• Creating new Rollup Pattern Block(see page 235)
• Applying Rollup Pattern Blocks(see page 238)
• Removing Rollup Pattern Blocks(see page 241)
Webinar
• Total Mass, Cost, and Power Rollups428
Sample model
428 http://www.nomagic.com/mbse/events/webinars/item/webinar-7-2016-total-mass-cost-and-power-rollups.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
242
The sample model used in the figures of this page is the Laptop Cost Analysis that comes with Cameo
Simulation Toolkit Plugin429. To open this sample do one of the following:
• Download LaptopCostAnalysis.mdzip430.
• Find in modeling tool <modeling tool installation
directory>\samples\simulation\LaptopCostAnalysis.mdzip
Layout templates
The layout templates functionality, which is driven by <<layoutTemplate>> stereotype, assists you in
creating well-formed diagrams. It allows you to define Class appearance once, and reuse it later when
creating Parts typed by that Class and Ports in different diagrams. Parts431 and their Ports are
represented identically as part's type Class432 whose layout and style is defined in the layout template
diagram. Often, Port position reflects its physical location in the system, so it is beneficial to maintain
the same appearance of Parts, layout, and style of Ports throughout the whole model. In the figure
below, the appearance of the Modem Card Block is the same in two different diagrams, SysML Block
Defiition diagram433 and SysML Internal Block diagram434.
429 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
0 https://docs.nomagic.com/download/attachments/9919520/LaptopCostAnalysis.mdzip?
43
api=v2&modificationDate=1483365649774&version=1
431 https://docs.nomagic.com/display/MDTWRT/Part
432 https://docs.nomagic.com/display/MDTWRT/Class
433 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Block+Definition+Diagram
434 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Internal+Block+Diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
243
Additional information
You can reuse layout templates in other projects by exporting packages to new projects.435
435 https://docs.nomagic.com/display/MDTWRT/Exporting+packages+to+new+projects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
244
Usage of a layout template. The illustration displays concepts from SysML Plugin.
You can create a layout template in the Class Diagram or derive it from an existing Composite Structure
Diagram as described below.
To define a layout template in the Class Diagram and apply it to other diagrams:
1. Define the appearance of Class, layout, and style of its Ports in the Class diagram.436
2. Set that Class diagram as the layout template.437
3. Apply the layout template to other diagrams.438
To derive a layout template for the Composite Structure Diagram and apply it to other diagrams:
1. Specify whether layout templates are created as Class Diagrams or Composite Structure
Diagrams.439
2. Create a layout template from a Part Property in the Composite Structure Diagram.440
3. Apply the layout template to other diagrams.441
Important
436 https://docs.nomagic.com/display/MDTWRT/Defining+layout+template
437 https://docs.nomagic.com/display/MDTWRT/Setting+diagram+as+layout+template
438 https://docs.nomagic.com/display/MDTWRT/Applying+layout+template
439 https://docs.nomagic.com/display/MDTWRT/Layout+template+creation+mode
440 https://docs.nomagic.com/display/MDTWRT/Creating+layout+template
441 https://docs.nomagic.com/display/MDTWRT/Applying+layout+template
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
245
Only one Class shape with its Ports can be defined in one layout template diagram.
Read the following pages to learn how to manage layout templates:
• Stop using Class diagram as a layout template442
• Removing applied layout template from shape443
• Multiple layout template444
• Setting layout template as default445
• Navigation to layout templates446
• Using layout templates with diagram aspects447
448
Related pages
• Class diagram449
• Composite Structure diagram450
• Diagram aspects451
• Exporting packages to new projects452
Sample model
The sample models used in the figure of this page are Modem Cable that comes with SysML Plugin453.
To open those samples properly you need to install the SysML plugin454 in the MagicDraw and
download Modem Cable Layout Templates.mdzip455.
456
Diagram aspects
Diagram aspects allow you to create the different views, e.g. electrical, mechanical, optical, for the same
system structure.The aspects functionality is driven by stereotypes, which allows you to use predefined
aspects (only included in SysML Plugin457 or other customizations) or custom aspects for diagrams. This
enables you to:
• Set any number of aspects for one diagram.
442 https://docs.nomagic.com/display/MDTWRT/Stop+using+Class+diagram+as+a+layout+template
443 https://docs.nomagic.com/display/MDTWRT/Removing+applied+layout+template+from+shape
444 https://docs.nomagic.com/display/MDTWRT/Multiple+layout+template
445 https://docs.nomagic.com/display/MDTWRT/Setting+layout+template+as+default
446 https://docs.nomagic.com/display/MDTWRT/Navigation+to+layout+templates
447 https://docs.nomagic.com/display/MDTWRT/Using+layout+templates+with+diagram+aspects
448 https://docs.nomagic.com/display/MDTWRT/Layout+templates
449 https://docs.nomagic.com/display/MDTWRT/Class+diagram
450 https://docs.nomagic.com/display/MDTWRT/Composite+Structure+diagram
451 https://docs.nomagic.com/display/MDTWRT/Diagram+aspects
452 https://docs.nomagic.com/display/MDTWRT/Exporting+packages+to+new+projects
453 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
454 https://docs.nomagic.com/display/NMDOC/Installing+plugins
5 https://docs.nomagic.com/download/attachments/9915051/Modem%20Cable%20Layout%20Templates.mdzip?
45
api=v2&modificationDate=1481817717837&version=1
456 https://docs.nomagic.com/display/MDTWRT/Layout+templates
457 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
246
• Drill down navigation from the Part shape to its internal structure.
• Create an Aspect diagram directly from the Part shape.
• Display parts and ports according to aspects.
• Use aspects with multiple layout templates458.
The figure below demonstrates the usage of predefined diagram aspects459. Three SysML Internal Block
Diagrams of the same Climate Control Hardware system are of different aspects: electrical and
communication. The Internal Block Diagram with the electrical aspect shows only the electrical
structure of Climate Control Hardware system. Correspondingly, the IBD with the communication aspect
shows only the communication structure.
The Climate Control Hardware views through different aspects. The illustration
displays concepts from SysML Plugin.
The main workflow to start using the diagrams aspect functionality in your model is the following.
To use diagram aspects
1. Create new project460 or open existing461.
458 https://docs.nomagic.com/display/MDTWRT/Layout+templates
459 https://docs.nomagic.com/display/MDTWRT/Finding+predefined+diagram+aspects
460 https://docs.nomagic.com/display/MDTWRT/Creating+a+new+project
461 https://docs.nomagic.com/display/MDTWRT/Opening+projects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
247
2. Enable diagrams aspect option. Enabling or disabling diagram aspects option>>462
3. Make sure if predefined aspects is enough for you. Finding predefined diagram aspects>>463
4. If predefined aspects is not what you expect, create our own aspect that you can apply for a
diagram. Creating custom aspects>>464
5. Create new aspect diagram:
- by creating a new diagram with already applied aspect: Creating an aspect diagram>>
- 465by applying predefined (#3) or custom aspects (step #4) for an existing diagram. Applying or
removing aspect for preexisting diagrams>>466
6. After your model contains diagrams with defined aspects, you can display parts and ports
according to aspects467
and navigate among aspect diagrams.468
469
Child pages
• Enabling or disabling diagram aspects option470
• Specifying or removing ignored aspects471
• Finding predefined diagram aspects472
• Creating custom aspects473
• Creating an aspect diagram474
• Applying or removing aspect for preexisting diagrams475
• How aspects match with parts and ports476
• Navigation among aspect diagrams477
• Displaying parts and ports according to aspects478
Related pages
• Diagramming479
• Layout templates480
• Using layout templates with diagram aspects481
• Displaying rake icon482
462 https://docs.nomagic.com/display/MDTWRT/Enabling+or+disabling+diagram+aspects+option
463 https://docs.nomagic.com/display/MDTWRT/Finding+predefined+diagram+aspects
464 https://docs.nomagic.com/display/MDTWRT/Creating+custom+aspects
465 https://docs.nomagic.com/display/MDTWRT/Creating+an+aspect+diagram
466 https://docs.nomagic.com/display/MDTWRT/Applying+or+removing+aspect+for+preexisting+diagrams
467 https://docs.nomagic.com/display/MDTWRT/Displaying+parts+and+ports+according+to+aspects
468 https://docs.nomagic.com/display/MDTWRT/Navigation+among+aspect+diagrams
469 https://docs.nomagic.com/display/MDTWRT/Diagram+aspects
470 https://docs.nomagic.com/display/MDTWRT/Enabling+or+disabling+diagram+aspects+option
471 https://docs.nomagic.com/display/MDTWRT/Specifying+or+removing+ignored+aspects
472 https://docs.nomagic.com/display/MDTWRT/Finding+predefined+diagram+aspects
473 https://docs.nomagic.com/display/MDTWRT/Creating+custom+aspects
474 https://docs.nomagic.com/display/MDTWRT/Creating+an+aspect+diagram
475 https://docs.nomagic.com/display/MDTWRT/Applying+or+removing+aspect+for+preexisting+diagrams
476 https://docs.nomagic.com/display/MDTWRT/How+aspects+match+with+parts+and+ports
477 https://docs.nomagic.com/display/MDTWRT/Navigation+among+aspect+diagrams
478 https://docs.nomagic.com/display/MDTWRT/Displaying+parts+and+ports+according+to+aspects
479 https://docs.nomagic.com/display/MDTWRT/Diagramming
480 https://docs.nomagic.com/display/MDTWRT/Layout+templates
481 https://docs.nomagic.com/display/MDTWRT/Layout+templates
482 https://docs.nomagic.com/display/MDTWRT/Displaying+rake+icon
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
248
• Displaying parts and ports483
• Stereotype484
• Profile Diagram485
• Creating diagrams486
• Generalization487
Sample model
The model used in the figures of this page is the Diagram aspects sample models that comes
with SysML Plugin488. To open this sample properly you need to install the SysML plugin489 in the
MagicDraw and:
• Download diagram aspects.mdzip490.
• Find in the modeling tool: <modeling tool installation directory>\samples\SysML\diagram
aspects.mdzip.
491
Automatic Instantiation wizard
On this page
• Introduction(see page 249)
• Using the Automatic Instantiation wizard(see page 250)
Introduction
The Automatic Instantiation wizard analyzes the structure of a selected element and collects all
available information about that element from the model (attributes, properties, and so on). It
evaluates collected information and suggests all possible instances to be created.
This tool allows you to create instances of various entities with just a few clicks. It is useful for working
with complex models, and for assembling large systems from parts. For properties having a multiplicity
of more than 1, you can create as many instances of the same type as you need, since parallel parts can
be added while creating instances. While creating instances automatically, you can:
483 https://docs.nomagic.com/display/MDTWRT/Displaying+parts+and+ports
484 https://docs.nomagic.com/display/MDTWRT/Stereotype
485 https://docs.nomagic.com/display/MDTWRT/Profile+diagram
486 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
487 https://docs.nomagic.com/display/MDTWRT/Generalization
488 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
489 https://docs.nomagic.com/display/NMDOC/Installing+plugins
0 https://docs.nomagic.com/download/attachments/9915051/diagram%20aspects.mdzip?
49
api=v2&modificationDate=1483357535810&version=1
491 https://docs.nomagic.com/display/MDTWRT/Diagram+aspects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
249
• Select properties for which the instances will be created.
• Change types of instantiated properties.
• Assign default values for the instantiated properties.
The wizard consists of the following areas:
• Steps area: displays all steps of the wizard and shows the current step you are working on.
• Element tree: displays all owned internal structure of a selected element.
• Instantiated properties area: allows you to change the default values and create several
different sets of instances.
The Automatic Instantiation wizard of the Vehicle Block with highlighted three
main areas: Steps area, Element tree, and Instantiated properties area.
Using the Automatic Instantiation wizard
To create and display instance specifications of Blocks in the diagram by using the Automatic
Instantiation wizard
1. Select the Block for which you want to create instances.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
250
2. From the shortcut menu, select Tools > Create Instance (see the following figure).
3. Follow the steps of the Automatic Instantiation wizard. How to work in each step of the
Automatic Instantiation wizard >>(see page 252)
If you are satisfied with the default values provided in the Automatic Instantiation
wizard, you can finish the wizard in the first step without making any changes. The
instances will be created with the default values and in your working package. To change
default values or create several different configurations, read Steps of the Automatic
Instantiation wizard(see page 252).
4. Click Finish when you are done.
Instance Specifications492 and new SysML Block Definition Diagram(see page 519) are created for
the selected Block (see the figure below). All part instances are grouped under their owners
which allows you to visually identify the structure of nested instances in the Containment tree(see
page 23).
492 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
251
The Block Definition Diagram with instances of the vehicle Block is created by
using the Automatic Instantiation wizard.
Related pages
Sample model
The model used in the figures of this page is the VehicleStructure sample model. To open this sample,
download VehicleStructure.mdzip493.
Steps of the Automatic Instantiation wizard
On this page
3 https://docs.nomagic.com/download/attachments/82753878/VehicleStructure.mdzip?
49
api=v2&modificationDate=1498051325517&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
252
• Introduction(see page 253)
• Opening the Automatic Instantiation wizard(see page 253)
• The Automatic Instantiation wizard steps(see page 253)
Introduction
This page describes each step of the Automatic Instantiation wizard in detail. If you are satisfied with
the default values provided in the Automatic Instantiation wizard, you can finish the wizard in the
first step without making any changes. The instances will be created with the default values and in your
working package. If you want to change the default values of a single instance or create multiple sets of
instances, follow all steps of the Automatic Instantiation wizard. You can add each set in a different
package, as well as display them on the newly created diagrams.
After finishing the wizard, you can create a very large number of instance specifications,
depending on the size of your system. That is why we strongly recommend selecting a new
package to store all created instance specifications.
Opening the Automatic Instantiation wizard
To open the Automatic Instantiation wizard
1. Select the Block for which you want to create instances.
2. From the shortcut menu, select Tools > Create Instance.
The Automatic Instantiation wizard opens.
The Automatic Instantiation wizard steps
The Automatic Instantiation wizard consists of three steps:
•
• Step #1. Select parts(see page 253)
• Step #2. Select a package(see page 256)
• Step #3. Create a diagram (Optional)(see page 257)
Step #1. Select parts
In this step, you can see all the available instance specification values (parts) of your selected element.
At this point, you can select which parts or properties to instantiate, create or select values for parts
and properties, as well as add or remove parallel parts.
Parts are displayed if the multiplicity is greater than 1. The number of parts displayed depends on the
multiplicity.
• The number of parts displayed will equal the multiplicity. For example, if the multiplicity is 2, you
will see 2 parts displayed in the Automatic Instantiation wizard. Also in this case, you will not
be able to add parallel parts or remove existing parallel parts.
• If the multiplicity is defined as an interval (for example, 0..*, 1..10, 1..* ) or *, only one part will be
created by default. If you need more parts, you can create them by pressing Insert or selecting
Add parallel part from the selected property’s shortcut menu.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
253
• If the multiplicity is 1, parts will not be created.
The parts and properties are displayed with the suggested types and values. In this step of the wizard,
you can change them. How to select or create a value for the instantiated property, follow the
procedures below.
Selecting a value for a part
To select a value for a part
1. Select a part to which you want to add a value.
2. In Instantiated properties, click a Value specification cell and then click the ... button.
3. The Select Instance Specification dialog opens.
4. In the opened dialog, select the instance specification you want to add for the selected part.
5. Click the OK button.
To create a value for a part
1. From the element tree, select a part for which you want to create a value.
2. In the Instantiated properties area, click the Value specification cell and then click the Show
Shortcut Menu button.
3. In the opened shortcut menu, point to the Value Specification and then select one of the
available value types.
4. In the Value cell, type the desired value (see the following figure).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
254
Changing a type for a part
You can change the type for the Part Property only if that type is a subtype of a Block (connected
through Generalization). As shown in the following figure, the Controller_FMU Block and ControllerSTM
Block are subtypes of Controller Block. When creating an instances for the System Block, you can change
the type of control Part Property by selecting one of the
following: Controller_FMU Block, ControllerSTM Block or Controller Block.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
255
Changing the type for Part Property directly in the Automatic Instantiation dialog.
Step #2. Select a package
In this step, you can select the package to store instance specifications. You can select an existing
package from the element tree, create a new package, or clone selected packages. Click
the Finish button after this step if you do not want to display your created instance specifications.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
256
To create a new Package in the element tree
1. In the element tree, select the Package for which you want to create the new one.
2. Click the Create button.
3. From the open menu, select the package kind. The Specification window of that package opens.
4. Type its name.
5. Click Close.
To clone the Packages in the element tree
1. In the element tree, select the Package to clone.
Note
The Package is cloned recursively including all nested structures.
2. Click the Clone button.
3. The Specification window of cloned Package opens.
4. Type its name.
5. Click Close.
Step #3. Create a diagram (Optional)
In this step, you can choose whether or not to show your created instance specifications in a new
diagram. If you do not wish to create a new diagram, you can simply skip this step by clearing the
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
257
Create a new diagram check box.
To display instance specifications in the new diagram
1. Make sure the Create a new diagram check box is selected.
2. (optional) If you want to create and display links between your instance specification(s), select the
Create link between instances check box.
3. Fill in the Type diagram name field by typing the diagram name.
Note
By default the diagram name is selected Package name in the Step 2.
4. From the Select diagram type drop-down list, select one of the diagram types.
5. Specify the owner for a new diagram:
• Select existing Packages from the tree.
• Click the Create Owner button to create new.
• Click the Clone button to clone existing Packages.
6. Click Finish.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
258
Example
As example, how to create instances of Blocks with complex structure, read Automatic
Instantiation wizard(see page 249).
Sample model
The model used in the figures of this page is the VehicleStructure sample model. To open this sample,
download VehicleStructure.mdzip494.
Extract Structure Wizard
On this page
• Introduction(see page 259)
• The Extract Structure Wizard areas(see page 260)
• Using the Extract Structure Wizard(see page 260)
Introduction
The extract structure feature allows you to select a portion of an existing system structure and
transform it into another reusable Block(see page 545) (or Subsystem(see page 565)) which may then be used
as parts(see page 560) in many other structures. You can also play a 'move' or a 'decompose' role when a
structure becomes too complex and requires to be decomposed into several smaller reusable parts.
Recursive decomposition of structure and behavior is an important aspect of the iterative development
process. This feature is particularly useful for the automotive, aerospace, and defense communities for
modeling complex systems-of-systems and building reusable components.
You can extract your structure by using the Extract Structure Wizard. It allows you to extract selected
Part Properties(see page 560) of an Internal Block Diagram(see page 520) to a separate diagram. Using this
wizard, you can:
• Create and specify the target diagram that you want to create as the result of the extraction. The
selected part is extracted to the newly created diagram.
• Select the ports that you want to create in a new diagram. Ports are listed for each intersected
connector from the source diagram.
• Specify a referencing element (in this case, a property) that is created in the source Internal
Block Diagram and represents the elements moved to the target diagram during the extraction.
4 https://docs.nomagic.com/download/attachments/82753878/VehicleStructure.mdzip?
49
api=v2&modificationDate=1498051325517&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
259
The Extract Structure Wizard areas
The Extract Structure Wizard consists of the following areas:
• Steps area: displays all steps of the wizard and shows the current step you are working on.
• Options area: allows you to select and specify required options.
Using the Extract Structure Wizard
To extract structure
1. In the SysML Internal Block Diagram or a structure compartment, select Part Properties that you
want to extract.
2. Right-click selected parts and from the shortcut menu select Refactor > Extract.
3. Follow the steps of the Extract Structure Wizard. How to work in each step of the Extract
Structure Wizard >>(see page 262)
4. Click Finish when you are done.
Selected Part Properties are decomposed: another reusable Block (or Subsystem) and Internal
Block Diagram are created (see the figure below).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
260
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
261
The selected Part Properties in the Climate Control IBD are extracted. As a result
the new climate System Block and the SysML Internal Block Diagram are created.
Related pages
• Steps of the Extract Structure Wizard(see page 262)
• Refactoring495
• Refactoring model elements496
• Decomposing Blocks(see page 119)
• SysML Internal Block Diagram(see page 520)
• Block(see page 545)
• Part Property(see page 560)
Sample model
The model used in the figures of this page is the climate control system sample model. To open this
sample do one of the following:
• Download climate control system.mdzip497.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\climate control
system.mdzip.
Steps of the Extract Structure Wizard
On this page
• Opening the Extract Structure Wizard(see page 262)
• The Extract Structure Wizard steps(see page 263)
In this page you can read about each step of the Extract Structure Wizard in details, understand
option boxes and buttons.
Opening the Extract Structure Wizard
To open the Extract Structure Wizard
1. In the SysML Internal Block Diagram or a structure compartment, right-click a Part Properties
that you want to extract.
2. From the shortcut menu, select Refactor > Extract.
The Extract Structure Wizard opens.
495 https://docs.nomagic.com/display/MDTWRT/Refactoring
496 https://docs.nomagic.com/display/MDTWRT/Refactoring+model+elements
7 https://docs.nomagic.com/download/attachments/82753878/climate%20control%20system.mdzip?
49
api=v2&modificationDate=1498640057503&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
262
The Extract Structure Wizard steps
The Extract Structure Wizard consists of three steps:
•
• Step #1. Specification of a new element(see page 263)
• Step #2. Creation of ports(see page 264)
• Step #3. Creation of a property(see page 265)
Step #1. Specification of a new element
In this step, you can specify a diagram into which the extracted part will be moved and an owner
wherein this new diagram will be created. You can also define the type of the newly created classifier
element that will own the diagram. The Block and the SysML Internal Block Diagram type are selected
by default. The name of the SysML Internal Block Diagram will be the same as the specified name of the
classifier element.
Step 1 in the Extract Structure Wizard: Specify a new element.
Dialog boxes
Description
Type element name
Type the name of the new element, that is, classifier, wherein the
extracted part will be stored.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
263
Dialog boxes
Description
Select element type
Open the list and select the element type. The default element type is a
class. By using the customized plugins, you can add custom elements
to the element type list.
Select owner
In the model tree, select a package, profile, or model as an owner of
the newly created element. You may also:
• Create a new owner. Click the Create Owner button, select
an element type, and specify its properties.
• Clone an existing package, profile, or model. In the model
tree, select an owner, click the Clone button, and specify
properties of the cloned element.
Select diagram type
Open the list and select the diagram type for the extracted part. The
default diagram type is a composite structure diagram. By using the
customized plugins, you can add custom diagrams to the diagram type
list.
After you have specified the new element name, type, owner of the diagram, and the type of the new
diagram, do one of the following:
• Click Next , if you want to specify ports and to define a referencing element. The next wizard
step opens.
• Click Finish. The selected part of a composite structure diagram is extracted to a new diagram
that is specified in this step. Instead of the extracted part, the selected element type is created in
the SysML Internal Block Diagram referencing to the newly created diagram. The second and the
third wizard steps are skipped, that is, the default options are taken.
Step #2. Creation of ports
In this step, there are listed the port(s) that will be created for the:
• intersected connector(s)
• incoming connector(s)
• outgoing connector(s)
The Create ports list is empty unless there are intersected, incoming and/or outgoing
connector(s) selected in the source SysML Internal Block Diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
264
Step 2 in the Extract Structure Wizard: Create ports.
After you have selected the ports, do one of the following:
• Click Back to return to the first step.
• Click Next, if you want to define a property (that is, referencing element). The next wizard step
opens.
• Click Finish. The selected part of the SysML Internal Block Diagram is extracted to a new
diagram. The third wizard step is skipped, that is, the default options are taken.
Step #3. Creation of a property
A property is created as the result of the extraction. The property is created under the classifier that
was specified in the first wizard step. The symbol of the property is created in the source SysML Internal
Block Diagram and represents the elements moved to the target diagram during the extraction.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
265
Step 3 in the Extract Structure Wizard: Create a property.
After you have selected the parameters, do one of the following:
• Click Back to return to the previous step.
• Click Finish. The selected part of a SysML Internal Block Diagram is extracted to a new diagram.
Example
As example, how to extract structure and what results to expect, read Extract Structure
Wizard(see page 259)
Sample model
The model used in the figures of this page is the climate control system sample model. To open this
sample do one of the following:
• Download climate control system.mdzip498.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\climate control
system.mdzip.
8 https://docs.nomagic.com/download/attachments/82753878/climate%20control%20system.mdzip?
49
api=v2&modificationDate=1498640057503&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
266
Behavior to structure synchronization
The behavior to structure synchronization checks the consistency of the Internal Block diagram (IBD)
with Activities, automatically detects inconsistencies, and enables users to handle each inconsistency
individually by providing solvers. As a result, the coherence of IBDs with Activities is ensured at any
stage of the model development process.
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
https://www.youtube.com/watch?v=-sd8lDPHtlk
The behavior to structure synchronization validates the Part Properties displayed in the Internal Block
Diagram(see page 520) to check for compatible:
• Proxy Ports
• Flow Properties
• Interface Blocks
• Connectors
• Item Flows
To verify whether or not the structural elements (e.g., a Proxy Port and an Interface Block) and
behavioral elements (e.g., a flow) are compatible, validation rules are used. If any inconsistencies are
found, they are highlighted in yellow in the Internal Block Diagram and displayed in the Validation
Results panel. Then, they can be individually handled using solvers.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
267
Synchronizing behavior to structure.
Checking behavior to structure synchronization
You need to set the Allocation Mode (Options > Project > SysML > Allocation Mode) project
option to Usage before you can synchronize behavior to structure.
To check the structure model consistency with the behavior model
1. In the toolbar of the Internal Block Diagram, click
Tools.
2. In the open drop-down menu, select Behavior to Structure Synchronization.
The behavior to structure synchronization check is initiated.
Continue reading
• Handling inconsistencies between structure and behavior models(see page 268)
• Creating structure models by behavior models(see page 274)
Handling inconsistencies between structure and behavior models
On this page
• Handling missing Proxy Ports and Interface Blocks(see page 269)
• Handling missing Connectors(see page 271)
• Handling missing Item Flows(see page 272)
• Navigating to elements(see page 273)
Three validation rules complement each other to check whether the structure model is compatible with
the behavior model. If any inconsistencies are found, the structure model can be automatically
synchronized with the behavior model using solvers. First, you need to synchronize interfaces so that
you can handle Connectors and, finally, Item Flows. As a consequence, the manual work is reduced.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
268
Tip
You can handle detected inconsistencies using solvers directly in:
• Internal Block Diagram
• Validation Results panel
Handling missing Proxy Ports and Interface Blocks
The first validation rule checks whether Proxy Ports and Interface Blocks are compatible with flows that
flow between the two different Part Properties in Activities. The missing Proxy Ports and Interface
Blocks can be handled automatically using solvers.
To create missing Proxy Ports and Interface Blocks
1. Do one of the following:
• In the Internal Block Diagram, select a Part Property highlighted in yellow, and then in the
smart manipulator toolbar, click
.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
269
• In the open Validation Results panel, right-click a validation result.
2. Select one of the following:
• Create Port - creates a new Proxy Port typed by a compatible Interface Block.
• Choose Compatible Interface Block(see page 270) - changes an already existing Proxy Port
type to a compatible Interface Block.
• Add Missing Flow Property - adds a new Flow Property to an Interface Block that types a
Proxy Port.
• Reverse Direction of Port - changes the Proxy Port direction, thus changing the Flow
Property direction of an Interface Block that types a Proxy Port.
A Proxy Port typed by a compatible Interface Block is created.
Choosing a compatible Interface Block
If you select the Choose Compatible Interface Block solver, the Choose Proxy Port with Compatible
Interface Block dialog opens.
You can now choose a Proxy Port and type it with an Interface Block that has Flow Properties
compatible with the type and direction of the missing flow.
Alternatively, you can create a new Proxy Port and an Interface Block to type the Proxy Port. For this,
select <NEW>.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
270
Choosing a Proxy Port and specifying a compatible Interface Block as its type.
Handling missing Connectors
The second validation rule checks whether there is a Connector between the two compatible Proxy
Ports owned by the Part Property. The missing Connectors can be handled automatically using solvers.
To create missing Connectors
1. Do one of the following:
• In the Internal Block Diagram, select a Proxy Port highlighted in yellow, and then in the
smart manipulator toolbar, click
.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
271
• In the open Validation Results panel, right-click a validation result.
2. Select Create Connector.
A Connector between the two compatible Proxy Ports is created.
Handling missing Item Flows
The third validation rule checks realized Item Flows in Activities and helps to ensure the correct Item
Flows are realized on Connectors that connect Proxy Ports typed by compatible Interface Blocks. The
missing Item Flows can be handled automatically using solvers.
To realize missing Item Flows on Connectors
1. Do one of the following:
• In the Internal Block Diagram, select a Connector highlighted in yellow, and then in the
smart manipulator toolbar, click
.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
272
• In the open Validation Results panel, right-click a validation result.
2. Select one of the following:
• Realize Missing Item Flow - creates a new compatible Item Flow or reuses an existing one
and realizes it on the Connector.
• Open Item Flow Manager - opens the Item Flow Manager(see page 110) dialog.
• Change Item Flow Realization Compatibility Checking - opens the Project Options
dialog to enable/disable the Item Flow realization checking.
A compatible Item Flow is realized on the selected Connector.
Navigating to elements
To learn more about the validated elements, in the smart manipulator toolbar of the Internal Block
Diagram or Validation Results panel, select the Navigate To command to navigate to:
• Activity Edges in the Activity diagram from which the missing flow has been identified.
• Part Properties in the Internal Block Diagram between which items are flowing.
Elements are automatically selected on the diagram pane and in the Containment tree.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
273
Navigating to an element from the smart manipulator toolbar.
Creating structure models by behavior models
A structure model can be automatically built according to the existing behavior model. Once the
command is initiated, the structure model, including missing interfaces (together with Proxy Ports
typed by compatible Interface Blocks), Connectors, and Item Flows is created. Additionally, elements
are displayed in the newly-created Internal Block Diagram. As a result, there is no need to manually
define the communication in an Internal Block Diagram once again if you have already created an
Activity Diagram.
Important
If the Create Internal Block Diagram by Behavior Model command is not available under
Tools in the Block shortcut menu, make sure:
• The Allocation Mode is set to Usage (Options > Project > SysML > Allocation Mode).
• The selected Block contains typed Part Properties that communicate with other Part
Properties in Activities.
To create a structure model by the behavior model
1. Do one of the following:
• In the Containment tree(see page 23), right-click a Block.
• On the diagram pane, right-click a Block shape.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
274
2. In the open shortcut menu, select Tools > Create Internal Block Diagram by Behavior Model.
A structure model is automatically created according to the defined behavior model, and compatible
elements are displayed on the Internal Block Diagram pane.
Contextual relationships
Contextual relationships provide the ability to define the specific context that relationships are used in.
Before you can create contextual relationships in your project, you must enable their creation in the
Project Options dialog.
There are five types of relationships you can contextualize: Allocate, Refine, Satisfy, Trace, and Verify.
To enable the creation of contextual relationships
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
275
1. Click Options > Project.
2. Under General, click SysML.
3. Select Creation of Contextual Relationships.
4. Choose Fully Enabled, Partially Enabled, or Disabled from the drop-down menu on the right.
Fully
Enabled
• Create Contextual Relationships using the Create Relation dialog.
• Add a new Contextual Relations category to the Dependency Criteria dialog.
Contextual Relations can only be created in dependency matrices with the specified
Structure-tree view.
• Contextualize relationships while creating them on the diagram pane.
• Contextualize relationships created by drag-and-dropping elements directly from the
Structure tab.
• Contextualize/decontextualize relationships using the smart manipulator toolbar.
Partially
Enabled
Includes the same features as the Fully Enabled option (see above(see page 276)), excluding the
ability to contextualize relationships using the diagram palette.
Disabled
Completely disable the creation of Contextual Relationships.
Contextual Relationships Options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
276
« Creating structure models by behavior models(see page 274)
Creating and displaying contextual relationships »(see page 277)
Creating and displaying contextual relationships
Once you enable the creation of contextual relationships in the Project Options dialog, you can start
creating them immediately.
You can create contextual relationships from multiple places in your modeling tool:
• Structure tab (Model Browser499)
• Internal Block Diagram and Block Definition Diagram(see page 278)
• Structure tree-view Dependency Matrix(see page 280)
• Structure tree-view table(see page 281)
Creating contextual relationships from all the places listed above
To create contextual relationships from the Create Relations dialog
1. Right-click an element, click Create Relation > Outgoing/Incoming, and then select the
contextual relationship type to create. The Create New <relation name> (contextual) To /
From dialog opens.
2. Do one or more of the following:
• In the Model Browser, select the element to create a relationship to / from.
• On the diagram pane, select the element to create a relationship to / from.
• In the Create New <relation name> (contextual) To / From dialog, click
select the element to create a relationship to / from.
3. Click OK.
, and
499 https://docs.nomagic.com/display/MDTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
277
Creating contextual relationships using the Create Relations dialog.
Learn more about creating relationships >>500
Creating and displaying contextual relationships in diagrams
To create contextual relationships from the diagram palette or smart manipulator toolbar
1. Do one of the following:
• On the diagram palette, select the relationship type to create.
• On the diagram pane, select the relationship end and click
toolbar.
2. Select the appropriate elements on the diagram pane.
in the smart manipulator
500 https://docs.nomagic.com/display/MDTWRT/Creating+a+relationship
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
278
Creating contextual relationships from the diagram palette or smart
manipulator toolbar.
To contextualize relationships from the smart manipulator toolbar
1. In the diagram pane, click on the existing relationship. The smart manipulator toolbar appears.
2. Click
to contextualize the selected relationship.
You can only contextualize Allocate, Refine, Satisfy, Trace, and Verify relationships.
Contextualizing relationships using the smart manipulator toolbar.
You can decontextualize the existing contextual relationship by clicking
the smart manipulator toolbar.
(Decontextualize) in
For a more compact Internal Block Diagram view, contextual relationships can be represented in
the Element Properties compartment of the element shape. For this, you need to create the
appropriate derived property501 first. Note that this expression must be identical to the dependency
matrix criteria for displaying contextual relationships.
501 https://docs.nomagic.com/display/MDTWRT/Extending+Metamodel+with+Derived+Properties
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
279
Displaying Contextual Relationship in the element compartment.
Creating contextual relationships in dependency matrices
Contextual relationships can only be created in Structure tree-view dependency matrices502.
To create contextual relationships in dependency matrices
1. In the Criteria area of the Dependency Matrix503, next to Dependency Criteria, click
.
2. Click the Simple Navigation operation and scroll down to the Contextual Relations category.
3. Under Relation Criterion, select the contextual relationship type to create.
4. When you are done, click OK.
502 https://docs.nomagic.com/display/MDTWRT/Specifying+scope#Specifyingscope-
hierarchyindependencymatrices
503 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
280
Specifying Relation Criterion to build a Dependency Matrix.
Contextual relationships can only be created in Structure tree-view tables504.
Before you can create contextual relationships in your structure tree-view table, you need to add a
custom column or create a derived property505 to represent them.
To add a custom column/derived property to represent contextual relationships
1. In the diagram toolbar, click Columns > New Custom Column/New Derived Property.
• Select New Custom Column to add a custom column to the specific table only.
• Select New Derived Property to add a column to be able to use in all future
tables.
2. In the Expression dialog, click the Simple Navigation operation and scroll down to the
Contextual Relations category.
4 https://docs.nomagic.com/display/MDTWRT/
50
Displaying+row+elements+hierarchically#DisplayingrowelementshierarchicallyDisplayingelementsincustomhierarchy
505 https://docs.nomagic.com/display/MDTWRT/Extending+Metamodel+with+Derived+Properties
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
281
3. Under Relation Criterion, select the contextual relationship type (e.g., contextual Satisfy) to
create.
4. When you are finished, click OK.
Once you have added a custom column, you can now create contextual relationships directly in your
table.
To create contextual relationships in structure tree-view tables
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
282
1. In the structure tree-view table, select the appropriate row and then click
.
2. In the open Select Elements dialog, select the element(s) to create the contextual relationship(s).
3. When you are finished, click OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
283
The contextual relationship is created in the model and represented in the table.
« Contextual relationships(see page 275)
Creating contextual Satisfy »(see page 284)
Creating contextual Satisfy
You can create a contextual Satisfy relationship by simply dragging-and-dropping the selected property
onto the requirement directly from the S(see page 20)tructure tab(see page 29).
To create a contextual Satisfy relationship
1. In the Structure tab(see page 29), locate the property that satisfies the selected requirement.
2. Place it onto the requirement and select Create Satisfy (contextual). The relationship is
created.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
284
Creating a contextual Satisfy relationship from the Structure tab.
Dragging-and-dropping a property from another Model Browser(see page 20) tab results in the
automatic creation of a non-contextual Satisfy relationship.
« Creating and displaying contextual relationships(see page 277)
Modeling parametric constraints »(see page 285)
Modeling parametric constraints
On this page
• Introduction(see page 285)
• Creating parametric constraints(see page 286)
• Creating parametric constraints manually(see page 286)
• Creating parametric constraints automatically(see page 291)
Introduction
SysML Parametric Diagrams provide a way to integrate engineering analysis models described in
mathematical equations and constraints, with design models describing the structural and behavioral
aspects of systems. Parametric diagrams include usages of constraint blocks to constrain the
properties of another block. A constraint property is a property of any block that is typed by a
constraint block. To empower the constraint expression to perform calculations, you have to specify
what system parameters should be consumed as variables of that constraint.
See the figure below, as example of SysML Parametric Diagram(see page 523) wherein all elements are
highlighted: Value Properties(see page 569), Constraint Block(see page 548), Constraint Property(see page 550),
Constraint expression, Constraint Parameter(see page 549), Binding Connector(see page 544).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
285
The main elements used in the SysML Parametric Diagram.
Creating parametric constraints
This section explains how to model system constraints in the SysML Parametric Diagram506. Parametric
constraints are formulas, and parameters are variables that can be bound to value properties later.
Variables can be inputs and outputs of the formula. In general, you must perform the following steps to
model your system constraints. However, some actions may already be done in the model creation
process, so you may skip these steps and use existing model data. The following procedure provides
the main workflow of modeling parametric constraints manually and automatically.
There are two ways to model parametric constraints:
• Manually by creating elements and binding them.(see page 286)
• Automatically by using the Parametric Equation Wizard.(see page 291)
Creating parametric constraints manually
To create parametric constraints manually
506 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Parametric+Diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
286
1. Open existing project507 or create new508.
2. Create a Block509 or it's structure in Block Definition Diagram(see page 519). As shown in the figure,
The DC Motor Block is decomposed into Rotation part and inherited DC Power part from DC Device
Block. Learn more how to decompose Blocks >(see page 119)
3. Create Value Properties for those Blocks(see page 122). As shown in the figure below, the
highlighted Value Properties created for the DC Motor, Rotation and DC Power Blocks. Specify their
types510.
4. Right-click the Block and select Create Diagram > SysML Parametric Diagram. In the
opened Display Parameters/Properties511 dialog, select either:
507 https://docs.nomagic.com/display/SYSMLPTWRT/Opening+SysML+projects
508 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects
509 https://docs.nomagic.com/display/SYSMLPTWRT/Defining+Blocks+in+Block+Definition+Diagram
510 https://docs.nomagic.com/display/SYSMLPTWRT/Selecting+property+type
511 https://docs.nomagic.com/display/SYSMLPTWRT/Displaying+parameters+and+properties
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
287
• Part Properties with its Value Properties, if you have enough space on the diagram pane to
display part shapes. As example, see the following figure where power Value Property is
displayed inside inherited dcPower Part Property shape.
• Only Value Properties, if you need to save a space on the diagram pane. The dot
notation(see page 145) is used in Value Property name instead of part shape. As example, see
the following figure where dot notation (rotation.power) is used to express the path of
power Value Property.
5. Click the Constraint Property button on the diagram palette and then click the empty place of
that diagram pane. An unnamed Constraint Property512 is created. Type its name.
6. Specify Constraint property type by selecting the Constraint Property shape, from the smart
manipulator toolbar, click
and do either:
• Type a name of a Constraint Block and press Enter. The new Constraint Block is created
automatically in the model with an empty Constraint expression.
Double-click {} and type an expression. To make a reusable Constraint Block(see page 316),
we highly recommend to use different value names than exist in particular model. E.g.
efficiency=powerOutput/suppliedPower. Create parameters automatically from equation(see
page 295) by clicking
from Constraint Property smart manipulator toolbar. As shown in
the figure below, three Constraint parameters are created: efficiency, suppliedPower,
512 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Property
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
288
powerOutput.
• Select reusable Constraint Block (see page 316)from the library. The Constraint expression
appears automatically.
7. Connect Value Properties with Constraint Parameters in one of the following way:
- Select the Value Property shape, from smart manipulator toolbar click
and connect it to
513
a Constraint Property
shape. From the Select Parameter menu list, select an appropriate
parameter. As example, see the figure below where power Value Property is binding by selecting
a supplierPower parameter from the suggested list.
- Display Constraint Parameters on Constraint Property shape514 by clicking
smart
manipulator toolbar. Select Value Property/Constraint Parameter shape, click
and connect it
to Constraint Parameter/Value Property. As shown in the figure elow, the efficiency Value
513 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Property
4 https://docs.nomagic.com/display/SYSMLPTWRT/
51
Displaying+parameters+and+properties#DisplayingparametersandpropertiesUsingthesmartmanipulatortoolbar
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
289
Property is binding with an efficiency parameter.
The Constraint Parameter are connected with Value Properties using Binding Connector. Now
you can run the simulation of parametric data in one of the following way:
- Right-click the Block that owns the Parametric diagram and select Simulation > Run.
- From the Parametric Diagram toolbar, click
In the Variables tab, type values and click
.
. Learn more about parameters simulation >515
515 https://docs.nomagic.com/display/CSTTWRT/Parametric+evaluator
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
290
You can create an equation system by creating bindings between parameters between
separate Constraint Properties. E.g. The BoilerEnergy and BoilerWaterTemperature
Constraint Properties are connected through the dQb parameter because the
BoilerEnergy constraint expression provides a value for the BoilerWaterTemperature
constraint expression.
Creating parametric constraints automatically
To create parametric constraints automatically
1. Open existing project516 or create new517.
2. Create a Block518 or it's structure in Block Definition Diagram(see page 519). As shown in the figure,
The DC Motor Block is decomposed into Rotation part and inherited DC Power part from DC
Device Block. Learn more how to decompose Blocks >(see page 119)
516 https://docs.nomagic.com/display/SYSMLPTWRT/Opening+SysML+projects
517 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects
518 https://docs.nomagic.com/display/SYSMLPTWRT/Defining+Blocks+in+Block+Definition+Diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
291
3. Right-click the Block for which you want to create SysML Parametric Diagram, select Tools >
Parametric Equation Wizard. Learn more about Parametric Equation Wizard >(see page 300)
4. Type equation and click the Parse and Map button. The Constraint Block with parameters are
created automatically. If the names of Constraint Parameter and Value property are the same,
they and mapped automatically. You can change bindings by dragging Constraint
Parameters519 in the left tree onto properties in the right tree. Learn more about creating
Parametric Diagram from an equation >
520
5. In the SysML Parametric Diagram toolbar, click
to remap or include additional Value Properties.
519 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Parameter
0 https://docs.nomagic.com/display/SYSMLPTWRT/Parametric+Equation+Wizard#ParametricEquationWizard52
HowtocreateaParametricDiagramfromanequation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
292
Related pages
• Defining Constraint Blocks(see page 293)
• SysML Parametric Diagram context(see page 294)
• Creating Constraint Parameters automatically(see page 295)
• Extracting Constraint from Requirement(see page 297)
• Parametric Equation Wizard(see page 300)
• Displaying parameters and properties(see page 304)
• Creating Binding Connector(see page 315)
• Creating reusable constraint libraries(see page 316)
• Wrapping MATLAB functions(see page 316)
• SysML Parametric Diagram521
Sample model
The model used in the figures of this page is the InvertedPendulum sample model that comes with
SysML plugin. To open this sample do one of the following:
• Download InvertedPendulum.mdzip522.
• Find in modeling tool <modeling tool installation directory>\samples\sysml\Inverted
Pendulum\InvertedPendulum.mdzip.
Defining Constraint Blocks
With a Constraint Block(see page 548), you can define parameters needed to calculate a formula. In a
Parametric diagram(see page 523), Constraint Blocks are used as types of Constraint Properties(see page
550). You can use the same Constraint Block in several Contexts. Usually, constraints are stored in a
library, where you will be able to export and reuse them in other models.
To create a Constraint Block
1. Open a Block Definition Diagram(see page 519) or create a new one(see page 62).
2. Click the Constraint Block button on the diagram palette, then click an empty space on the
diagram pane. An unnamed constraint block is created.
3. Type a Constraint Block name directly on the shape of that element and press Enter.
4. In a constraints compartment, type a formula.
521 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Parametric+Diagram
2 https://docs.nomagic.com/download/attachments/82753878/InvertedPendulum.mdzip?
52
api=v2&modificationDate=1498477335401&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
293
5. Create parameters. Click the Constraint Block. The smart manipulator appears. Click the Parse
and Create Parameters.
6. According to the formula, parameters having default types assigned are created. If necessary,
you may change the type of the particular parameter.
Related pages
• SysML Block Definition Diagram(see page 519)
• Displaying parameters and properties(see page 304)
• Block(see page 545)
SysML Parametric Diagram context
When creating a new SysML Parametric Diagram(see page 523) for an element which cannot be the
context of this diagram (e.g. Package523), the new context element (which is a Block(see page 545)) is
created automatically.
Turning off automatic creation of a diagram context element
To turn off automatic creation of a diagram context element
1. On the main menu524, select Project > Options.
2. In the Project Options dialog, find the Diagram Context option.
3. Select the Do Not Create value.
4. Click OK.
The automatic creation of a diagram context element is turned off.
This means that when you create a new diagram for an element which cannot be the context of this
diagram (e.g. Package525), the Select Diagram Context dialog will open automatically. It allows you to
select an existing element as a context, create a new context element by enabling the Creation Mode,
523 https://docs.nomagic.com/display/MDTWRT/Package
524 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
525 https://docs.nomagic.com/display/MDTWRT/Package
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
294
or click the Cancel button if you do not want to specify the diagram context. The diagram will be
created in the Package.
If you want to enable the automatic creation of a diagram context element, select the Create
Automatically value for the Diagram Context option.
Changing the diagram context element
After the diagram is created, you can change its context element.
To change the diagram context element
1. Right-click the diagram and select Specification.
2. In the Specification window526, find the Context property.
3. Click on its value cell, and select
.
4. In the Select Diagram Context dialog, do one of the following:
- Select an existing element as a context in the Tree or List tab
- Create a new context element by enabling the Creation Mode > Create and select it.
5. Click OK.
The diagram context element is changed.
Creating Constraint Parameters automatically
You can create Constraint Parameters automatically when:
• Creating a Binding Connector.(see page 295)
• Using the Parse and Create Parameters button(see page 296).
To automatically create new Constraint Parameters(see page 549) when creating a Binding Connector(see
page 544)
1. Do one of the following:
• Select an appropriate property shape and, from the smart manipulator toolbar, click
• From the diagram toolbar, click
, and select an appropriate property
shape.
2. Connect it to a Constraint Property(see page 550) shape:
- if all parameters from the constraint equation are already created in the model, a new
parameter is created with the same name as the property name.
526 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
295
.
- if one or more parameters from the constraint equation are not created in the model, choose
them from the Select Parameter menu list.
To create Constraint Parameters(see page 549) automatically using the Parse and Create Parameters
button
1. Create a new Constraint Property(see page 550) shape or select an existing one.
2. Type a constraint expression or a new variable for an existing expression.
3. Do either:
• Click the shape and from the smart manipulator toolbar, select
.
• Right-click the shape and select Tools > Parse and Create Parameters.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
296
Constraint Parameters are created.
Note that the Constraint Property(see page 550) type is always a Constraint Block(see page 548), thus
all Constraint Parameters(see page 549) are created under that particular Constraint Block.
Extracting Constraint from Requirement
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
297
The Extracting Constraint from Requirement functionality provides the ability to verify Requirements
easier when trying to prove the assertion is true (or false). A glossary mechanism extracts the constraint
directly from the Requirement text. If you want to create constraints and associate them with the
requirements automatically, you can use the extract Constraint from Requirement text functionality.
To extract Constraint527 value from Requirement528 text
1. Use the Requirements patterns glossary in Requirement text.529
2. Create the Satisfy relationship between the specific value of design element and requirement.(see
page 298)
Extract Constraint from Requirement text(see page 298).
3.
Creating the Satisfy relationship
The specific value of the design element must satisfy the Requirement. As shown below, the
distanceOnQuickCharge value of the High-voltage Battery Block satisfies the Quick charge mode distance
Requirement.
Extracting Constraint from Requirement
To extract a Constraint from a Requirement
1. Right-click a value property in the compartment area of the element shape.
2. Select Tools > Extract Constraint From Requirement.
The constraint is created automatically with a value and condition pattern defined in the
Requirement.
In the example below, the text "at least 70" of the Quick charge mode distance Requirement is
automatically parsed to "distanceOnQuickCharge >= 70" and solved as a constraint.
527 https://docs.nomagic.com/display/MD185/Constraint
528 https://docs.nomagic.com/display/SYSMLP185/Requirement
529 https://docs.nomagic.com/display/CRMPTWRT/Using+Requirement+patterns+glossary
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
298
After selecting the Extract Constraint From Requirement command, the constraint
{distanceOnQuickCharge >=70.0} is automatically created. It satisfies the requirement text "at least 70".
Related pages
• Defining Constraint Blocks530
• Creating Constraint Parameters automatically531
• Parametric Equation Wizard532
• Displaying parameters and properties533
• Creating Binding Connector534
• Creating reusable constraint libraries535
• Wrapping MATLAB functions536
530 https://docs.nomagic.com/display/SYSMLPTWRT/Defining+Constraint+Blocks
531 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+Constraint+Parameters+automatically
532 https://docs.nomagic.com/display/SYSMLPTWRT/Parametric+Equation+Wizard
533 https://docs.nomagic.com/display/SYSMLPTWRT/Displaying+parameters+and+properties
534 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+Binding+Connector
535 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+reusable+constraint+libraries
536 https://docs.nomagic.com/display/SYSMLPTWRT/Wrapping+MATLAB+functions
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
299
Sample model
The model used in the figures of this page is the extract requirement values sample model To open
this sample do one of the following:
• Download extract requirement values.mdzip537.
• Find in modeling tool <modeling tool installation directory>\samples\SysML\extract requirement
values.mdzip.
Parametric Equation Wizard
On this page
• Description of the Parametric Equation Wizard areas(see page 300)
• How to create a Parametric Diagram from an equation(see page 302)
• Example(see page 303)
You can automatically create the SysML Parametric Diagram with elements from a
mathematical equation by using the Parametric Equation Wizard. It parses the equation and creates
a Constraint Block(see page 548) with named Constraint Parameters(see page 549). The wizard analyzes
underlying Block(see page 545) structures and finds matching Value Properties(see page 569) in nested
structures.
Description of the Parametric Equation Wizard areas
The Parametric Equation Wizard consists of the following:
• The Constraint expression box allows you to type or paste single or multiple mathematical
equations which define the parameters you want to parse, create, and bind with properties (e.g.
Value Properties(see page 569), other Constraint Parameters(see page 549), Part Properties(see page
560)). You can also modify the equation after clicking the Parse and Map button.
Editing constraint expression
- If you add new parameters to a preexisting equation, they are created after clicking
the Parse and Map button.
- If you remove parameters from a preexisting equation, they remain in the mapping
area after clicking the Parse and Map button.
• The Contextual equation area shows the equation from the constraint expression box where
parameter names are substituted with actual bindings. This area increases the readability of the
7 https://docs.nomagic.com/download/attachments/82753878/extract%20requirement%20values.mdzip?
53
api=v2&modificationDate=1490709033381&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
300
parsed expression and allows you to evaluate binding correctness.
Parameter substitution rules
- If a parameter name already exists in the model and is connected (via Binding
Connector) with another property (Value Property, Constraint Parameter, Part Property),
the parameter is substituted with a property path (e.g. altitude is substituted with
apollo.altitude).
- If a parameter is new, its name is shown as defined in the constraint expression box.
• The Mapping area displays the bindings between parameters in the left tree and properties in the
right tree. It allows you to review and change existing mapping by re-binding, creating new
bindings, or deleting them. All Binding Connectors are shown in the binding area.
Binding map rules
Use the following rules to create an automatic binding map according to parameter
name:
• Exact name matches have priority over partial name matches.
• Upper level properties have priority over deep nested value properties.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
301
Three main areas (highlighted in orange) in the Parametric Equation Wizard:
constraint expression, contextual equation, and mapping. The mapping area
contains the left and right trees and binding area.
How to create a Parametric Diagram from an equation
To create a SysML Parametric Diagram from a mathematical equation
1. Open the Parametric Equation Wizard using one of the following:
• From the shortcut menu of the Block(see page 545) or Constraint Block(see page 548), select
Tools > Parametric Equation Wizard.
• In the SysML Parametric Diagram toolbar, click
.
• Open the SysML Parametric Diagram and press Ctrl+Alt+P.
• In the Containment tree, select Constraint Block and drag it on the SysML Parametric
Diagram pane.
2. In the constraint expression box, type or paste single or multiple mathematical equations (see
example below).
3. Click the Parse and Map button (see example below).
Information
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
302
If you modify the equation in the constraint expression box, use this button to refresh
the data in the Contextual Equation and mapping areas.
4. (Optional) In the Contextual Equation area, evaluate the correctness of the parsed expression
(see example below).
5. (Optional) In the mapping area, review binding suggestions, and, if needed, do the following (see
example below):
- Modify them by dragging Constraint Parameters(see page 549) in the left tree onto properties in
the right tree.
- Delete them by selecting the Binding Connector(see page 544) and either:
- Click the Delete button at the bottom of the binding area;
- Press the Delete button in the keyboard.
6. Click OK (see example below).
The SysML Parametric Diagram with Constraint Block(see page 548) (default name ConstraintBlock),
named Constraint Parameters(see page 549), and properties connected via the Binding
Connector(see page 544), are created.
Example
The example below demonstrates the creation of the MoonLanding Parametric Diagram from the
equation gravity=g*mass/(altitude+radius)^2. The new Constraint Block(see page 548) (default name
ConstraintBlock) with five Constraint Parameters(see page 549) (names from equation: g, radius, mass,
altitude, and gravity) are created and connected via Binding Connectors(see page 544) with Value
Properties(see page 569) (match names with parameter names: g, radius, mass, altitude, and gravity).
The main steps, highlighted in orange, in the Parametric Equation Wizard when
creating the SysML Parametric Diagram from mathematical equation.
Related pages
• SysML Parametric Diagram(see page 523)
• Creating Constraint Parameters automatically(see page 295)
• Displaying parameters and properties(see page 304)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
303
• Enforce Ports Compatibility mode(see page 192)
• Constraint Property(see page 550)
• Constraint Block(see page 548)
• Constraint Parameter(see page 549)
• Binding Connector(see page 544)
• Part Property(see page 560)
• Value Property(see page 569)
• Block(see page 545)
Sample model
The sample model used in the figures on this page is the Moon Landing sample model. Download
MoonLanding.mdzip538.
Displaying parameters and properties
On this page
• Ways to display parameters and properties(see page 305)
• Displaying properties of a Constraint Parameter(see page 314)
You can display Constraint Properties(see page 550) with Constraint Parameters(see page 549) , Part
Properties(see page 560) with ports (including deep nested ports), Value Properties(see page 569), and other
properties that have already been created in the model. This functionality is driven by stereotypes,
which allow you to display properties on which stereotypes539 have been applied. If you have applied
your own stereotypes540 for the elements (e.g., electrical, mechanical, optical), you can use those
stereotypes when selecting the properties you want to display on the diagram pane.
Note
For more information about how to creating and applying custom stereotypes, see UML
Profiling and DSL Guide541.
This page contains the following information:
• Ways to display parameters and properties(see page 305)
• Using the Display Parameters/Properties dialog(see page 305)
• Using the diagram toolbar and the shortcut menu(see page 310)
• Using the smart manipulator toolbar(see page 313)
538https://docs.nomagic.com/download/attachments/82753878/MoonLanding.mdzip?
api=v2&modificationDate=1485961383416&version=1
539 https://docs.nomagic.com/display/MDTWRT/Stereotype
540 https://docs.nomagic.com/display/MDTWRT/Stereotype
541 http://docs.nomagic.com/display/MDTWRT/UML+Profiling+and+DSL+Guide
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
304
• Displaying properties of a Constraint Parameter(see page 314)
Ways to display parameters and properties
You can display ports and properties in the following ways:
•
• Using the Display Parameters/Properties dialog(see page 305)
• Using the diagram toolbar and the shortcut menu(see page 310)
• Using the smart manipulator toolbar(see page 313)
Using the Display Parameters/Properties dialog
You can use the Display Parameters/Properties dialog to control how much of a structure should be
displayed. The Display Parameters/Properties dialog opens automatically when creating a new SysML
Parametric Diagram(see page 523) for a Block(see page 545) or Constraint Block(see page 548) element that
owns parameters and properties. It can also be accessed and opened in the structure diagrams that
have already been created. The Display Parameters/Properties dialog allows you to:
• Preview all Constraint Parameters(see page 549), Constraint Properties(see page 550), and other
properties in one place.
• Manually or automatically select required parameters and properties you want to display.
• Manually or automatically choose deeply nested542 ports or/and properties you want to display.
• Define layout options for properties.
• Specify layout options for parameters.
The Display Parts/Ports dialog consists of the following:
• The Dialog toolbar allows you to show or hide additional information about listed elements.
• The Element tree displays all owned internal structure of the context Block(see page 545) or
Constraint Block(see page 548).
• The Panel is a context-sensitive area that depends on the selected property from the Element
tree. It allows you to batch select parameters/properties in the Element tree. You can select all,
clear all, or choose properties by type, stereotype, or aspect.
• The Options area allows you to choose the layout of the selected properties and parameters
when they appear in the diagram.
542 https://docs.nomagic.com/display/MDTWRT/Nesting+parts+that+are+association+ends
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
305
The following procedure outlines working with the Display Parameters/Properties dialog when you
want to display required parameters and properties on the diagram pane.
To display parameters and properties using the Display Parameters/Properties dialog
1. Open the Display Parameters/Properties dialog:
• When creating a new SysML Parametric Diagram(see page 523), the dialog opens
automatically.
• When editing an already created SysML Parametric Diagram(see page 523), the dialog can be
opened in the following ways:
- Select either a diagram frame or single/multiple element shapes, and, on the diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
306
toolbar, click
and choose Display Parameters/Properties .
- Right-click either a diagram frame or single/multiple element shapes, and select Display
> Display Parameters/Properties .
2. (Optional) Enable buttons from the Display Parameters/Properties dialog toolbar if you want
to show or hide additional information about listed elements:
• Click
to show the full path of elements.
• Click
to show the full types of elements.
• Click
to show the inherited elements.
• Click
to show the inherited properties.
3. Choose the properties you want to display by using one or more of the following methods:
Warning
If some check boxes are inactive in the element list, those elements are already
displayed in the diagram.
• Use the element tree located on the left side of the dialog:
- Manually select individual check boxes one by one.
- Select recursively nested elements by holding down the Shift key while selecting the
corresponding check box for the element.
Example 1
All Constraint Parameters(see page 549) C, gt, h of the Constraint Property(see page 550)
typed by Grinding Constraint Block(see page 548) are selected recursively by holding down
the Shift key while selecting the corresponding check box from the element tree in the
Display Parameters/Properties dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
307
• Use the context-sensitive panel located on the right side of the dialog:
- Select Properties group - displays all property types (including your own stereotypes543)
that are owned by the selected element from the element tree located on the left side of
the dialog.
- Select Parameters group - displays all parameter types (including your own stereotypes)
that are owned by selected element from the element tree located on the left side of the
dialog.
- Select All - selects all check boxes that are expanded from the element tree located on
the left side of the dialog.
- Clear All - clears all check boxes, including those that are collapsed (deep nested), from
the element tree located on the left side of the dialog.
Example 2
All Constraint Parameters(see page 549) C, gt, and h of the Constraint Property(see page 550)
typed by Grinding Constraint Block(see page 548) are selected in the element tree by using
the Select parameters group in the context-sensitive panel of the Display
Parameters/Properties dialog.
543 https://docs.nomagic.com/display/MDTWRT/Stereotype
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
308
4. Specify the layout options in the Options area:
• Properties layout: make sure the Layout Parts check box is selected; otherwise, the
property shapes will not be arranged in the automatic layout.
• Usage of layout template: make sure the Use Layout Template check box is selected;
otherwise, the layout template will not be applied. To apply the layout template, check the
User Layout Template box.If you leave this check box selected, the selection in the dialog
works in this way: when selecting the Constraint Property, which is included in the layout
template, all it's from the layout template are selected automatically.
• Port/parameters layout on Part/Constraint Property shape:
- Top/Bottom - displays ports/parameters on the Part/Constraint Property shape from top
to bottom.
- Left/Right - displays ports/parameters on the Part/Constraint Property shape from left
to right.
5. Click OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
309
After applying the steps outlined above, all parameters and properties that were selected in the
Display Parameters/Properties dialog are displayed on the diagram pane.
Using the diagram toolbar and the shortcut menu
In the SysML Parametric Diagram(see page 523) that have already been created, you can
display Constraint Parameters(see page 549), Constraint Properties(see page 550), or other properties and
hide all Constraint Parameters by using the commands from:
• The Display button on the diagram toolbar.
• The Display command group under the shortcut menu.
You can also use the Display button and Display command group from the shortcut menu as their
functions are identical. All those commands are interactive and depend upon the selection on the
diagram pane. For example, if the Constraint Property shape is selected on the diagram pane, the
menu contains only the commands that can be applied to the selected Constraint Property shape. If
you select nothing in the diagram pane, the menu shows commands that can be applied to the whole
diagram.
These commands under the Display button and shortcut menu are comprised of elements that are still
not displayed on the diagram according to their:
• Metatypes.
• Stereotypes.
• Types stereotypes.
The following procedures show:
• How to display Constraint Parameters, Constraint Properties using the Display button.(see page
310)
• How to display Constraint Parameters, Constraint Properties using the shortcut menu.(see page
311)
• How to hide Constraint Parameters.(see page 312)
To display Constraint Parameters, Constraint Properties using the Display button
1. Select either a diagram frame or single/multiple element shapes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
310
2. On the diagram toolbar, click
.
3. From the opened command menu, select the required properties or parameters:
- All Parameters that are available to display are listed under the Display Parameters
command group.
Important
If nothing is selected on the diagram pane, the Display Parameters command group
will contain commands that allow you to display two levels of structure: Constraint
Parameters are displayed on the diagram frame and on the first level Constraint
Properties.
- All properties that are available to display are listed under the Display Properties
command group.
After selecting the required command from the Display button, the appropriate properties and
parameters are displayed on the diagram pane.
To display parameters, properties using the shortcut menu
1. Right-click either the diagram pane or single/multiple element shapes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
311
2. From the shortcut menu, select the Display command group.
3. From the opened command menu, select the required parameters:
- All parameters that are available to display are listed under the Display Parameters
command group.
Important
If nothing is selected on the diagram pane, the Display Parameters command group
allows you to display two levels of structure: ports are displayed on the diagram frame
and on the first level parts.
- All properties that are available to display are listed under the Display Properties
command group.
After selecting the required command from the Display command menu, the appropriate
properties and parameters are displayed on the diagram pane.
To hide Constraint Parameters (see page 549)
• Select either a diagram pane or any number of Constraint Property(see page 550) shapes. On the
diagram toolbar, click
and choose Hide All Parameters.
• Right-click either a diagram pane or any number of Constraint Property shapes. Select Display >
Hide All Parameters.
After selecting the command, the parameters of the selected shape will be hidden from the
diagram pane. However, they will not be removed from the model.
Warning
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
312
If the Hide All Parameters command does not appear, the selection or diagram does
not contain any parameters that can be hidden.
Using the smart manipulator toolbar
When the Constraint Properties(see page 550) are already displayed on the SysML Parametric Diagram(see
page 523), you can display their Constraint Parameters(see page 549) using the Display All Parameters
button from the smart manipulator toolbar. Follow the steps below to learn how to display Constraint
Parameters of a selected Constraint Property shape.
To display Constraint Parameters on Constraint Property shape
1. Select the Constraint Property shape or a diagram frame.
2. From the smart manipulator toolbar, click
.
All first level Constraint Parameters are displayed on the selected Constraint Property shape.
Warning
If the Display All Parameters button is not available, the selected element or diagram
does not own any Constraint Parameters.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
313
After completing the steps outlined above, the Constraint Property(see page 560) with all its Constraint
Parameters(see page 549), and/or Part Properties(see page 560) with ports (including deep nested ports),
Value Properties(see page 569) can be displayed on the SysML Parametric diagram(see page 523).
Displaying properties of a Constraint Parameter
If you display properties of a Constraint Parameter(see page 549), all properties of its type will be
displayed inside the Constraint Parameter shape and Part Property(see page 560) compartments will be
enabled for that parameter.
To enable Part Property compartments on the Constraint Parameter shape
1. Select a Constraint Parameter shape whose type has properties.
2. Do one of the following:
• On the diagram toolbar, click
.
• From the shortcut menu, point to the Display command group.
3. Select the required properties to display.
The properties are displayed inside the Constraint Parameter shape. Part Property compartments are
enabled for the Constraint Parameter.
Related pages
• SysML Parametric Diagram544
• Creating Constraint Parameters automatically(see page 295)
• Applying Stereotypes545
544 http://docs.nomagic.com/display/MDTWRT/Stereotype#Stereotype-Applyingastereotype
545 https://docs.nomagic.com/display/MDTWRT/Stereotype
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
314
• Displaying elements546
• Property path notation(see page 145)
Sample model
The model used in the figures of this page is the Coffee Machine sample model that comes with
Cameo Simulation Toolkit plugin. To open this sample do one of the following:
• Download CoffeeMachine.mdzip547.
• Find in modeling tool <modeling tool installation
directory>\samples\simulation\CoffeeMachine.mdzip.
Creating Binding Connector
You can create a Binding Connector(see page 544) in the following ways:
• Using the Parametric diagram toolbar(see page 315)
• Using the smart manipulator toolbar(see page 315)
Using the Parametric diagram toolbar
To create a Binding Connector from the Parametric diagram toolbar
1. Click the Binding Connector button.
2. Select the source of the connector (Constraint Parameter(see page 549) or Part Property(see page
560)).
3. Select the target of the connector.
Using the smart manipulator toolbar
To create a Binding Connector from the smart manipulator toolbar
1. Select the connector's source (either Constraint Parameter(see page 549) or Part Property(see page
560)).
2. From the smart manipulator toolbar548, select the Binding Connector button.
3. Select the target of the connector.
A a result the Binding Connector is created with keyword «equal». You can change keyword «equal» to
sign "=" in the Symbol Properties dialog549 by selecting the All properties mode and setting the Show
Equal Sign Notation property value to true.
546 https://docs.nomagic.com/display/MDTWRT/Displaying+elements
7 https://docs.nomagic.com/download/attachments/82753878/CoffeeMachine.mdzip?
54
api=v2&modificationDate=1481207046468&version=1
548 https://docs.nomagic.com/display/MDTWRT/Smart+manipulator+toolbar
549 https://docs.nomagic.com/display/MDTWRT/Symbol+Properties+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
315
Creating reusable constraint libraries
You can add or create constraints in a Package, such as a library, and export it as a new project, so that
you can reuse the library in other projects.
The following sections present instructions on how to export a package as a new project and how to
work with shared packages:
• Exporting packages to new projects550
• Sharing project data551
Wrapping MATLAB functions
MATLAB source code contains a functions declaration. The m-file is a text file containing a list of
commands written in MATLAB or Octave syntax. You can define functions and scripts in the m-file.
You can move the mathematical expressions from MATLAB source code into the model. Use the m-file
to transfer functions to a Constraint Block(see page 548), Constraint Property(see page 550), or Call Behavior
Action552.
Creation of elements from MATLAB source code is supported in the following diagrams:
• SysML Internal Block Definition diagram(see page 520)
• SysML Block Definition diagram(see page 519)
• SysML Parametric diagram(see page 523)
• SysML Activity diagram(see page 525)
• UML Class diagram553
• UML Composite Structure diagram554
• UML Activity diagram555
550 https://docs.nomagic.com/display/MDTWRT/Exporting+packages+to+new+projects
551 https://docs.nomagic.com/display/MDTWRT/Sharing+project+data
552 https://docs.nomagic.com/display/MDTWRT/Call+Behavior+Action
553 https://docs.nomagic.com/display/MDTWRT/Class+diagram
554 https://docs.nomagic.com/display/MDTWRT/Composite+Structure+diagram
555 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
316
Wrapping the mathematical expressions from MATLAB source code
To wrap the mathematical expressions from MATLAB source code into the model, use one of the
following methods:
• Drag the m-file directly to the diagram pane to create one of the following:
• Constraint Block with its properties and parameters in the SysML Block Definition or UML
Class diagrams.
• Constraint Property and Constraint Block in the SysML Internal Block, SysML Parametric,
or UML Composite Structure diagrams. Constraint Block is automatically set as the type for
the newly created Constraint Property. The properties and parameters of the Constraint
Block are displayed on the Constraint Property shape.
• Call Behavior Action with its pins and opaque in the SysML or UML Activity diagrams.
• Drag the m-file onto the already existing element shape (empty or full) to set one of the
following:
• Constraints and parameters for Constraint Block in the SysML Block Definition or UML
Class diagrams.
• Type for Constraint Property by creating a new Constraint Block in SysML Internal Block,
SysML Parametric, or UML Composite Structure diagrams. The properties and parameters
of the newly created Constraint Block are displayed on the Constraint Property shape.
• Use the shortcut menu on the already existing element shape (empty or full). Choose Tools >
Create Expression from M-File.
• The name of the created element is the same as the name of the function in the m-file. If
the name of that element already exists, it will appear with an incremental number at
the end of the name.
• If the m-file contains multiple functions declarations, only the first function is wrapped
into the model.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
317
Setting the constraints and parameters for Constraint Block using m-file
To set constraints and parameters for a Constraint Block using m-file
1. In the Containment tree or on the diagram pane, select a Constraint Block or Constraint Property
(with set type).
2. From the shortcut menu, choose Tools > Create Expression from M-File. The Open file dialog
opens.
3. Select the m-file and click Open.
The constraints and parameters are set for Constraint Block.
Example
The following figure illustrates the function declaration in m-file. It is for least-square fitting to
find the slope (m) and the y-intercept (b) of a straight-line equation from two given input
parameters x and y. The constraint expression is: [m, b] = linefit(x, y). The constraint
parameters are x, y, m, and b. After the function transfer into the element, its type, property,
and parameter are set automatically and are displayed on the element shape.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
318
Functional analysis
Functional analysis is necessary for a user to understand in detail how a system works or should
behave. Functional analysis is a continuation of Use Case scenario refinements, using diagrams
describing the behavior of a system, e.g., SysML Activity, SysML Sequences, or SysML State Machine
diagrams. A new SysML Activity diagram should be created for every function of a Use Case allocated to
a particular block or part. Although there are two or even more Swimlane partitions, you should choose
only those functions that are nested under the partition representing the Block which captures your
system.
The following chapters describe each feature's functionality.
• Use Cases(see page 319)
• Modeling functional flows with Activities(see page 348)
• Functional Allocations(see page 352)
• State Machines(see page 360)
• Modeling interactions with Sequence Diagrams(see page 362)
Use Cases
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
319
Use Cases are a means of specifying the required usages of a system. Typically, they are used to
capture the requirements of a system, that is, what a system is supposed to do.
In the following figure you can see a fragment of the Library System. The Use Case Register Return is
associated to the Actor Librarian, which means that this Actor initiates that Use Case.
Behavior of a Use Case can be specified by an Activity, State Machine, or Sequence. It can also be
described by a textual description - a Use Case scenario that can be depicted in an Activity diagram.
A Use Case can be specified by changing its property values in the Use Case Specification window556.
Each property is described in the description area on this window.
Use Case relationships
A Use Case can be associated with an Actor to specify that the Actor initiates the associated Use Case.
A Use Case can be related to other Use Cases by
• Generalization
• Include
• Extend
Use Case shape with rake icon
The rake icon
is displayed on the shape, if the Use Case is realized by other behavior diagrams, such
as Use Case, Activity, State Machine, or Sequence. To hide the rake icon you need to set the Show Rake
Icon property value to false in the Symbol Property dialog.
Use Case Actors
An Actor can be related to the Use Case by Association.
You can see the Actors that are related to the selected Use Case in Specification window557 of that Use
Case, the Actors property group. This group displays a list of Actors that are directly (through the
Association relationship) or indirectly (through the Extend, Include, or Generalization relationships)
connected to the selected Use Case.
558
Related pages
• Model Elements559
556 https://docs.nomagic.com/display/MDTWRT/Swimlanes
557 https://docs.nomagic.com/display/MDTWRT/Specification+window
558 https://docs.nomagic.com/display/MDTWRT/Use+Case
559 https://docs.nomagic.com/display/MDTWRT/UML+elements
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
320
• Transition560
• State Machine diagram561
• Activity diagram562
• Sequence diagram563
• Use Case diagram564
565
Adding extension points
An extension point in the Use Case represents the location at which the extension can be inserted. In
the Use Case diagram, the extension point is used together with the extend relationship.
To add an extension point to the Use Case
1. Draw an extend relationship from the extending Use Case to the extended Use Case.
2. Subsequent actions depend on whether the extended Use Case has at least one extension point
already:
• If there are no extension points, a dialog appears asking for confirmation to add a new
extension point. Click Yes and type the name of the extension point.
• If there is at least one extension point, the Extension Points dialog opens, displaying the
list of extension points of that Use Case. Click Create, type the name of the new extension
point, and click Close.
You can also add extension points via the Specification window566 of the Use Case. To do this, click
Extension Point > , and then type the name of the new extension point.
567
Related pages
• Extension Point568
• Specifying a Use Case subject569
• Use Case description profile570
560 https://docs.nomagic.com/display/MDTWRT/Transition
561 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
562 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
563 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
564 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
565 https://docs.nomagic.com/display/MDTWRT/Use+Case
566 https://docs.nomagic.com/display/MDTWRT/Specification+window
567 https://docs.nomagic.com/display/MDTWRT/Extension+Point
568 https://docs.nomagic.com/display/MDTWRT/Extension+Point
569 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
570 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
321
• Use Case Scenario sketch571
572
Specifying a Use Case subject
The subject of a Use Case represents a system under consideration to which that Use Case applies. The
subject can be any element that may have a behavior, such as a Component or Class (SysML Block).
To specify the Use Case subject
1. Select the Use Case or its shape.
2. Drag it onto a Class, SysML Block, or Component shape. The Use Case becomes nested in that
shape, and the appropriate model element is set as the Use Case subject.
571 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
572 https://docs.nomagic.com/display/MDTWRT/Extension+Point
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
322
Having a Use Case with the subject specified jumpstarts the creation of Swimlanes in the Activity
diagram owned by that Use Case. In this case, you can select the subject properties you wish to be
represented by the Swimlanes on that diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
323
573
Related pages
• Extension Point574
• Specifying a Use Case subject575
• Use Case description profile576
• Use Case Scenario sketch577
578
573 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
574 https://docs.nomagic.com/display/MDTWRT/Extension+Point
575 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
576 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
577 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
578 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
324
Use Case description profile
You can extend the Use Case description with additional Use Case properties, such as Use Case ID,
Author, Date, Use Case Complexity, Pre Condition, and others.
To extend the Use Case with additional properties, you must load the Use Case Description Profile
manually; in a new project, it is not loaded by default.
To load the Use Case Description Profile
1. Open the Use Case Specification window579.
2. Click the Load Profile button. The Use Case Description Profile is loaded and additional
properties are added to the Use Case.
579 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
325
After the Use Case Description Profile is loaded, the following additional properties appear in the Use
Case Specification window580:
• The Use Case ID property in the UseCase general property group. This property is designed to
number use cases to correspond to particular sequences.
• The Use Case Description property group. In this property group, you can specify properties
describing the particular Use Case, such as an Author, Date, Goal, and other.
• The Use Case Scenarios Diagrams property group allows specifying diagrams for basic,
alternative, and exceptional Use Case scenarios.
• The Use Case Scenarios Flows property group allows specifying flows for basic, alternative, and
exceptional Use Case scenarios.
The following figure illustrates an example of the Use Case Specification window581 after the Use Case
Description Profile is loaded.
You can specify the Use Case extension properties in the Use Case Specification window582.
Descriptions of each property appear in the description area of the Specification window.
580 https://docs.nomagic.com/display/MDTWRT/Specification+window
581 https://docs.nomagic.com/display/MDTWRT/Specification+window
582 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
326
583
Related pages
• Extension Point584
• Specifying a Use Case subject585
• Use Case description profile586
• Use Case Scenario sketch587
588
Use Case scenario
On this page
589
This functionality is available in the Standard, Professional, Architect, and Enterprise editions.
Use Case Scenario Sketch is designed for creating the very first Use Case Scenario. After the scenario is
created, you may edit it directly in the Activity diagram.
With the help of the Use Case scenario editor, you can:
• Create, review, and edit steps of the Use Case scenario by using the convenient textual values
editor.
• Automatically create an Activity diagram representing the textual Use Case scenario flow. This
enables you to have the textual numbered action flow and its graphical representation.
• Create the Use Case scenario from the Activity diagram for the particular Use Case and
automatically represent this action flow as textual information in the Use Case scenario.
583 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
584 https://docs.nomagic.com/display/MDTWRT/Extension+Point
585 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
586 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
587 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
588 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
589 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
327
The Use Case Scenario Sketch creating in the Specification window.
The following figure depicts the same scenario represented in the Activity diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
328
A Use Case scenario can have defined basic(see page 329), alternative(see page 330), and exceptional(see page
331) flows.
Basic flow
A basic flow represents the sequence of basic steps or actions of the Use Case scenario. You can also
add steps from included or extended use cases to the flow. Each basic flow step can have one or more
alternative and exceptional paths. The two figures above depict the basic flow, consisting of four steps.
Letters and numbers in the brackets next to the basic flow step indicate how many alternative
conditions and exceptional types that particular step has. The letter A indicates alternatives flows; the
letter E indicates exceptional flows.
In an Activity diagram, the basic flow is the main path down from the initial node to the final node.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
329
Alternative flow
An alternative flow is an alternative path of the basic flow. You can define an alternative flow from a
particular step of the basic flow. The alternative flow is an alternative solution, performed after the
defined condition is satisfied. The alternative flow contains steps that are executed if one or more
conditions occur.
Thus, in the Use Case scenario, the alternative flow is specified by these two parameters: the alternative
condition and the alternative flow steps.
The following figure shows the content of the Alternative Flow tab of the Use Case Scenario in
the Use Case Specification window590.
Here, the alternative flow is created for the second step of the basic flow — 2. Get Loan Details.
The alternative flow has the condition named 2.1 Item is overdue. The condition contains one
alternative flow step named 2.1.1 Penalize for overdue.
In the Activity diagram, the alternative flow is created between the decision and merge nodes. The
alternative condition is represented as a decision node; the name of the alternative condition in the
Activity diagram is the name of the decision node. In the Activity diagram, the alternative flow steps are
represented as Call Behavior actions.
The alternative flow representation is shown in the activity diagram in the following figure.
In the Activity diagram, you can read the alternative flow as follows: if the item is overdue, then
penalize for overdue; if not, continue to the basic flow.
590 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
330
Exceptional flow
An exceptional flow is an exceptional path from the particular basic flow step, or it can be a quick
solution for exit. The exceptional flow contains steps that are executed if something goes wrong, such
as an input from the actor that the system cannot handle. An example of this would be if the user clicks
the Cancel button in the opened dialog.
In the Use Case scenario, the exceptional flow is specified by two parameters: the exception type and
the exceptional flow steps.
The type of the exception object indicates the nature of the exception. Any class could be assigned as a
type of the exception.
The exceptional flow steps are performed as actions when the execution occurs. The exceptional flow
steps are specified for the concrete type. Normally, there is one exceptional flow (in other words, one
exception type) assigned for one basic flow step. There can be any number of exceptional flow steps
specified for one exception type.
The following figure shows the content of the Exceptional Flow tab of the Use Case Scenario in
the Use Case Specification window.
Here, the exception flow is created for the third step of the basic flow, 3. Confirm Return. The
exceptional flow has the type named 3.1 Cancel; that is, the Cancel class is assigned as the
exception type.The type contains one exceptional flow step named 3.1.1 Close Item Dialog.
In the Activity diagram, the exceptional flow is connected using the Exception Handler relationship. The
Exception Handler has the type specified, the same as the exception type, in our sample Cancel class.
Exceptional flow steps in an activity diagram are represented as Call Behavior actions.
You can create a Use Case scenario in the Use Case Specification window using the Use Case Scenario
Sketch property group, where you can specify the basic, alternative, and exceptional flows, as well as
open the Activity diagram.
591
Related pages
• Creating a basic flow592
• Adding a basic flow step from other use cases593
591 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
592 https://docs.nomagic.com/display/MDTWRT/Creating+a+basic+flow
593 https://docs.nomagic.com/display/MDTWRT/Adding+a+basic+flow+step+from+other+use+cases
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
331
• Creating an alternative flow594
• Creating an exceptional flow595
• Representing Use Case scenarios in Activity diagrams596
• A Use Case scenario and an Activity diagram mapping schema597
• The Use Case scenario created with version 17.0.1 or earlier598
599
594 https://docs.nomagic.com/display/MDTWRT/Creating+an+alternative+flow
595 https://docs.nomagic.com/display/MDTWRT/Creating+an+exceptional+flow
596 https://docs.nomagic.com/display/MDTWRT/Representing+Use+Case+scenarios+in+Activity+diagrams
597 https://docs.nomagic.com/display/MDTWRT/
A+Use+Case+scenario+and+an+Activity+diagram+mapping+schema
598 https://docs.nomagic.com/display/MDTWRT/The+Use+Case+scenario+created+with+version+17.0.1+or+earlier
599 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
332
Creating a basic flow
To create a basic flow
1. Open the Use Case Specification window and click the Use Case Scenario Sketch property
group.
2. In the Basic Flow area, click the Add new step button
or press Alt+ENTER and type a name of
the basic flow step. Repeat this action for each basic flow step you need to create.
Steps of the basic flow are numbered automatically. Use the Up
and Down
buttons to change
the order of steps. In the activity diagram, steps are represented according to their order in the Use
Case scenario.
600
Related pages
• Model Elements601
• Transition602
• State Machine diagram603
• Activity diagram604
600 https://docs.nomagic.com/display/MDTWRT/Creating+a+basic+flow
601 https://docs.nomagic.com/display/MDTWRT/UML+elements
602 https://docs.nomagic.com/display/MDTWRT/Transition
603 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
604 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
333
• Sequence diagram605
• Use Case diagram606
607
Adding a basic flow step from other use cases
Make sure the selected Use Case has included or extending use cases.
To add a basic flow step from other use cases
1. Open the Use Case Specification window and click the Use Case Scenario Sketch property
group.
2. Select the basic flow step where you want to add steps from another Use Case.
3. Click the Add steps from other use cases button
. The shortcut menu opens.
4. Do one of the following:
• Click Add New Steps From Included Use Case or press ALT+I to add steps from the
included Use Case.
605 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
606 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
607 https://docs.nomagic.com/display/MDTWRT/Creating+a+basic+flow
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
334
• Click Add New Steps From Extending Use Case or press ALT+E to add steps from the
extending Use Case.
Depending on your choice, the Select Included Use Case or Select Extending Use Case dialog
opens.
5. In the opened dialog, select the use case(s) from which you want to add steps to the selected step
of the basic flow. Click OK after you have selected a Use Case.
• Steps from included use cases are added to the basic flow as substeps of the newly
created basic flow step.
• Steps from extending use cases with no extension points use cases are added to the
basic flow as substeps of the selected basic flow step.
• Steps from extending use cases with extension points are added as steps of an
alternative flow to the selected basic flow step. The extension point is considered the
alternative condition.
See the examples in the following figures.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
335
Steps added from included or extending use cases are read-only. You are not allowed to
modify them in the current scenario.
You can modify added steps only in use cases from which these steps are added.
Related pages
• Model Elements608
• Transition609
• State Machine diagram610
• Activity diagram611
• Sequence diagram612
• Use Case diagram613
Creating an alternative flow
To create an alternative flow
1. Open the Use Case Specification window and click the Use Case Scenario Sketch property
group.
2. Select the basic flow step you want to create an alternative flow for.
608 https://docs.nomagic.com/display/MDTWRT/UML+elements
609 https://docs.nomagic.com/display/MDTWRT/Transition
610 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
611 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
612 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
613 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
336
3. In the Alternative Flow tab, click the Add new button
. The shortcut menu opens.
4. Do one of the following:
• Select the Add New Alternative Condition command or press ALT+R to add a new
alternative condition. A new alternative condition is created together with the alternative
flow step. Type the name of the alternative condition. The alternative condition for the
basic flow is created.
• Select the Add New Alternative Flow Step command. Press ALT+ENTER to add a new
alternative flow step. If there was an alternative condition created in the alternative flow
already, a new alternative flow step is created for the selected alternative condition. If in
the alternative flow there was no alternative condition, a new alternative flow step is
created together with a new alternative condition. Now you can type the name of the new
alternative flow step.
Conditions and steps of the alternative flow are numbered automatically. Use the Up
and
Down
buttons to change the order of conditions in the alternative flow or the order of steps in
a particular condition. In the Activity diagram, steps are represented according to their order in the
Use Case scenario.
Related pages
• Model Elements614
• Transition615
• State Machine diagram616
• Activity diagram617
• Sequence diagram618
614 https://docs.nomagic.com/display/MDTWRT/UML+elements
615 https://docs.nomagic.com/display/MDTWRT/Transition
616 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
617 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
618 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
337
• Use Case diagram619
Creating an exceptional flow
To create an exceptional flow
1. Open the Use Case Specification window and click the Use Case Scenario Sketch property
group.
2. In the use case scenario, select the basic flow step you want to create an exceptional flow for.
3. In the Exceptional Flow tab, click the Add New button
. The shortcut menu opens.
4. Do one of the following:
• Select the Add New Exception Type command or press Alt+T. The drop down list opens.
Type the name of a new exception type. The exception type is created (a new class is
created). The created exception type contains an unnamed exceptional flow step.
• Select the Add New Exceptional Flow Step command or press Alt+Enter. If there was an
exceptional type created in the exceptional flow already, a new exceptional flow step is
created for the selected exception type. If there was no exception type in the alternative
flow, a new exceptional flow step is created together with a new exception type. Now you
can type the name of the new exceptional flow step.
Types and steps of the exceptional flow are numbered automatically. Use the Up
and Down
buttons to change the order of types in the exceptional flow or the order of steps in the particular type.
In the Activity diagram, steps are represented according to their order in the Use Case scenario.
620
619 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
620 https://docs.nomagic.com/display/MDTWRT/Creating+an+exceptional+flow
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
338
Related pages
• Model Elements621
• Transition622
• State Machine diagram623
• Activity diagram624
• Sequence diagram625
• Use Case diagram626
627
Representing Use Case scenarios in Activity diagrams
After you have created a Use Case scenario, you can represent this scenario in an Activity diagram. The
following procedure describes how to represent the Use Case scenario in the Activity diagram and how
to turn the automatic layout on or off in the Activity diagram when representing the Use Case scenario.
To represent a Use Case scenario in an Activity diagram
1. Open the Use Case Specification window and click the Use Case Scenario Sketch property
group.
2. Click the Open Activity Diagram button
the Use Case scenario represented on it.
. The Activity diagram opens with
You need to reopen the Activity diagram each time after you make modifications to the Use Case
scenario in the Specification window628. Modifications to the Activity diagram where the Use Case
scenario is represented automatically appear in the textual Use Case scenario.
For Use Cases having read-only accessibility, the use Case Scenario cannot be represented on
the Activity diagram.
In the Activity diagram, all symbols are laid out automatically every time the diagram is opened.
621 https://docs.nomagic.com/display/MDTWRT/UML+elements
622 https://docs.nomagic.com/display/MDTWRT/Transition
623 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
624 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
625 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
626 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
627 https://docs.nomagic.com/display/MDTWRT/Creating+an+exceptional+flow
628 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
339
To leave symbols in the same place while opening the Activity diagram after modifying the Use
Case scenario in the Specification window629, change the Layout use case scenario activity
diagram option value to false. This option appears in the Project Options dialog, in the
General project options group.
Your modeling tool might not be able to interpret the Use Case scenario in some cases. These are the
most common reasons why:
There is no merge node or call behavior action after the element.
There is no initial node in Activity.
There is no final node in Activity.
There are no outgoing control flows from the element.
There is no merge node after the element.
There are no outgoing flows from the element.
There is no alternative flow step after the element.
Cyclic scenario.
629 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
340
Use Case Scenario cannot be interpreted
Related pages
• Model Elements630
• Transition631
• State Machine diagram632
• Activity diagram633
• Sequence diagram634
• Use Case diagram635
A Use Case scenario and an Activity diagram mapping schema
630 https://docs.nomagic.com/display/MDTWRT/UML+elements
631 https://docs.nomagic.com/display/MDTWRT/Transition
632 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
633 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
634 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
635 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
341
To understand the Use Case scenario representation in the Activity diagram, see the following table.
Use Case Scenario
Mapping in Activity diagram
One (the first) Basic flow636 step
1. The Activity with the Activity diagram is
created under the owning Use Case just after
the first basic flow step is created.
2. The name of the created Activity and Activity
diagram is the same as the owning Use Case
name.
3. In the Activity diagram, the Call Behavior
Action is created for the basic flow step.
4. The Initial Node is created before the Call
Behavior Action.
5. The Final Node is created after the Call
Behavior Action.
6. The Control Flow relationships are created
from the Initial Node to the Call Behavior
Action and from the Call Behavior Action to
the Final Node.
Basic flow637 steps
1. The Call Behavior Action is created for each
basic flow step.
2. The Initial Node is created before the first
Call Behavior Action.
3. The Final Node is created after the last Call
Behavior Action.
4. The Control Flow relationships are created
from the Initial Node to the first Call Behavior
Action, between each Call Behavior Action,
and from the last Behavior Action to the Final
Node.
Example
636 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
637 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
342
Use Case Scenario
Mapping in Activity diagram
Included use case638
1. The Call Behavior Action is created for the
basic flow step of the included Use Case.
2. The Call Behavior Action is inserted to the
activity basic flow according to the order it
was inserted in the basic flow.
3. The Call Behavior Action is connected with
the Control Flow relationships. The Call
Behavior Action is not named.
4. The Call Behavior Action has the Activity
behavior defined. This Activity name
corresponds to the name of the included Use
Case.
5. The activity (the Behavior or the Call Behavior
Action) is owned by the included Use Case.
6. If the included Use Case has its own Use
Case scenario, this scenario is represented in
the activity; the Activity diagram is created
inside the Activity and flows are represented.
Example
To represent the included Use Case from the
Activity diagram to the Use Case scenario,
you must follow all the rules. Additionally,
you must connect the including Use Case
with the included Use Case with the included
relationship in your project.
Extending use case639 (with the
extension point)
1. The extending Use Case with the extension
point is added as an alternative flow; the
Decision and Merge nodes are created.
2. The Decision node name corresponds the
name of the alternative condition.
3. The Call Behavior Action is created for the
alternative flow step of the extending Use
Case. The Call Behavior Action is not named.
4. The Call Behavior Action has the Behavior
defined: the Activity whose name
corresponds to the name of the extending
Use Case.
5. The Activity (the Behavior or the Call
Behavior Action) is owned by the extending
Use Case.
6. If the extending Use Case has its own Use
Case scenario, this scenario is represented in
the Activity diagram; the Activity diagram is
created inside the Activity under the
extending Use Case.
638 https://docs.nomagic.com/display/MDTWRT/Adding+a+basic+flow+step+from+other+use+cases
639 https://docs.nomagic.com/display/MDTWRT/Adding+a+basic+flow+step+from+other+use+cases
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
343
Use Case Scenario
Mapping in Activity diagram
Example
7. The [else] Guard property is defined for the
Control Flow created from the Decision node
to the Merge node.
To represent the extending Use Case from
the Activity diagram to the Use Case
scenario, you must follow all the rules
described above. Additionally, you must
connect the extended Use Case with the
extending Use Case with the extend
relationship in your project.
Extending use case640(without any
extension point)
1. The Call Behavior Action is created for the
basic flow step of the Use Case scenario.
2. The Call Behavior Action is connected with
the Control Flow relationships according to
the extending Use Case order in the basic
flow.
3. The Call Behavior Action is not named.
4. The Call Behavior Action has the Behavior
defined - the Activity whose name
corresponds to the name of the extending
Use Case.
5. The Activity (the Behavior or the Call
Behavior Action) is owned by the extending
Use Case.
6. If the extending Use Case has its own Use
Case scenario, this scenario is represented in
the Activity; the Activity diagram is created
inside the Activity under the extending Use
Case.
To represent the extending Use Case from
the Activity diagram to the Use Case
scenario, you must follow all the rules
described above. Additionally, you must
connect the extended Use Case with the
extending Use Case with the extend
relationship in your project.
640 https://docs.nomagic.com/display/MDTWRT/Adding+a+basic+flow+step+from+other+use+cases
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
344
Use Case Scenario
Mapping in Activity diagram
Alternative flow641: alternative
condition, alternative flow step
1. The alternative flow is interrupted in the
basic flow by using the Decision and Merge
nodes.
2. The Decision and Merge nodes are created
after the Call Behavior Action. The Call
Behavior Action in the Use Case scenario
represents the basic flow step of this
alternative flow. In other words, in an Activity
diagram, the elements of the alternative flow
are created after the basic flow step this
alternative flow belongs to.
3. The Decision node name corresponds to the
name of the alternative condition.
4. The Call Behavior Action is created for each
alternative flow step.
5. All these elements are connected with the
Control Flow relationships.
6. The [else] Guard property is defined for the
Control Flow created from the Decision node
to the Merge node.
Exceptional flow642: exception
type, exceptional flow step
1. The Structured Activity Node with the Input
Pin is created.
2. The Call Behavior Action for which the
exceptional flow was created is linked with
the Input Pin using the Exception Handler
relationship.
3. The Class element is created under the
Activity. The Class corresponds to the
exception type in the Use Case scenario, that
is, the Class name corresponds to the
exception type name in the Use Case
scenario.
4. The Class is assigned to the Input Pin as a
type property.
5. In the Structured Activity Node the Call
Behavior Action is created for each
Exceptional Flow step.
6. The Call Behavior Actions inside the
Structured Activity Node are connected with
the Control Flow relationships.
7. In the Structured Activity Node the Initial
Node is created before the first Call Behavior
Action, and the Final Node is created after
the last Call Behavior Action.
Example
641 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
642 https://docs.nomagic.com/display/MDTWRT/Use+Case+Scenario+sketch
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
345
Use Case Scenario
Mapping in Activity diagram
Example
8. In the Structured Activity Node, the Initial
Node is connected with the first Call Behavior
Action by using the Control Flow relationship
and the last Call Behavior Action is connected
with the Final Node by using the Control Flow
relationship.
Related pages
• Model Elements643
• Transition644
• State Machine diagram645
• Activity diagram646
• Sequence diagram647
• Use Case diagram648
Creating Use Case scenario from Activity diagrams
Unable to render include or excerpt-include. Could not retrieve page.
The Use Case scenario created with the version 17.0.1 or earlier
Beginning with version 17.0.2 of MagicDraw or other modeling tools developed by No Magic Inc., Use
Case scenarios of projects created with earlier versions are stored in the Use Case Scenario Obsolete
property group in the Use Case Specification window649.
643 https://docs.nomagic.com/display/MDTWRT/UML+elements
644 https://docs.nomagic.com/display/MDTWRT/Transition
645 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
646 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
647 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
648 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
649 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
346
• To see the Use Case Scenario Obsolete property group, change the property display
mode to Expert.
• The Use Case Scenario Obsolete property group is displayed only if the Use Case
Description Profile650 is loaded.
Related pages
• Model Elements651
• Transition652
• State Machine diagram653
• Activity diagram654
• Sequence diagram655
650 https://docs.nomagic.com/display/MDTWRT/Use+Case+description+profile
651 https://docs.nomagic.com/display/MDTWRT/UML+elements
652 https://docs.nomagic.com/display/MDTWRT/Transition
653 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
654 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
655 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
347
• Use Case diagram656
Modeling functional flows with Activities
A new SysML Activity Diagram should be created for every function defined in use the cases of a system
you are modeling. Though there are two or even more swimlane partitions, you should choose only
those functions that are nested under the partition representing the block which captures your
system. Modeling the action flow stimulates the identification of logical subsystems of the whole
system.
Basic tasks in a SysML Activity diagram
Related pages
• SysML Activity Diagram(see page 525)
• Activity Decomposition Hierarchy Wizard(see page 348)
Activity Decomposition Hierarchy Wizard
This functionality is available in Standard, Professional, Architect, and Enterprise editions only.
The Activity Decomposition Hierarchy Wizard allows you to convert an activity into a class and SysML
Block Definition Diagram. This provides the ability to represent, analyze, and document activity
hierarchies in the structure diagrams.
Diagram generation rules include:
• Behaviors will be connected with contained object node types by compositions. The name of the
object node that corresponds to the composition will be used as the end name of the association
on the end towards the object node type.
• Pins are not included in the calculation.
• CallBehaviorActions that are not directly in the Activity, but are in the Structured Activity Nodes
contained by the Activity, for example, are also included in the calculation.
• An activity will be connected by composition association with other behaviors that are called by
CallBehaviorActions. The part end name must be the same as the name of a CallBehaviorAction
in the composing activity. If the action has no name, then the end name is as same as that of the
invoked activity.
• Hierarchical layout - Top to Bottom is used to arrange the generated diagram.
• If CallBehaviorAction calls the same activity, the composition to self will be displayed on the
generated diagram.
Recursive structure analysis will be stopped after reaching a behavior that has already been
analyzed. This requirement prevents an endless cycle.
• In such a case, the composition will be created in a previously analyzed activity in the
diagram. The new behavior symbol will not be created.
656 https://docs.nomagic.com/display/MDTWRT/Use+Case+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
348
• There will be as many compositions from one activity into another as different
CallBehaviorActions call this activity.
To create a diagram using the Activity Decomposition Hierarchy Wizard
1. Open the Activity Decomposition Hierarchy Wizard by doing one of the following:
• On the Diagrams menu, select Diagram Wizards > Activity Decomposition
Hierarchy Wizard.
• From the Analyze menu, select Model Visualizer. In the open Model Visualizer dialog,
select to open the Activity Decomposition Hierarchy Wizard and click Start.
2. Follow the steps as directed by the wizard.
What you should know when selecting structure:
• The Add contained Object Nodes check box is selected by default. Types of object nodes are
displayed and connected to the composition with activities containing object nodes.
• The Search recursively check box is selected by default. The search will be conducted in the
selected activity and those activities invoked by CallBehaviorActions that are in the selected
activity. This search is recursive. If not selected, the search will be conducted in only one level of
the selected activity.
Swimlane
Actions and subactivities can be organized into Swimlanes in the Activity diagrams. Swimlanes are used
to organize responsibility for actions and subactivities according to class. They often correspond to the
organizational units in a business model.
Swimlanes limit and provide a view of the behaviors invoked in the activities. They consist of one or
more partitions and can be vertical or horizontal.
An Activity diagram can be visually divided into Swimlanes, each separated from the neighboring
Swimlanes by vertical or horizontal solid lines on both sides. Each Swimlane represents a responsibility
for part of the overall activity, and may eventually be implemented by one or more objects. The relative
ordering of the Swimlanes has no semantic significance, but can indicate some affinity. Each action is
assigned to one Swimlane. Transitions can cross lanes. The routing of a transition path is non-essential.
You can customize Swimlane representation by changing its symbol property values. Press Alt + Enter
to open the appropriate dialog. Each property is described in the description area on this dialog.
To create a Swimlane
1. On the Activity diagram palette, click the Vertical Swimlanes button
and then click an empty
space on the diagram pane.
2. If the Represent Properties dialog opens, select the properties you want to display as
Swimlanes in the diagram (see the following figure) and click OK. Otherwise, a few empty
Swimlanes are created.
The Represent Properties dialog opens if:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
349
a. The Activity diagram is owned by a classifier, such as a Class, Component, Use
Case.
b. The classifier or its subject657 has properties.
Partitions are created for each property you select to represent as a Swimlane in the
Activity diagram.
You can also create a Swimlane by dragging one or more properties, Actors, Classes, or
Instance Specifications from the Containment tree to the Activity diagram pane. Partitions for
each element are created as well.
To set representative elements, do one of the following
• Open the Specification window of the Swimlane and click the cell of the Represents property
value. Then click
and select the element. Click OK when you are done.
• From the Containment tree, drag the representative element to the partition on the diagram.
To add an additional partition, do one of the following
• On the diagram, right-click the Swimlane, select Insert Swimlane and then Insert Vertical
Swimlane or Insert Horizontal Swimlane.
• From the Containment tree, drag one or more property, actor, class or instance specification
elements to the Swimlane on the diagram.
657 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
350
To draw multidimensional Swimlanes
1. Draw a vertical Swimlane.
2. From the Swimlane shortcut menu, select Insert Horizontal Swimlane.
3. Insert as many horizontal and vertical Swimlanes as you need.
To add model elements to a Swimlane
• If a Swimlane is already drawn in the Activity diagram, drawing an action (or any other element)
highlights the Swimlane in blue. This means the action shape depends on the Swimlane symbol.
If the model elements depend on a Swimlane symbol, they are deleted if the Swimlane
symbol is deleted.
To rearrange Swimlanes, do one of the following
• Drag any of the Swimlanes in the direction where you want it to be.
• Click the heading of any Swimlane and use the displayed control arrow to move the Swimlane
left, right, up or down.
To delete a single Swimlane entirely, do one of the following
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
351
• Click the header of the Swimlane, then press Delete.
• Click the header of the Swimlane, then press Ctrl + D.
• Right-click the header or any empty space on the Swimlane, then select Delete Swimlane.
To delete all Swimlanes and their contents
• Click any empty space on the Swimlanes, then press Ctrl + D.
To delete Swimlanes without deleting contained elements, do one of the following
• Click any empty space on the Swimlanes, then press Delete.
• Right-click the headers or anywhere on the Swimlanes, then select Delete All Swimlanes, Keep
Contents.
658
Rrelated pages
• Formatting symbols659
• Model Elements660
• Activity diagram661
662
Functional Allocations
The SysML Allocation matrix enables you to analyze, create, and modify Allocate relationships. Rows in
the matrix represent an element that can be the client element of the Allocate relationship. Columns in
the matrix represent elements that can be the supplier elements of the Allocate relationship. You can
set your own element types that you want to allocate in the criteria area or you can create a matrix
with predefined element types in the criteria area by selecting one of the SysML Allocation
Matrix mode.(see page 353)
Related pages
• SysML Allocation Matrix(see page 533)
• Allocation Mode(see page 353)
658 https://docs.nomagic.com/display/MDTWRT/Swimlanes
659 https://docs.nomagic.com/display/MDTWRT/Formatting+symbols
660 https://docs.nomagic.com/display/MDTWRT/UML+elements
661 https://docs.nomagic.com/display/MDTWRT/Activity+diagram
662 https://docs.nomagic.com/display/MDTWRT/Swimlanes
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
352
• Managing derived SysML properties and tags(see page 356)
• Using Swimlanes to allocate functions to structure(see page 357)
• Showing allocations using SysML Callout notation(see page 358)
Allocation Mode
On this page
• Changing the Allocation Mode(see page 355)
When creating a new SysML Allocation Matrix(see page 533) or new swimlane in a SysML Activity
Diagram(see page 525), you can select the kind Definition or Usage allocation mode. The definition
elements are Activity and Block(see page 545); usage elements are Action and Part Property(see page 560).
When we talk about the SysML Allocation Matrix(see page 533), the rows in the matrix represent either the
Activity or Action that are the clients of the Allocate relationship. Columns in the matrix represent either
the Block or Part Property that are the suppliers of the Allocate relationship.
Creating a SysML Allocation Matrix in the SysML projects663 for the first time, the Create SysML
Allocation Matrix dialog appears, shown in the figure below. The usage allocation matrix is created by
default when creating a new SysML Allocation Matrix in the MagicGrid project664. You can change that
by specifying the Allocation Mode option value in the Project Options dialog. How to change the
Allocation Mode >>(see page 355)
The Allocation Mode project option is global and will be applied for the SysML Allocation
matrix and SysML Activity diagram (swimlanes).
663 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingtheblankSysMLproject
664 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+SysML+projects#CreatingSysMLprojects-
CreatingMagicGridprojects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
353
The Create SysML Allocation Matrix dialog where you can select the Definition
or Usage mode.
The choice you made will be remembered and applied for the following matrices you will create in the
project. The same applies to the swimlanes.
When you create a swimlane for the first time, the Create Swimlane dialog opens. In the dialog, you
can choose one of the allocation modes and the choice will be remembered. The dialog will not be
displayed if the Allocation Mode is already chosen when creating a SysML Allocation matrix.
The Create Swimlane dialog where you can select the Definition or Usage mode.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
354
The examples of Usage and Definition modes are illustrated below. Figures are created by using
the distiller model.mdzip665 sample model that comes only with the SysML Plugin666.
The definition and usage modes in the SysML Allocation matrices.
Changing the Allocation Mode
Changing the Allocation Mode in the Project Options dialog applies the change for the SysML Allocation
matrix and swimlanes.
To change the default Allocation Mode
1. From the main menu, select Options > Project.
2. In the Project Options dialog, expand the General node and select SysML.
3. Select the Allocation Mode option value:
- Definition (Activity allocated to Block)
- Usage (Action allocated to Part)
- Ask and Remember
4. Click OK.
The default Allocation Mode is selected and will be applied each time you create a new SysML
Allocation matrix or new swimlanes in the SysML Activity diagram.
Related pages
• SysML Allocation Matrix(see page 533)
• SysML Activity Diagram(see page 525)
5 https://docs.nomagic.com/download/attachments/9919520/distiller%20model.mdzip?
66
api=v2&modificationDate=1505483436734&version=1
666 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
355
Managing derived SysML properties and tags
All derived SysML properties and tags are collected in the Allocations property group.
To add or remove an element
1. Click
on the left.
2. Select an element from the Select Elements dialog.
3. Click
4. Click OK.
to add element /
to remove element.
The corresponding relationships are created and collected in the Relations property group.
Column name
Description
Allocated From
Elements that are allocated to this element.
Allocated To
Elements the selected element is allocated to.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
356
Using Swimlanes to allocate functions to structure
With a Swimlane(see page 349), you can relate a Behavior (a function) with a structure. In other words, you
can allocate a behavior to a structure using Swimlanes in the Activity Diagram(see page 525) and analyze
whether or not all behaviors are performed by a particular system object.
Before establishing allocations, you must define the allocation mode - Definition or Usage. The
definition elements are Activity and Block667, and usage elements are Action and Part Property668.
Depending on the mode, you can convey which allocations are established considering the system
context.
To allocate behavior to structure
1. Click the Vertical Swimlanes button on the activity diagram palette and then click an empty
space on that diagram pane. The Represent Properties dialog opens.
The Represent Properties dialog opens if:
a. The Activity diagram is owned by a Block or Use Case.
b. The owning Block or the Block set as the Use Case subject669 has part properties.
Partitions are created for each property you select to represent as a Swimlane in the
Activity diagram.
667 https://docs.nomagic.com/display/SYSMLPTWRT/Block
668 https://docs.nomagic.com/display/SYSMLPTWRT/Part+Property
669 https://docs.nomagic.com/display/MDTWRT/Specifying+a+Use+Case+subject
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
357
Otherwise, you can manually define properties represented by a Swimlane.
2. In the dialog, select the properties you want to represent as Swimlanes and click OK.
3. Right-click any of the Swimlane partitions and select Allocation Mode > Usage (if not selected
yet). The allocation to usage mode is enabled in the diagram.
Usage mode
This mode allows you to convey that allocations are established considering the system
context. Otherwise, allocations are generic and not related to any system context.
4. Drag existing actions from the diagram pane or create new actions for particular swimlanes.
Showing allocations using SysML Callout notation
You can display allocations in a callout or in a compartment of an element symbol.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
358
Examples of displaying allocations.
To display element properties, constraints, and/or tagged values on a note symbol
To see compartment editing results, make sure element properties, constraints, and/or tagged
values are displayed on the note symbol.
1. Draw a note to an element whose documentation you want to display.
2. Select a note and click the Compartments button on the left.
3. In the list, click to select the following:
• Element Properties
• Constraints
• Tagged Values
Element properties, constraints, and / or tagged values are displayed on the note symbol in the
separate compartments.
You can choose which element properties, constraints, or tagged values to display on the note symbol
by editing an appropriate compartment.
To edit a compartment on a note symbol
1. Open the Compartment Edit dialog by doing one of the following:
• From the note shortcut menu, select Edit Compartments.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
359
• Select a note and click Edit Element Properties on the right.
2. Move elements between Hidden and Selected lists using the >, <, >>, or << buttons. Only items
from the selected list will be displayed in the compartment on the note’s symbol.
3. Click OK after you are done.
Allocations
To display allocations, in the Element Properties tab, select Allocated To and/or Allocated
From to display.
Related pages
• SysML Callout Style(see page 405)
• Compartments670
• SysML specific compartments(see page 195)
State Machines
Overview
A State Machine diagram is a graph that represents a State Machine. States671 and various other types
of vertices (pseudostates) in the State Machine graph are rendered by the
appropriate State672 and Pseudo States673 symbols, while T674ransitions675 are generally rendered by
directed arcs that interconnect them. The states can also contain subdiagrams by a physical
670 https://docs.nomagic.com/display/MDTWRT/Compartments
671 https://docs.nomagic.com/display/MDTWRT/State
672 https://docs.nomagic.com/display/MDTWRT/State
673 https://docs.nomagic.com/display/MDTWRT/Pseudo+States
674 https://docs.nomagic.com/display/MDTWRT/Transition
675 https://docs.nomagic.com/display/MDTWRT/Transition
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
360
containment or tiling. Note that every State Machine has a top State containing all the other elements
of the entire State Machine. The graphical rendering of this top state is optional.
State Machine. The State Machine is a specification of the sequence of states an object or an
interaction undergoes in response to events during its life, combined with its responsive actions. The
State Machine can represent the sequence of states of a particular collaboration, e.g. collection of
objects, or even the whole system, which is also considered a collaboration. The abstraction of all
possible states defined in a State Machine is similar to the way Class diagrams676 are abstracted: all
possible object types (classes677) of a particular system are described.
Purpose
A State Machine diagram (also called Statechart diagrams) represents the behavior of entities capable
of dynamic behavior by specifying their response to the receipt of event instances. Typically, State
Machine diagrams describe the behavior of Classes678, but the Statecharts can also describe the
behavior of other model entities. such as Use Cases679, Actors680, Subsystems681, Operations682, or
methods.
Usage
A State Machine diagram can be used to:
• describe how an object moves
• show the behavior of a State Machine or a related set of State Machines
• illustrate Use Case scenarios
• depict event-driven objects
Summary
State Machine diagrams are valuable because they:
• identify events an object will/will not respond to depending on the object's current state
• identify the specific responses of an object to everything that can happen to it
• discover and validate the data that is needed to define the state of the object and affected
attributes
• help to discover the internal effects of behaviors.
676 https://docs.nomagic.com/display/MDTWRT/Class+diagram
677 https://docs.nomagic.com/display/MDTWRT/Class
678 https://docs.nomagic.com/display/MDTWRT/Class
679 https://docs.nomagic.com/display/MDTWRT/Use+Case
680 https://docs.nomagic.com/display/MDTWRT/Actor
681 https://docs.nomagic.com/display/MDTWRT/Subsystem
682 https://docs.nomagic.com/display/MDTWRT/Operation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
361
Example of a State Machine diagram
683
Related pages
• Creating diagrams684
• Dragging in State Machine diagrams685
686
Modeling interactions with Sequence Diagrams
Overview
The Sequence diagram is a type of Interaction diagram that focuses on the Message687interchange
between various Lifelines688.
A Sequence diagram shows the interaction information with an emphasis on the time sequence. The
diagram has two dimensions: the vertical axis representing time and the horizontal axis representing
the participating objects. The time axis could be an actual reference point by placing the time labels as
683 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
684 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
685 https://docs.nomagic.com/display/MDTWRT/Dragging+objects
686 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
687 https://docs.nomagic.com/display/MDTWRT/Message
688 https://docs.nomagic.com/display/MDTWRT/Lifeline
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
362
text boxes. The horizontal ordering of the objects is not significant to the operation, and you can
rearrange them as necessary.
There are two Sequence Diagram modeling approaches:
• Activation bars as the lifelines.
• Activation bars as the Execution Specifications (new modeling approach).
Related pages
• Exchanging Messages(see page 364)
• Using Lifelines(see page 389)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
363
Exchanging Messages
A Message defines a particular communication between Lifelines689 of an Interaction690, such as raising
a Signal, invoking an Operation691, or creating or destroying an Instance. Messages specify the kind of
communication, the sender, and the receiver.
A Message is represented by arrows between the lifelines. The style of the Message line and arrowhead
reflect the types of the Message.
You can see the description of a selected property in the description area of the Specification
window692. To see descriptions, be sure the Show Description option is selected.
Message sorts
689 https://docs.nomagic.com/display/MDTWRT/Lifeline
690 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
691 https://docs.nomagic.com/display/MDTWRT/Operation
692 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
364
Message Sort
Description
synchCall
The Message was generated by a synchronous call to an
Operation. Synchronous Messages can overtake each other.
When a Message represents an Operation, the arguments of
the Message must correspond to the parameters of the
Operation.
asynchCall
Asynchronous means that the caller continues immediately
after the call. asynchCall Messages do not have reply
Messages.
asynchSignal
The Message was generated by an asynchronous send
Action. The argument of the Message must correspond to
the attributes of the Signal.
reply
A reply Message to an Operation call.
createMessage
The Message designates the creation of another Lifeline
object. No other Messages on a given Lifeline in an
Interaction operand may appear above a Lifeline.
deleteMessage
The Message designates the termination of another Lifeline.
Example
Message syntax
The Message name is displayed on the message path on the diagram pane. The syntax of the message
name is as follows:
<messageident> ::= [<attribute> '='] <signal or operation name> ['(' [<argument> [','
<argument>]* ')'] [':' <return value>]
<argument> ::= ([<parameter name> '='] <argument-value>) / '-'
Example
v=fo(P1="a", P2=True):12
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
365
Common actions with Messages
To set an action type for a Message
Do one of the following:
• In the Message Specification window693, click the Message Sort property value cell and select
the action type from the drop-down list.
• On the diagram pane, right-click the Message and select a desired action type from the shortcut
menu.
To show / hide Message numbers
1. Right-click the diagram pane to open its shortcut menu.
2. Then do one of the following:
• In a Sequence694or Time diagram, select / clear Show Message Numbers.
• In a Communication diagram695, select / clear Numbering > Show Message Numbers.
696
Related pages
• Assigning Operations to Messages697
• Message name parsing698
• Assigning Signals to Messages699
• Creating Signal receptions for Messages700
• Messages in Sequence and Time Diagrams701
• Messages in Communication diagrams702
• Model Elements703
• Specification Window704
• Lifelines705
• Interaction706
• Operation707
693 https://docs.nomagic.com/display/MDTWRT/Specification+window
694 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
695 https://docs.nomagic.com/display/MDTWRT/Communication+diagram
696 https://docs.nomagic.com/display/MDTWRT/Message
697 https://docs.nomagic.com/display/MDTWRT/Assigning+Operations+to+Messages
698 https://docs.nomagic.com/display/MDTWRT/Message+name+parsing
699 https://docs.nomagic.com/display/MDTWRT/Assigning+Signals+to+Messages
700 https://docs.nomagic.com/display/MDTWRT/Creating+Signal+receptions+for+Messages
701 https://docs.nomagic.com/display/MDTWRT/Messages+in+Sequence+and+Time+Diagrams
702 https://docs.nomagic.com/display/MDTWRT/Messages+in+Communication+diagrams
703 https://docs.nomagic.com/display/MDTWRT/UML+elements
704 https://docs.nomagic.com/display/MDTWRT/Specification+window
705 https://docs.nomagic.com/display/MDTWRT/Lifeline
706 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
707 https://docs.nomagic.com/display/MDTWRT/Operation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
366
708
Assigning Operations to Messages
You can assign Operations709only to Call (synchronous and asynchronous) Messages. Only one
Operation can be assigned to a Message.
To assign an Operation to a Message
• Assign an Operation to a Message in the Message Specification window710:
1. Draw a call Message between two Lifelines711or select an existing Message on a diagram
pane.
2. Open the Message Specification window.
3. Click the Signature (operation) property value cell and then select an Operation in the dropdown list.
• If the Signature (operation) drop-down list is empty, check if the Lifeline the
current Message is drawn to has a type assigned, and if this type has a specified
Operation.
• In the Signature (operation) drop-down list, both Operations and signals of your
project are listed. Make sure you have selected an Operation. If you assign a signal
to a call Message, the Message will automatically be converted to a send Message.
• Type an Operation name right on the Message on the diagram pane.
• On the diagram, right-click the Message and on the shortcut menu, click Operation. Then click to
select the Operation that you want to apply on the element, or click the Create Operation
button.
If an Operation you are assigning to a Message has default parameter values, these default parameter
values are assigned to the Message arguments. However, if the types of the Operation parameter and
the Message argument do not match, the default parameter value is assigned to the Message
argument.
Names of operation parameters are displayed in message signature by default. However, you
can change this behavior by opening the Symbol Properties dialog (right-click a Message and
select Symbol Properties) and setting the Show Attribute/Parameter Names property to
true to display them or false to hide them.
To create a new Operation for a Message
708 https://docs.nomagic.com/display/MDTWRT/Message
709 https://docs.nomagic.com/display/MDTWRT/Operation
710 https://docs.nomagic.com/display/MDTWRT/Specification+window
711 https://docs.nomagic.com/display/MDTWRT/Lifeline
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
367
You can create a new Operation only if the Lifeline the Message is drawn to has a type
assigned.
1. Draw a Call Message between two Lifelines or select an existing Message on a diagram pane.
2. Do one of the following:
• Click the Create New Operation According to This Message button (a small green circle
at the end of the Message name) and define the Operation property values in the
Operation Specification window.
• On the Message shortcut menu, click Operation and then click the Create Operation
button. Select the owner and click OK. In the Operation Specification window, define the
Operation and click Close.
• Type an Operation name right on a Message on the diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
368
712
Related pages
• Model Elements713
• Specification Window714
• Lifelines715
• Interaction716
• Operation717
• Message718
719
Assigning Signals to Messages
You can assign a Signal only to Send or Call (synchronous or asynchronous) Messages. Only one Signal
can be assigned to a Message.
If a Signal is assigned to a Call Message, the Message is automatically converted to a Send
Message.
To assign a Signal to a Message by dragging
1. Select a Signal in the Containment tree.
2. Drag the selected Signal to a desired Message.
To assign a Signal to a Message by typing Message name
• Click the Message to type the Message name on the diagram. A Signal is automatically created
with the same name as Message name.
To assign a Signal to a Message from the Message Specification window
1. Draw a Send Message between two Lifelines or select an existing one on a diagram pane.
2. Open the Message Specification window.
3. Click the Signature (signal) property value cell and then select a Signal in the drop-down list.
712 https://docs.nomagic.com/display/MDTWRT/Assigning+Operations+to+Messages
713 https://docs.nomagic.com/display/MDTWRT/UML+elements
714 https://docs.nomagic.com/display/MDTWRT/Specification+window
715 https://docs.nomagic.com/display/MDTWRT/Lifeline
716 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
717 https://docs.nomagic.com/display/MDTWRT/Operation
718 https://docs.nomagic.com/display/MDTWRT/Message
719 https://docs.nomagic.com/display/MDTWRT/Assigning+Operations+to+Messages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
369
Names of signal attributes are displayed in the message signature by default. However, you can
change this behavior by opening the Symbol Properties dialog (right-click a Message and
select Symbol Properties) and setting the Show Attribute/Parameter Names property to
true to display them or false to hide them.
720
Related pages
• Model Elements721
• Specification Window722
• Lifelines723
• Interaction724
• Operation725
• Message726
727
Creating Signal receptions for Messages
Assigning a Signal reception to a Message is very similar to the procedure of assigning an Operation to
a Message728.
These two conditions must be satisfied when creating a new Signal reception:
• At least one Signal must exist in your project.
• A possible Signal reception receiver (an activation to which the Message points) must
have a type assigned.
To create a new signal reception for the message
1. Draw a send Message between the Lifelines729 or select an existing one on a diagram pane.
2. Assign a Signal to the Message730.
3. Do one of the following:
• Click the button in the shape of a small red circle at the end of the Message name. Define
the Signal reception property values in the Signal reception Specification window731. The
default name of the Signal reception is the name of the Message for which the Signal
reception is being created.
720 https://docs.nomagic.com/display/MDTWRT/Assigning+Signals+to+Messages
721 https://docs.nomagic.com/display/MDTWRT/UML+elements
722 https://docs.nomagic.com/display/MDTWRT/Specification+window
723 https://docs.nomagic.com/display/MDTWRT/Lifeline
724 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
725 https://docs.nomagic.com/display/MDTWRT/Operation
726 https://docs.nomagic.com/display/MDTWRT/Message
727 https://docs.nomagic.com/display/MDTWRT/Assigning+Signals+to+Messages
728 https://docs.nomagic.com/display/MDTWRT/Assigning+Operations+to+Messages
729 https://docs.nomagic.com/display/MDTWRT/Lifeline
730 https://docs.nomagic.com/display/MDTWRT/Assigning+Signals+to+Messages
731 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
370
• From the Message shortcut menu, select the Create New Signal Reception
(the command with the small red circle icon, as shown above). Define Signal
reception property values in the Signal reception Specification window732. The default
name of the Signal reception is the name of the Message for which the Signal reception
is being created.
733
Related pages
732 https://docs.nomagic.com/display/MDTWRT/Specification+window
733 https://docs.nomagic.com/display/MDTWRT/Creating+Signal+receptions+for+Messages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
371
• Model Elements734
• Specification Window735
• Lifelines736
• Interaction737
• Operation738
• Message739
740
Message name parsing
Arguments, parameters, and return values specified on a Message in a Sequence diagram741 can
be parsed and new Operations 742can be created. Parsing and mapping Message names to real model
elements (operations, parameters, etc.) allows for easy transition from prototype Sequence diagrams
to complete Sequence diagrams representing actual Interactions between system parts.
Message name parsing
On a Message name area on a diagram pane, you can type the name of a new Operation together
with arguments, parameters, and return value. After you click on the button near the Message name,
the new Operation will be created, together with its specifications.
Message syntax
The whole Message name should be written according to Message syntax rules743.
Message Parsing notification message
If any Message name syntax errors are found, users are warned and given suggestions for fixing these
mistakes. The Message Parsing notification message opens, showing the concrete error(see page 0).
In the preceding example, you can see that the following appears on the Message name:
734 https://docs.nomagic.com/display/MDTWRT/UML+elements
735 https://docs.nomagic.com/display/MDTWRT/Specification+window
736 https://docs.nomagic.com/display/MDTWRT/Lifeline
737 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
738 https://docs.nomagic.com/display/MDTWRT/Operation
739 https://docs.nomagic.com/display/MDTWRT/Message
740 https://docs.nomagic.com/display/MDTWRT/Creating+Signal+receptions+for+Messages
741 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
742 https://docs.nomagic.com/display/MDTWRT/Operation
743 https://docs.nomagic.com/display/MDTWRT/Message
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
372
getUserAddress(city=”Allen”, street=”700 Central Expy S”, No=”110”). After you click the Create
New Operation (this message button
), the new getUserAddress Operation will be created. The
following Message arguments will be created - Allen, 700 Central Expy S, and 110, together with the
corresponding parameters - city, street, No.
To create a new operation from the diagram pane
1. Create a call Message (asynchCall or synchCall) between two Lifelines.
The Lifeline that the call Message is connected to must have a type specified.The
preceding figure shows that the Address type is assigned to the second Lifeline.
2. On the diagram pane, on the message, type the message name according to the syntax rules744.
3. After you have typed the Message name, exit the edit mode by clicking on the diagram pane.
4. Select the Message label again. The Create New Operation according to this message button
is displayed next to the Message name.
5. Click the Create New Operation according to this message button
. A new Operation is created
and represented in the message Specification window745, the Signature (operation) property
cell.
Note that a new Operation is created only after you click the Create New Operation
according to this message button
. If you do not click this button, the Message label
will be treated as a Message name.
If the syntax is written incorrectly, the Message Parsing window(see page 0) opens.
Parsing rules
The following table describes Message name samples and parsing results:
Purpose
Message name
typed on the
diagram pane
Action after typing on
the message label
Result
Create a new Operation
login ()
Click the Create New
Operation according to
this message button
.
The new operation is created:
login ()
1. The Operation is
referenced in the
Message Specification
window746, the
Signature (operation)
property cell.
744 https://docs.nomagic.com/display/MDTWRT/Message
745 https://docs.nomagic.com/display/MDTWRT/Specification+window
746 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
373
Purpose
Message name
typed on the
diagram pane
Action after typing on
the message label
Result
2. For the Lifeline type, the
login operation is
created.
After click on the Create New Operation according to this message button
, a new Operation is always created. A new Operation is created even if
an Operation with the
same name already exists.
Create a new Operation
with an argument
login (“John”)
Click the Create New
Operation according to
this message button
.
The new operation is created:
login (unnamed1=”John”)
1. The Operation is
referenced in the
Message Specification
window747, the
Signature (operation)
property cell.
2. In the message
Specification window >
the Arguments property
group, the following
argument is created:
John.
3. For the Lifeline type, the
login Operation is
created.
4. The login Operation’s
parameter is created and
synchronized748 with the
message argument.
747 https://docs.nomagic.com/display/MDTWRT/Specification+window
748 https://docs.nomagic.com/display/MDTWRT/Parameters+synchronization
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
374
Purpose
Message name
typed on the
diagram pane
Action after typing on
the message label
Result
Different kinds of arguments are supported. For the following arguments
the following value specifications are created:
John - Opaque Expression
12345 - Literal Integer
True - Literal Boolean
“John” - Literal String (always when quotation-marks are used).
For more information about value specification, see Assigning value
specification as property value749.
Create a new Operation
with a parameter and an
argument
Create a new Operation
with a return parameter
login
(username=”John”)
login () : true
Click the Create New
Operation according to
this message button
.
The new operation is created:
login (username=”John”)
Click the Create New
Operation according to
this message button
.
The new operation is created:
login () : true
1. The Operation is
referenced in the
Message Specification
window750, the
Signature (operation)
property cell.
2. In the Message
Specification window >
the Arguments property
group, the following
argument is created:
John.
3. For the Lifeline type, the
login operation is
created.
4. The login operation’s
parameter is created and
synchronized751 with the
Message argument.
1. The Operation is listed in
the Message
Specification window752,
the Signature
(operation) property
cell.
749 https://docs.nomagic.com/display/MDTWRT/Assigning+value+specification+as+property+value
750 https://docs.nomagic.com/display/MDTWRT/Specification+window
751 https://docs.nomagic.com/display/MDTWRT/Parameters+synchronization
752 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
375
Purpose
Message name
typed on the
diagram pane
Action after typing on
the message label
Result
2. In the Message
Specification window >
the Arguments property
group the following
argument is created: true.
3. For the classifier
assigned to the Lifeline,
the login Operation is
created, together with
the parameter.
4. The login Operation’s
parameter with the
return direction is
created. The Operation’s
parameter is
synchronized753 with the
Message argument.
Create a new Operation
for the Message together
with a reply Message
status = login ()
Click the Create New
Operation according to
this message button
.
The new operation is created:
status = login ()
1. The Operation is listed in
the message
Specification window754,
the Signature
(operation) property
cell.
2. In the Message
Specification window >
the Reply message
property cell, the replay
Message is created. (The
Replay message
property cell is displayed
in Expert mode only.)
3. The status argument is
created in the replay Message.
753 https://docs.nomagic.com/display/MDTWRT/Parameters+synchronization
754 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
376
Purpose
Message name
typed on the
diagram pane
Action after typing on
the message label
Result
Create a new argument
for the Message
Before was:
Exit the Message label
edit mode by clicking
the
diagram pane.
A new argument is created and
the Message is highlighted with
yellow color; that is, the
validation warning appears
informing you that a parameter
is missing and the Message
argument is not synchronized
with the operation parameter.
login
(username=John)
If this is valid,
the argument is
added straight
from the
Message label
for the
already-existing
Operation.
Add the
argument 1282:
login
(username=John,
1284)
To resolve the validation
warning:
1. Click the Message. The
Message smart
manipulator toolbar
displays.
2. Click the button
to
synchronize the Message
argument with the
Operation parameter.
Update the argument
Before was:
login (John)
Exit the message label
edit mode by clicking
the diagram pane.
The argument is updated.
Now change the
argument to:
login (Joseph)
Notification message about incorrect syntax
If the Message syntax is incorrect, you will receive the following notification message at the bottom
right corner of the MagicDraw window.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
377
In the first line of the Message Parsing notification message, you will see an incorrect message name. In
the example, the incorrect Message name is getUser Address(city=). Due to the incorrect Message
name, parsing cannot be executed and a new Operation cannot be created. In the second paragraph of
the Message Parsing notification message, you will see the explanation of which syntax is expected.
Next, you can see an example of the correct Message syntax.
755
Related pages
• Model Elements756
• Specification Window757
• Lifelines758
• Interaction759
• Operation760
• Message761
762
Messages in Communication diagrams
Messages in Communication diagrams763 can only be depicted on connectors; thus, you should draw
a connector before assigning a Message to it.
755 https://docs.nomagic.com/display/MDTWRT/Message+name+parsing
756 https://docs.nomagic.com/display/MDTWRT/UML+elements
757 https://docs.nomagic.com/display/MDTWRT/Specification+window
758 https://docs.nomagic.com/display/MDTWRT/Lifeline
759 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
760 https://docs.nomagic.com/display/MDTWRT/Operation
761 https://docs.nomagic.com/display/MDTWRT/Message
762 https://docs.nomagic.com/display/MDTWRT/Message+name+parsing
763 https://docs.nomagic.com/display/MDTWRT/Communication+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
378
The following steps show you how to work with messages:
Assigning a message to a connector
To assign a message to a connector
1. On the diagram palette, click the button corresponding to the desired Message type.
2. Click a desired connector on the diagram pane. A Message arrow will be placed on the selected
connector.
A Message flow has two directions: right and left. Choose one of them by clicking the
associated button on the diagram palette.
Setting/removing the advanced numbering of messages
To set/remove the advanced numbering of messages
1. From the diagram shortcut menu, select Numbering.
2. Select to set, or clear to remove the Use Advanced Numbering.
Changing current message numbering
To change current message numbering
1. From the diagram shortcut menu, select Numbering > Change Numbering.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
379
2. Increase, decrease, and / or change the level of numbering in the Change
Communication Numbering dialog.
If the Edit button is inactive, remove the automatic advanced numbering(see page 379) of
Messages.
Displaying messages
If you want to display messages on connectors in the Communication diagram you must first
implement the following conditions (see the figure below):
• Messages are assigned to connectors. How to assign a message to connector >(see page 379)
• The lifeline shapes are already displayed on the diagram pane. How to display lifelines >764
• The paths between lifelines are displayed on the diagram pane. How to display paths >765
To display messages
1. Select the connector between lifelines.
764 https://docs.nomagic.com/display/MDTWRT/Lifeline
765 https://docs.nomagic.com/display/MDTWRT/Displaying+paths
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
380
2. Perform one of the following actions:
• Right-click the connector to open the shortcut menu, and select Display > Display
Messages.
• On the diagram toolbar, click
,and select Display Messages.
3. In the opened Select Messages dialog, select the messages you want to display, and click OK.
Messages of the selected connector are displayed on the diagram pane.
766
Related pages
• Model Elements767
• Specification Window768
766 https://docs.nomagic.com/display/MDTWRT/Messages+in+Communication+diagrams
767 https://docs.nomagic.com/display/MDTWRT/UML+elements
768 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
381
• Lifelines769
• Interaction770
• Operation771
• Message772
Sample model
The model used in the figures of this page is the Communication diagram sample model that comes
with MagicDraw. To open this sample do one of the following:
• Download communication diagram.mdzip773.
• Find in modeling tool <modeling tool installation directory>\samples\diagrams\communication
diagram.mdzip.
774
Messages in Sequence and Time Diagrams
Messages allow displaying an interaction between objects. A Message is labeled with either the
message name or the assigned Operation 775(signal) name and its arguments.
Drawing Message from/to Lifeline 776to/from diagram frame
Outgoing and incoming messages communicate with the outside environment by connecting to the
border gates (the diagram frame).
769 https://docs.nomagic.com/display/MDTWRT/Lifeline
770 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
771 https://docs.nomagic.com/display/MDTWRT/Operation
772 https://docs.nomagic.com/display/MDTWRT/Message
3 https://docs.nomagic.com/download/attachments/9915051/communication%20diagram.mdzip?
77
api=v2&modificationDate=1479988632454&version=1
774 https://docs.nomagic.com/display/MDTWRT/Messages+in+Communication+diagrams
775 https://docs.nomagic.com/display/MDTWRT/Operation
776 https://docs.nomagic.com/display/MDTWRT/Lifeline
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
382
In the example above, you can see the Message card inserted that is drawn from the diagram frame
border to the Lifeline controller. The Message authorize is created from the Lifeline controller to the
diagram frame.
For a Message to be correct, its receive end should be known. However, we never know who
will connect to the gate from the outside. Thus, we are using the reply Message when creating
the Message from the Lifeline to the diagram frame (see Message authorize in the figure).
Creating nested activation
Nested activations allow you to model:
• A parallel execution of operations that belong to a single Class777.
• Callback messages.
The nested activation can be created between at least two messages that point to the same activation.
Nested activations can be created for the following messages:
1. Synchronous Call Message (synchCall)
2. Asynchronous Call Message (asynchCall)
3. Asynchronous Signal Message (asynchSignal)
To create a nested activation
Ensure that you have at least two messages pointing to the same activation in your model.
1. Select any subsequent Message.
2. Do one of the following:
• From the Message shortcut menu, select Create Nested Activation.
• On the Message smart manipulator toolbar, click the Create Nested Activation button.
The Message will be connected to the nested activation.
To merge a nested activation with a parent activation
1. Select a Message that has a nested activation.
2. Do one of the following:
• From the Message shortcut menu, select Reduce Nesting Level.
• On the Message smart manipulator toolbar, click the Reduce Nested Activation button.
The Message will be connected to the parent activation.
Nested activations can be used in the following cases:
• To model parallel executions for a non-active Lifeline(see page 384)
777 https://docs.nomagic.com/display/MDTWRT/Class
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
383
• To model parallel executions for an active Lifeline(see page 0)
• To model a callback Message(see page 385)
To model parallel executions for a non-active Lifeline
A non-active Lifeline is one that has a non-active Class as a type assigned. The non-active Class
is the one whose Is Active property is set to false. This property is available in the Expert mode.
The figure below shows the creation of a simple nested activation, described in the procedure To create
a nested activation(see page 383).
To model parallel executions for an active Lifeline
An active Lifeline is one that has an active Class as a type assigned. The active Class is the one
whose Is Active property is set to true. This property is available in the Expert mode.
1. Select a Lifeline and from its shortcut menu, select Show Entire Activation. All activations of the
selected Lifeline become all-in-one.
2. Create an outgoing Message or select an existing Message pointed to an active object. Be
sure this is not the first one for the outgoing activation.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
384
3. From the Message shortcut menu, select Create Nested Activation.
To model a callback Message
1. Create or select an incoming Message that is modeled as a callback Message.
2. From the Message shortcut menu, select Create Nested Activation.
778
Related pages
• Model Elements779
• Specification Window780
• Lifelines781
• Interaction782
• Operation783
778 https://docs.nomagic.com/display/MDTWRT/Messages+in+Sequence+and+Time+Diagrams
779 https://docs.nomagic.com/display/MDTWRT/UML+elements
780 https://docs.nomagic.com/display/MDTWRT/Specification+window
781 https://docs.nomagic.com/display/MDTWRT/Lifeline
782 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
783 https://docs.nomagic.com/display/MDTWRT/Operation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
385
• Message784
785
Activators and predecessors
The predecessor denotes the set of Messages. The completion of these Messages enables the
execution of the current Message. The predecessor means that the execution of a Message is not
enabled until all the communications with sequence numbers appearing in the list have occurred.
Therefore, the list of predecessors represents a synchronization of threads. The Message
corresponding to the numerically preceding sequence number is an implicit predecessor and does not
need to be explicitly listed.
All of the sequence numbers with the same prefix form a sequence. The numerical predecessor is the
one in which the final term is one less. That is, number 6.4 is the predecessor of 6.5, where the number
“6” is an activator (see the example in the following figure).
To show predecessors beside the Message number
784 https://docs.nomagic.com/display/MDTWRT/Message
785 https://docs.nomagic.com/display/MDTWRT/Messages+in+Sequence+and+Time+Diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
386
Make sure the Use Advanced Numbering is selected786.
• From the Message shortcut menu, select Show Predecessors.
• In the Message Symbol Properties dialog787, set Show Predecessors to true.
To change an activator number of Messages
Make sure the Use Advanced Numbering is selected788.
1. From the Message shortcut menu, select Activator.
2. Select the activator you want to assign to the selected Message. Numbering of the selected
Message and subsequent Messages decreases by one level. The first level number is the number
of an activator Message (see the following figure).
786 https://docs.nomagic.com/display/MDTWRT/Messages+in+Communication+diagrams
787 https://docs.nomagic.com/display/MDTWRT/Formatting+symbols
788 https://docs.nomagic.com/display/MDTWRT/Messages+in+Communication+diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
387
If you change the activator number to a predecessor Message, this number will change
for subsequent predecessors.
789
Related pages
• Model Elements790
• Specification Window791
• Lifelines792
• Interaction793
• Operation794
• Message795
789 https://docs.nomagic.com/display/MDTWRT/Activators+and+predecessors
790 https://docs.nomagic.com/display/MDTWRT/UML+elements
791 https://docs.nomagic.com/display/MDTWRT/Specification+window
792 https://docs.nomagic.com/display/MDTWRT/Lifeline
793 https://docs.nomagic.com/display/MDTWRT/Interaction+Use
794 https://docs.nomagic.com/display/MDTWRT/Operation
795 https://docs.nomagic.com/display/MDTWRT/Message
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
388
796
Using Lifelines
A lifeline represents an individual participant in the Interaction. The lifeline represents only one
interacting entity, symbolized by a rectangle.
The following steps show you how to work with a lifeline:
Assigning a type to a lifeline
To assign a type (classifier) to a lifeline
Do one of the following:
• In the lifeline Specification window, in the Type property value, click the ... button, and in the
open dialog, select the type. When you are finished, click OK.
• On the diagram, from the lifeline shortcut menu, select Type. In the open list, select the type.
• On the diagram, click a lifeline, and then, on the smart manipulator toolbar, click . In the open
list, select the type.
• On the diagram, click a lifeline, and then press Ctrl+T. In the open list, select the type.
• On the diagram, select a lifeline, and in the name area, type the “:” and the name of the type.
Press Enter or click anywhere on the diagram. The type is created and assigned.
Type the “:”, press Ctrl+Space, or Ctrl+Backspace. In the open list, select the type.
• In the Containment tree, select an element and drag it to the lifeline shape.
Showing/hiding a base classifier
To hide/show a base classifier
• On the diagram, right-click the lifeline. From the shortcut menu, select the Show Classifier check
box.
Displaying lifelines
You can display lifelines on the Sequence or Communication diagram in the following ways:
• By manually dragging lifeline elements from the Containment tree.
796 https://docs.nomagic.com/display/MDTWRT/Activators+and+predecessors
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
389
• By automatically using the Display Lifelines dialog.
There are two situations in which you can use the Display Lifelines dialog to automatically display
lifelines:
• When creating a new diagram(see page 390).
• When modifying a pre-existing diagram(see page 391).
To display lifelines when creating a new diagram
1. When creating a new Sequence or Communication diagram for an existing classifier, the Display
Lifelines dialog opens automatically.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
390
2. In the opened Display Lifelines dialog, select the lifelines you want to display, and click OK.
Selected lifelines are displayed on the diagram pane.
To display lifelines in a preexisting diagram
1. Select the diagram pane797.
2. Open the Display Lifelines dialog by performing one of the following steps:
• From the diagram shortcut menu, select Display > Display Lifelines.
• On the diagram toolbar798, click
and select Display Lifelines.
3. In the dialog, select the lifelines you want to display, and click OK.
Selected lifelines are displayed on the diagram pane.
799
Related pages
• Sequence diagram800
• Communication diagram801
• Creating diagrams802
• Model Elements803
797 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
798 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
799 https://docs.nomagic.com/display/MDTWRT/Lifeline
800 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
801 https://docs.nomagic.com/display/MDTWRT/Communication+diagram
802 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
803 https://docs.nomagic.com/display/MDTWRT/UML+elements
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
391
Sample model
The models used in the figures of this page is the Communication diagram and Sequence diagram
sample models that comes with MagicDraw. To open this sample do one of the following:
• Download:
- communication diagram.mdzip804.
- sequence diagram.mdzip805.
• Find in modeling tool:
- <modeling tool installation directory>\samples\diagrams\communication diagram.mdzip.
- <modeling tool installation directory>\samples\diagrams\sequence diagram.mdzip.
806
Views and Viewpoints
Using SysML View (see page 571)and Viewpoint (see page 572)elements you may create your custom
templates and publish the document in Cameo Collaborator807.
Related pages
• View(see page 571)
• Viewpoint(see page 572)
• Views and Viewpoints Diagram(see page 527)
Generating report documents
You can generate the report documents from the models. This allows you to provide a specific
information from the system model to stakeholders and domain engineers.
• Generating Word document report(see page 392)
• Exporting tables to Excel or CSV files(see page 393)
• Publishing projects to Cameo Collaborator for Alfresco(see page 395)
• Publishing projects to Cameo Collaborator for TWC(see page 395)
Generating Word document report
To create a .docx format report
1. In the Tools menu, click Report Wizard.
4 https://docs.nomagic.com/download/attachments/9915051/communication%20diagram.mdzip?
80
api=v2&modificationDate=1479988632454&version=1
5 https://docs.nomagic.com/download/attachments/9915051/sequence%20diagram.mdzip?
80
api=v2&modificationDate=1479988618002&version=1
806 https://docs.nomagic.com/display/MDTWRT/Lifeline
807 https://docs.nomagic.com/display/CC4TWCTWRT/Document+templates
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
392
2. In the Select Template area, select SysML, and choose the report type. Click Next.
3. In the Select Report Data area, you can then select a predefined report data for the selected
template (default = Built-in). Click Next.
4. In the Select Element Scope area use:
• The Add button to add an element selected in the element tree to the Selected objects
area.
• The Add All button to add all elements directly owned by the element selected in the
element tree to the Selected objects area.
• The Add Recursively button in to add all elements listed under the element selected in
the element tree to the Selected objects area.
• The Remove button in to remove the selected element from the Selected objects area.
• The Remove All button in to remove all selected elements from the Selected objects
area.
5. Click Next.
6. In the Output Options area, define the appropriate options.
7. ClickGenerate.
Your report is generated and automatically opens. See the example: coverage_analysis.docx(see
page 392).
Report customization
If you want to customize your report, use the Report Wizard808.
Exporting tables to Excel or CSV files
You can export any kind of tables to Excel or CSV format by:
• Using the Export button(see page 393)
• Using the Write To File command(see page 394)
Using the Export button
You can export the table to an *.html, *.csv, or *.xlsx file.
Before exporting a table, you can:
• Customize the template.html according to your needs.
- The style of *.html tables is specified in template.html which can be found in
<MagicDraw installation directory>\data\table.
- The file stores cascading style sheets (CSS) that define the appearance of an exported
table.
• Prepare a table by showing only particular data.
808 https://docs.nomagic.com/display/MDTWRT/MagicDraw+Report+wizard+overview
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
393
To export a table
1. On the Publish toolbar, click the Export button.
2. In the opened dialog, do the following:
a. Browse for a location to save the table.
b. Type the exported table name.
c. Select the exported table format.
3. Click Save when you are done.
The table is exported to the location you have specified.
To export table to Excel/CSV file and link it with modeling tool table
• On the table toolbar, click
, and select Excel/CSV File > Write To File. In the Save dialog,
select the location from your file system, and save the new Excel or CSV file to your computer.
The Excel or CSV file is exported, linked with the modeling tool table, and ready to be synced.
Learn how to sync data >>809
The file cannot be saved if a file with the same name and in the same location already
exists.
Learn more about basic tasks in tables >>810
Using the Write To File command
If the the file is not linked with the table, the Write To File command allows you to export a new Excel
or CSV file to your computer and create a reference automatically between the table and the exported
file. The file cannot be saved and linked with the table if a file with the same name and in the same
location already exists. Also, you can use the Export button from the table toolbar811 to export a table
without creating a reference.
To export data from a modeling tool table to an Excel/CSV file
1. On the table toolbar, click
.
2. Select the Write To File command.
The data is exported from modeling tool table to Excel/CSV file.
809 https://docs.nomagic.com/display/MDTWRT/Sync+with+Excel+or+CSV+files
810 https://docs.nomagic.com/display/MDTWRT/Basic+tasks+in+tables
811 https://docs.nomagic.com/display/MDTWRT/Table+toolbars
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
394
If the the file is linked with the table, the Write To File command export the data directly to
your Excel/CSV file.
Learn more how to sync your table with Excel or CSV files >>812
Publishing projects to Cameo Collaborator for Alfresco
Publishing project to Cameo Collaborator is the starting step of the project review workflow displayed
in the following figure.
The project can be republished each time after the author updates the model while reacting to the
reviewer's feedback813. When republishing the project, you are free to choose either creating a new
project or updating the one that is already stored on the server. After the update, the published project
includes all the comments form the previous version, unless the comments are disabled in the updated
project.
Projects can be published in one of the following ways:
• From graphical user interface814
• From command-line interface815
Publishing projects to Cameo Collaborator for TWC
Publishing models to Cameo Collaborator for Teamwork Cloud allows you to present them in a
simplified form for users who do not know modeling languages, such as UML or SysML. Publishing is
the beginning step of the model review workflow, as displayed in the following figure:
812 https://docs.nomagic.com/display/MDTWRT/Sync+with+Excel+or+CSV+files
813 https://docs.nomagic.com/display/CCTWRT/Reacting+to+reviewer%27s+feedback
814 https://docs.nomagic.com/display/CCTWRT/Publishing+from+graphical+user+interface
815 https://docs.nomagic.com/display/CCTWRT/Publishing+from+command-line+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
395
Publishing a model is the first step in the workflow for reviewing models and
providing feedback.
You can republish a model each time you update it while reacting to the reviewer's feedback816. When
republishing the model, you can either create a new document with a different name or update the one
already stored in Teamwork Cloud. The updated document includes all the comments from the
previous version, unless the comments are disabled when republishing.
To learn more, see the following topics:
• Installing Cameo Collaborator Publisher plugin817
• Publishing from graphical user interface818
• Publishing from command-line interface819
• Publishing a model for editing820
• Publishing an OSLC resource821
Cameo Collaborator Publisher
816 https://docs.nomagic.com/display/CC4TWCTWRT/Reacting+to+feedback
817 https://docs.nomagic.com/display/CC4TWCTWRT/Installing+Cameo+Collaborator+Publisher+plugin
818 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+from+graphical+user+interface
819 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+from+command-line+interface
820 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+a+model+for+editing
821 https://docs.nomagic.com/display/CC4TWCTWRT/Publishing+an+OSLC+resource
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
396
To be able to publish models to Cameo Collaborator for TWC, you must install the Cameo
Collaborator Publisher plugin822 in your modeling tool.
Working with model elements
The chapter outlines various methods of working with your model's elements. You will find detailed
instructions on creating and defining model elements, default property values, extracting, defining
hyperlinks, etc. You will also learn how the modeling tool shortcut menus, toolbar, and browser enable
you to easily edit model elements.
In the model, a model element is stored in the Model Browser and its symbol or path (for relationships)
is represented on the diagram pane, as shown below.
822 https://docs.nomagic.com/display/CC4TWCTWRT/Installing+Cameo+Collaborator+Publisher+plugin
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
397
Model elements and symbols.
You can represent several symbols or paths of the same element in the diagram.
To create elements in the Containment tree
1. In the Containment Tree, right-click the element owner where you want to create a new model
element.
2. From the shortcut menu, select Create Element.
3. A list with available elements appears. Select the element you need or start typing an element
name in the Search box to find it faster.
4. Type the name of the element.
You can also create an element directly on the diagram pane. In this case, a symbol of the element and
the element in the diagram owner is created.
To create elements on the diagram pane
1. Open the diagram or create a new diagram where you want to create a new model element.
2. From the diagram palette, select an element and drag it on the diagram pane. The element
symbol is created.
3. Click the symbol and type the element name.
Containment Tree
Please note, the new element is created in the Model Browser as well.
823
Related pages
• UML elements824
• Creating diagrams825
• Understanding the user interface826
827
823 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements
824 https://docs.nomagic.com/display/MDTWRT/UML+elements
825 https://docs.nomagic.com/display/MDTWRT/Creating+diagrams
826 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
827 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
398
Creating elements from other resources
It is possible to copy a listed text from other resources (Word, Excel, HTML, etc.) and create as many
elements as you need by pasting it. Each item of this list becomes a new element in the model. The
basic numbering and bullets are not reproduced in the model.
You can do this either:
Avoid names duplication, because elements with the same name cannot be created for the
same owner.
Creating elements in the Containment tree
To create the elements from the clipboard in the Containment tree
1. Copy a list.
2. Select the possible owner in the Containment tree828.
3. From the shortcut menu select Paste or press Ctrl+V.
4. From the Select Type dialog choose the element type.
The named elements are created in the model. As example, see the figure below where the
Actors are created in the Containment tree by pasting the list.
Steps of creating elements from clipboard in Containment tree
Creating elements on the diagram pane
There are two ways to create the elements from the clipboard on the diagram pane:
• Using Select Type dialog.(see page 400)
828 https://docs.nomagic.com/display/MDTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
399
• Using diagram palette.(see page 400)
To create the elements from the clipboard on the diagram pane using Select Type dialog
1. Copy a list.
2. Click a free space on the diagram pane.
3. Press Ctrl+V and from the Paste Special dialog select Elements.
4. From the Select Type dialog choose the element type.
The named elements are displayed on the diagram pane and are created in the model.
To create the elements from the clipboard on the diagram pane using diagram palette
1. Copy a list.
2. From the diagram palette829 select the element type.
3. Press Ctrl+V.
The named elements are displayed in the diagram pane and are created in the model.
830
Importing data from Excel and CSV files
On this page
829 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
830 https://docs.nomagic.com/display/MDTWRT/Creating+elements+from+other+resources
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
400
831
Introduction
You can import data from Excel (.xls and .xlsx) or CSV (.csv and .txt) format files to your model. You are
able to specify the import mapping options between file columns and element properties of the model.
Additionally, you can save your maps, collect them in groups, manage those groups, and use an entire
group instead of a single map for data import. Before importing data from Excel or CSV files to model,
create new or open an existing project.
You can choose the following import commands:
• Import Using New Map - to import data from Excel or CSV file by specifying new mapping
options and/or save an Import Map.
831 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
401
How to import data by using a new map >>(see page 403)
How to save a map >>832
• Import Using Existing Map - to import data from an Excel or CSV file by selecting a
previously saved map.
How to import data by using existing map >>(see page 0)
How to override an existing map >>833
• Import Using Existing Map Group - to import data from Excel or CSV file by selecting the
map group that collects as many Import Maps as you added.
How to import data by using existing map group >>(see page 0)
• Manage Map Groups - to create, delete or change the order of the map groups.
How to manage Map Groups >>834
All Excel/CSV file import commands from the File menu.
Preparing Excel or CSV file to import
To import data from Excel or CSV files, the files must met the following prerequisites:
• Heading is located in the first row.
• When creating relationships, the spreadsheet must contain the source and target columns. The
source and target columns contains the names/qualified names of elements respectively that are
the client and supplier of the relationship.
Recommended prerequisites:
• Eliminate merged cells.
• Every column has a unique column name.
• Every row has the same number and name of columns.
• Every cell has the element name or qualified element name.
832 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
833 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
834 https://docs.nomagic.com/display/MDTWRT/Managing+Map+Groups
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
402
Importing data by using a new map
To import data from an Excel or CSV file to model by using a new map
1. Create new or open an existing project.
2. Make sure:
- the auto usages of Excel Import Plugin are removed. How to >>
835
- the Excel or CSV file met the basic prerequisites. Basic Prerequisites >>836
3. In the top-left corner of the modeling tool, click the File > Import From > Excel/CSV File >
Import Using New Map. The Excel/CSV Import dialog837 opens.
4. Select the file and specify mapping options. How to >>838
You must select the file in the Select Excel/CSV file area and specify the Element Type,
Properties to Map, and Target Scope mapping option values to import data.
5. In the Mapping area, create mapping between the Excel/CSV file data and modeling
tool properties. How to >>839
6. (Optional) Click the Save Map button to save your map options as the Import Map. How to >>840
7. Click the Import button.
The data from the Excel or CSV file is imported to the model according to the specified options.
Importing data by using an existing map
To import data from Excel or CSV file to model by using an existing map
1. Create new or open an existing project.
2. Make sure:
- the auto usages of Excel Import Plugin are removed. How to >>
841
- the Excel or CSV file met the basic prerequisites. Basic Prerequisites >>842
3. In the top-left corner of the modeling tool, click the File > Import From > Excel/CSV File
> Import Using Existing Map.
4. In the Select Import Map dialog, select existing Import Map.
If you cannot see any Import Maps, you need to save it first. How to >>843
5. Click OK. The Excel/CSV Import dialog844 opens.
6. (Optional) Select the file, change mapping options. How to >>845
835 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
836 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
837 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog
838 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog#ExcelandCSVImportdialog-
SelectExcel/CSVfilearea
839 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog#ExcelandCSVImportdialog-
Mappingarea
840 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
841 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
842 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
843 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
844 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog
845 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog#ExcelandCSVImportdialog-
SelectExcel/CSVfilearea
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
403
7. (Optional) Click the Save Map button to override the selected Import Map or create a new one.
How to >>846
8. Click the Import button.
The data from the Excel or CSV file is imported to the model according to the specified options.
Importing data by using an existing map group
To import data from an Excel or CSV file to model by using an existing map group
1. Create new or open an existing project.
2. Make sure:
- the auto usages of Excel Import Plugin are removed. How to >>
847
- the Excel or CSV file met the basic prerequisites. Basic Prerequisites >>848
3. In the top-left corner of the modeling tool, click the File > Import From > Excel/CSV File
> Import Using Existing Map Group.
4. In the Select Map Group dialog, choose the map group.
If you cannot see any map group, you need to create it first. How to >>849
5. Click OK.
The data from Excel or CSV files are imported to the model according to Import Maps and their
order in the Map Group.
The import of a map group can fail because of the following reasons:
• the Excel or CSV file is missing;
• the element type does not exist in the model;
• properties do not exist in the selected element;
• the target scope does not exist in the model.
850
Related pages
• Saving an Import Map851
• Managing Map Groups852
846 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
847 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
848 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
849 https://docs.nomagic.com/display/MDTWRT/Managing+Map+Groups
850 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
851 https://docs.nomagic.com/display/MDTWRT/Saving+an+Import+Map
852 https://docs.nomagic.com/display/MDTWRT/Managing+Map+Groups
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
404
• Excel and CSV Import dialog853
• Covering use cases of Excel Import Plugin854
• Import Maps migration from CSV Import Plugin855
• Import examples856
• Sync with Excel or CSV files857
858
SysML Callout Style
SysML Callout Style is applied for tagged values by default in Compartment area of the:
• Block(see page 545)
• Requirement(see page 564)
• Part Property(see page 560)
• Action859
• Note 860
To return the non-standard style
1. Open Symbol Properties dialog.
2. Set the Apply SysML Callout Style property value to false.
To hide the element type before its name
1. Open Symbol Properties dialog.
2. Set the Show SysML Element Type property value to false.
853 https://docs.nomagic.com/display/MDTWRT/Excel+and+CSV+Import+dialog
854 https://docs.nomagic.com/display/MDTWRT/Covering+use+cases+of+Excel+Import+Plugin
855 https://docs.nomagic.com/display/MDTWRT/Import+Maps+migration+from+CSV+Import+Plugin
856 https://docs.nomagic.com/display/MDTWRT/Import+examples
857 https://docs.nomagic.com/display/MDTWRT/Sync+with+Excel+or+CSV+files
858 https://docs.nomagic.com/display/MDTWRT/Importing+data+from+Excel+or+CSV+files
859 https://docs.nomagic.com/display/MDTWRT/Action
860 https://docs.nomagic.com/display/MDTWRT/Note
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
405
Displaying Rake icon on symbol
You can use rake icon for faster navigation in the model. The rake icon on the symbol indicates that the
appropriate element has an internal structure. Double-click the element to open the internal diagram.
The rake icon is shown by default on the symbol.
To hide rake icon
1. Right-click the symbol.
2. Select Symbol Properties from shortcut menu or press Alt+Enter.
3. Set the Show Rake Icon property value to false.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
406
Managing element groups
You can create element groups to more easily manage selected (possibly heterogeneous) model
elements. For example, you can group elements associated with a particular model release, elements
that have a certain risk level, or requirements that need to be satisfied. New elements can be added to
a group and unnecessary ones removed from it any time directly from the element shortcut menu.
To create an element group
1. In the diagram pane861 or Containment tree862, right-click an element.
861 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
862 https://docs.nomagic.com/display/MDTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
407
2. Click Element Group > Create Group.
3. Name the newly created group and specify other properties.
4. Click Close when you are done. The element group is created.
To add an element to an element group
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
408
1. In the diagram pane863 or Containment tree864, right-click an element and then go to Element
Group.
2. Check the box next to the group you want to add an element to.
To delete an element from an element group
1. In the diagram pane865 or Containment tree866, right-click an element.
2. Uncheck the box next to the group you want to remove an element from.
Defining hyperlinks
On this page
867
Introduction
The hyperlink is a reference to another location that you access by clicking a highlighted text or
element. Hyperlinks ensure fast access to information directly from your model. You can create
hyperlinks in text, on elements, or on the entire diagram to link them to external or internal resources.
863 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
864 https://docs.nomagic.com/display/MDTWRT/Containment+tab
865 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
866 https://docs.nomagic.com/display/MDTWRT/Containment+tab
867 https://docs.nomagic.com/display/MDTWRT/Defining+hyperlinks
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
409
For example, a hyperlink can open a file from your file system. The following figure illustrates all
available hyperlink types.
The hyperlinks to OSLC resources are available only if the Cameo DataHub Plugin is installed.
Please see how to install the Cameo DataHub Plugin >>868
Hyperlink types in modeling tools.
Hyperlinks representation
Visual representation of hyperlinks is outlined below:
• Hyperlink in text is underlined and blue. For example,
• Hyperlink on element or diagram:
.
- In the Model Browser, the icon appears on the element. For example,
,
.
- On the diagram pane, on the symbol, the icon representing the subject to which the
hyperlink is added appears. For example:
- To a webpage:
868 https://docs.nomagic.com/display/CDHTWRT/Installation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
410
- To a file:
- To an element or diagram:
- To OSLC resources, wizards, validation, and reports:
If the element has an active navigation target then an active navigation target icon
is show on a symbol. You can choose whether to show the icon by changing a
value of the Environment Option869 Show Active Navigation Icons. By default,
this option is set to true.
Adding hyperlinks
For more information on how to add and manage hyperlinks, please see:
• Edit Hyperlink dialog870
• Address tab871
• File tab872
• Element Symbol tab873
• Hyperlinks in texts874
• Default settings of hyperlinks to model elements875
• Hyperlinks on elements876
• Managing element hyperlinks877
• Opening hyperlinks878
• Selecting referenced element in Containment tree879
869 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
870 https://docs.nomagic.com/display/MDTWRT/Edit+Hyperlink+dialog
871 https://docs.nomagic.com/display/MDTWRT/Address+tab
872 https://docs.nomagic.com/display/MDTWRT/File+tab
873 https://docs.nomagic.com/display/MDTWRT/Element+Symbol+tab
874 https://docs.nomagic.com/display/MDTWRT/Hyperlinks+in+texts
875 https://docs.nomagic.com/display/MDTWRT/Default+settings+of+hyperlinks+to+model+elements
876 https://docs.nomagic.com/display/MDTWRT/Hyperlinks+on+elements
877 https://docs.nomagic.com/display/MDTWRT/Managing+element+hyperlinks
878 https://docs.nomagic.com/display/MDTWRT/Opening+hyperlinks
879 https://docs.nomagic.com/display/MDTWRT/Selecting+referenced+element+in+Containment+tree
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
411
• Linking model elements to OSLC resources880
881
Related pages
• Manage Navigation882
• Working with model elements883
• HTML editor884
• Managing hyperlinks885
886
Creating pins automatically for Opaque Action
In the SysML Activity Diagram(see page 525), you can create an Opaque Action and define a formula. The
inputs and output should be shown as pins on that Opaque Action. You can automatically create pins.
To create Pins automatically using the Parse and Create Pin button
1. Create a new Opaque Action shape or select an existing one.
2. Type a constraint expression or a new variable for an existing expression.
3. Click the shape and from the smart manipulator toolbar, select
4. Pins are created.
.
880 https://docs.nomagic.com/display/MDTWRT/Linking+model+elements+to+OSLC+resources
881 https://docs.nomagic.com/display/MDTWRT/Defining+hyperlinks
882 https://docs.nomagic.com/display/MDTWRT/Manage+Navigation
883 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements
884 https://docs.nomagic.com/display/MDTWRT/HTML+editor
885 https://docs.nomagic.com/display/MDTWRT/Managing+hyperlinks
886 https://docs.nomagic.com/display/MDTWRT/Defining+hyperlinks
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
412
On top border of the Opaque Action, the input pins x and y are created, and on
the bottom border, the output pin is created.
Validation
On this page
• Purpose(see page 413)
• Validation suites(see page 413)
• Validating your model(see page 414)
• Invalid elements representation(see page 414)
Purpose
Validation checks the accuracy, completeness, and correctness of a model, marks invalid elements in
the model, and suggests solutions.
Validation suites
Models are validated against a set of validation rules. Each validation rule captures an imperative
condition that must be checked against the model. Validation rules are grouped into meaningful groups
called validation suites. There are predefined validation suites that you can customize. You can also
create your own rules and group them into suites. Some validation rules are active; that is, they run all
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
413
the time. Validation rules and suites can be exported into a separate project in order to reuse them.
They are stored in the Teamwork Server or Teamwork Cloud server for exchange.
• Learn more about MagicDraw predefined validation suites >>887
• Learn more about SysML validation suites >>(see page 416)
• Learn more about MagicDraw active validation suites >>888
• Learn more about SysML active validation suites >>(see page 418)
• Learn more about Requirements validation suites >>889
• Learn how to create new validation suites >>(see page 498)
• Learn how to create new validation rule >>(see page 503)
• Learn more about global validation rules >>(see page 515)
Validating your model
The validation can run on the entire model or on a selected part of it. All the elements in that scope are
checked against relevant validation rules, and elements that violate these rules are reported in the
Validation Results panel(see page 490). They are also marked in the Model Browser(see page 20), and their
symbols are highlighted. Diagrams, tables, matrices, and relation maps displaying these highlighted
symbols have the validation results marker bar.
• Learn how to start the validation >>(see page 489)
• Learn more about validation results marker bar >>(see page 489)
• Learn more about Validation Results panel >>(see page 490)
• Learn more about Validation dialog >>(see page 495)
Invalid elements representation
The invalid elements are marked as follows:
•
- error or fatal error.
•
- warning.
•
- debug or info.
Learn how to customize severity levels >>(see page 508)
You can see invalid elements in the following areas:
887 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
888 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
889 https://docs.nomagic.com/display/CRMPTWRT/Requirements+validation+suites
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
414
• In the Model Browser(see page 20) an invalid element is marked with a small symbol that depends
on the failure severity.
• On the diagram pane(see page 15) an invalid symbol is highlighted.
• In the validation results marker bar(see page 489) every marker of an invalid symbol is colored
according to the violation severity.
• On the status bar(see page 15) the failure indicator displays the severity icon, number of errors, and
the first letter of the error severity (F - fatal error; E - error; W - warning; D - debug; I - info).
Solvers of invalid elements
You can analyze invalid elements and solve problems by selecting appropriate commands from
the invalid element or symbol shortcut menu or in the Validation Results panel(see page 490).
Related pages
• SysML validation suites(see page 416)
• SysML active validation suites(see page 418)
• SysML validation rules(see page 422)
• Starting the validation(see page 489)
• Validation results marker bar(see page 489)
• Validation Results panel(see page 490)
• Validation dialog(see page 495)
• Custom validation(see page 497)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
415
SysML validation suites
On this page
• Introduction(see page 416)
• Limiting the scope of the constraints to be validated against(see page 417)
Introduction
You can validate your models against a set of SysML constraints called validation suites. You can use
the SysML validation suite that comes with the SysML Plugin to validate SysML projects. You need to
perform the validation manually to check your model against the predefined validation suites. The
predefined validation suites have «validationSuite» stereotype applied.
Each Profile contains its own validation suites. You can create your own validation suites(see
page 498).
You can meet the following SysML validation suites in the Validation dialog(see page 495) or Validation
Suites dialog(see page 500):
• SysML ValSuite - Activities contains SysML constraints on the following elements: Control
Operator, Control Value, Discrete, noBuffer, Optional, Probability and Rate.
• SysML ValSuite - Blocks contains SysML constraints on the following elements: Binding
Connector, Block, Distributed Property, Part Property, Reference Property, Shared Property,
Value Property and Value Type.
• SysML ValSuite - Constraint Blocks contains SysML constraints on the following elements:
Constraint Block and Constraint Property.
• SysML ValSuite - Model Elements contains SysML constraints on the following elements: View
and Viewpoint.
• SysML ValSuite - Non-normative Extensions contains SysML constraints on the following
elements: nonStreaming, Streaming, Design Constraint, Functional Requirement, Interface
Requirement and Performance Requirement.
• SysML ValSuite - Port and Flows contains SysML constraints on the following elements: Flow
Port, Flow Property, Flow Specification and Item Flow.
• SysML ValSuite - Requirements contains SysML constraints on the following elements: Copy,
DeriveReqt, Requirement and Test Case
You can find predefined validation suites in the Containment tree(see page 23) when the Show
Auxiliary Resources option is enabled, expand the MD Customization for SysML Package >
SysML constraints Package > SysML ValSuite Package. The SysML ValSuite Package is divided into
separate Packages and contain an appropriate validation rules(see page 422).
To show the auxiliary resources
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
416
• In the Model Browser890, click
and enable the Show Auxiliary Resources option.
Learn how to start the validation >>(see page 489)
Limiting the scope of the constraints to be validated against
If you select the SysML ValSuite as the Validation Suite in the Validation dialog(see page 495), your
model is validated against all SysML validation suites at the same time. To limit the scope of the
constraints to be validated against, select a more specific validation suite, such as SysML ValSuite Blocks. The model or its part is validated against the selected validation suite. The Validation Results
panel(see page 490) shows the results, listing all elements that do not conform to some constraints in the
selected validation suite. These elements are called “invalid” elements and are highlighted.
Customizing validation options
You can customize the Validation options in the Project Options dialog.
To open the Validation options
1. Open the Project Options dialog in one of the following ways:
• On the main menu, select Analyze > Validation > Validation Options.
• On the main menu, select Options > Project. In the Project Options891 dialog, select
General > Validation.
2. Specify the options you need in the Validation area. How to use the Project Options dialog
>>892
3. Click OK.
890 https://docs.nomagic.com/display/MDTWRT/Model+Browser
891 https://docs.nomagic.com/display/MDTWRT/Setting+project+options
892 https://docs.nomagic.com/display/MDTWRT/Setting+project+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
417
Validation options in the Project Options dialog.
Related pages
• MagicDraw predefined validation suites893
• MagicDraw active validation suites894
• SysML active validation suites895
• Requirements validation suites896
SysML active validation suites
On this page
893 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
894 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
895 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+active+validation+suites
896 https://docs.nomagic.com/display/CRMPTWRT/Requirements+validation+suites
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
418
• Introduction(see page 419)
• Validating a project with active validation suites(see page 419)
Introduction
The SysML active validation suites enable you to see if a model is correct and complete immediately. It
instantly displays any errors in the model and suggests appropriate solutions. The active validation
suites have «activeValidationSuite» stereotype applied.
Each profile contains its own active validation suites. You can create your own validation
suites(see page 498).
You can meet the following active validation suites in the Validation dialog(see page 495) or Validation
Suites dialog(see page 500):
• SysML_activeValSuite - Activities contains SysML constraints on the following elements:
Discrete and noBuffer.
• SysML_activeValSuite - Blocks contains SysML constraints on the following elements: Binding
Connector, Block, Distributed Property and Value Type.
• SysML_activeValSuite - Constraint Blocks contains SysML constraints on the following
elements: Constraint Block and Constraint Property.
• SysML_activeValSuite - Non-normative Extensions contains SysML constraints on the
following elements: nonStreaming, Streaming, Design Constraint, Functional Requirement,
Interface Requirement and Performance Requirement.
• SysML_activeValSuite - Port and Flows contains SysML constraints on the following elements:
Flow Port, Flow Property, Flow Specification and Item Flow.
• SysML_activeValSuite - Requirements contains SysML constraints on the following elements:
Copy, Requirement and Test Case.
You can find active validation suites in the Containment tree(see page 23) when the Show
Auxiliary Resources option is enabled, expand the MD Customization for SysML Package> SysML
constraints Package > SysML activeValSuite package. The SysML activeValSuite Package is divided
into separate Packages and contain an appropriate validation rules(see page 422).
To show the auxiliary resources
• In the Model Browser897, click
and enable the Show Auxiliary Resources option.
Validating a project with active validation suites
To manually validate project with active validation suites, you can select the specific Active ValSuite
(mentioned above) as the Validation Suite in the Validation dialog(see page 495). How to start the
validation >>898
897 https://docs.nomagic.com/display/MDTWRT/Model+Browser
898 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+validation+suites#SysMLvalidationsuites-
startStartingthevalidation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
419
Selecting active validation mode
Active validation automatically runs in the background according to the selected active validation mode.
To select the active validation mode
1. Do one of the following:
• On the main menu, select Analyze > Validation > Active Validation.
• On the main menu, select Options > Environment. On the left of the Environment
Options dialog, select Active Validation group. Select the Active Validation option.
2. Select one of the following modes:
• All - enables all (user defined and system) active validation suites.
• System - enables validation suites that are critical to the model. For example, all projects
have the UML Standard Profile, which has the Composition Integrity system validation
suite. This suite contains validation rules allowing for detecting shared project usage,
recovered element, or illegal reference related problems.
Info
You can check these rules under the Auxiliary Resources > UML Standard
Profile > Validation Profile > Composition Integrity.
To show the auxiliary resources
• In the Model Browser899, click
Resources option.
and enable the Show Auxiliary
3. Click OK.
Selected validation suites are active for all projects, not just the current project.
Specifying the active validation period
You can control how often, in seconds, a modeling tool will analyze the rules to be executed and how
often the modeling tool will execute these rules. After opening a project, all required validation rules
will be executed, including system or all (user and system), and next time these rules will be checked
only after the specified period.
To specify the active validation period
1. On the main menu, select Options > Environment.
2. On the left of the Environment Options dialog, select Active Validation group.
3. Select the Active Validation Period (seconds) option.
4. Type its value in seconds.
Specify a higher time period to ensure better performance of the application.
5. Click OK.
The specified period is used for all projects, not just the current project.
899 https://docs.nomagic.com/display/MDTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
420
Customizing active validation options
You can customize the Active Validation options in the Project Options dialog.
To open the Active Validation options
1. Open the Project Options dialog in one of the following ways:
• On the main menu, select Analyze > Validation > Active Validation Options.
• On the main menu, select Options > Project. In the Project Options900 dialog, select
General > Validation.
2. Specify the options you need in the Active Validation area. How to use the Project Options
dialog >>901
3. Click OK.
Active Validation options in the Project Options dialog.
Optimizing performance
900 https://docs.nomagic.com/display/MDTWRT/Setting+project+options
901 https://docs.nomagic.com/display/MDTWRT/Setting+project+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
421
• Set the Validate Only Visible Diagrams option value to true. This limits a validation
scope to visible diagrams only.
• Set the Exclude Elements from Used Read-Only Project option value to true to reduce
the number of elements to check in your model.
• Set the Exclude elements from additional content option value to true to ignore the
content of Smart packages while running the passive validation in the Validation
(Analyze > Validation > Validate) dialog.
• Smart package content (separate elements) will be validated only if Smart package is set
directly as a scope of the active validation.
• If smart package is set indirectly for the validation scope, modeling tool will automatically
exclude it from the active validation scope, because elements in the smart package are
owned by other elements.
Turning off the parameters synchronization
To turn off the parameters synchronization
1. On the main menu, select Options > Project.
2. In the Project Options dialog, select General > General.
3. Find the Synchronize Parameters and Arguments option and set its value to false.
Related pages
• MagicDraw predefined validation suites902
• MagicDraw active validation suites903
• SysML validation suites904
• Requirements validation suites905
SysML validation rules
This page contains all SysML constraints implemented in the tool as validation rules. You can find the
rules in the validation suite (SysML ValSuite(see page 416)) and active validation suite (SysML
activeValSuite(see page 418)) Packages stored under the Auxiliary Resources > MD Customization for
SysML > SysML constraints.
The SysML validation suites and active validation suites include the following validation rules:
The list below displays only few SysML validation rules. The rest are under construction.
Validation rules of Activities
This section provides the detailed descriptions of all validation rules that belongs to active and
passive Activites validation suite.
902 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
903 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
904 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+validation+suites
905 https://docs.nomagic.com/display/CRMPTWRT/Requirements+validation+suites
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
422
• Invalid parameter type of Behavior(see page 423)
• Invalid parameter type(see page 424)
• Invalid parameter type of Operation(see page 425)
• Invalid isControlType tag(see page 426)
• Missing ControlOperator stereotype(see page 427)
• No discrete with continuous Object Node(see page 428)
• No Overwrite with noBuffer of Object Node(see page 429)
• No discrete with continuous Activity Edge(see page 430)
• No discrete with continuous Parameter(see page 431)
• Invalid No Optional lower multiplicity(see page 432)
• Invalid Optional lower multiplicity(see page 433)
• Invalid Activity Edge source(see page 434)
• Missing Probability stereotype(see page 435)
• Invalid isStream tag(see page 436)
Invalid parameter type of Behavior
Abbreviation
ControlOperator[1]
Description
This validation rule checks if the behavior has the «ControlOperator» stereotype applied. If
yes, that behavior also must have at least one parameter typed by the ControlValueKind enumeration
and vice versa.
Severity
warning
Constrained Element
Behavior
Solvers
To fix this, do one of the following:
• The behavior which is not typed by the «ControlOperator» stereotype but has a parameter typed
by ControlValueKind enumeration:
• Apply the «ControlOperator» stereotype for the behavior.
• Delete parameter typed by ControlValueKind enumeration from behavior.
• If the behavior is stereotyped by «ControlOperator» which does not have the parameter typed
by ControlValueKind enumeration:
• Change the type of parameter to ControlValueKind enumeration.
• Create a new parameter typed by the ControlValueKind enumeration.
• Remove the «ControlOperator» stereotype from the behavior.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
423
The out Parameter type is ControlValueKind enumeration and its Paint Activity must be stereotyped
by «ControlOperator».
Invalid parameter type
Abbreviation
ControlOperator[1]
Description
This validation rule checks to see if the behavior or operation has the «ControlOperator» stereotype
applied. If yes, that behavior or operation must also have at least one parameter typed by the
ControlValueKind enumeration.
Severity
warning
Constrained Element
Behavior, Operation
Solvers
To fix this, do one of the following:
• Change the type to the ControlValueKind enumeration for the parameter.
• Create a new parameter typed by the ControlValueKind enumeration.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
424
Example
The getTime behavior and operation with «ControlOperator» stereotype applied have parameters that
type must be ControlValueKind enumeration.
Invalid parameter type of Operation
Abbreviation
ControlOperator[1]
Description
This validation rule checks to if the operation has the «ControlOperator» stereotype applied. If yes, that
operation also must have at least one parameter typed by the ControlValueKind enumeration.
Severity
warning
Constrained Element
Operation
Solvers
To fix this, do one of the following:
• Apply the «ControlOperator» stereotype for the operation that has a parameter typed by the
ControlValueKind enumeration.
• Delete the parameter from the Activity (behavior).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
425
• Change the type to the ControlValueKind enumeration for the parameter.
• Create a new parameter typed by the ControlValueKind enumeration.
Example
The return parameter type is ControlValueKind enumeration and its getTime Operation must be
stereotyped by «ControlOperator».
Invalid isControlType tag
Abbreviation
ControlValue[1]
Description
This validation rule checks to see if the Is Control Type property value is true for object nodes with the
type ControlValueKind.
Severity
warning
Constrained Element
Object Node
Solvers
To fix this, in the Object Node's Specification window, set the Is Control Type property value to true. To
find this property, switch the All property mode in the Specification window.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
426
The object node typed by ControlValueKind must be set as isControlType.
Missing ControlOperator stereotype
Abbreviation
ControlOperator[2]
Description
This validation rule checks to see if: 1) a behavior has the «ControlOperator» stereotype applied; 2) that
it is set as a method for an operation, which is typed by that behavior; and 3) is also stereotyped by the
«ControlOperator».
Severity
warning
Constrained Element
Behavior, Operation
Solvers
To fix this, apply the «ControlOperator» stereotype for the behavior that is set as a method of
an operation with the «ControlOperator» stereotype applied.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
427
The getTime Activity is a method of operation that is stereotyped by «ControlOperator».
No discrete with continuous Object Node
Abbreviation
Discrete[1]
Description
This validation rule checks to see if the «discrete» and «continuous» stereotypes are applied to the
same Object Node at the same time.
Severity
warning
Constrained Element
Object Node
Solvers
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
428
To fix this, leave only one «discrete» or «continuous» stereotype applied for the same Object Node at
the same time.
Example
The cold dirty Activity Parameter Node can have only one «discrete» or «continuous» stereotype applied at
the same time.
No Overwrite with noBuffer of Object Node
Abbreviation
noBuffer[1]-Overwrite[1]
Description
This validation rule checks to make sure the «nobuffer» and «overwrite» stereotypes are not applied to
the same Object Node at the same time.
Severity
warning
Constrained Element
Object Node
Solvers
To fix this, leave only one «nobuffer» or «overwrite» stereotype applied for the same Object Node at
the same time.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
429
Example
The pure Activity Parameter Node can have only one «nobuffer» or «overwrite» stereotype applied at the
same time.
No discrete with continuous Activity Edge
Abbreviation
Discrete[1]
Description
This validation rule checks to make sure that the «discrete» and «continuous» stereotypes are not
applied to the same Activity Edge at the same time.
Severity
warning
Constrained Element
Activity Edge
Solvers
To fix this, leave only one «discrete» or «continuous» stereotype applied for the Control Flow or Object
Flow.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
430
The of8 Object Flow can have only one «discrete» or «continuous» stereotype applied at the same time.
No discrete with continuous Parameter
Abbreviation
Discrete[1]
Description
This validation rule checks to make sure the «discrete» and «continuous» stereotypes are not applied to
the same Parameter at the same time.
Severity
warning
Constrained Element
Parameter
Solvers
To fix this, leave only one «discrete» or «continuous» stereotype applied for the same Parameter at the
same time.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
431
The recovered Parameter can have only one «discrete» or «continuous» stereotype applied at the same
time.
Invalid No Optional lower multiplicity
Abbreviation
Optional[1]
Description
This validation rule checks to see if the parameter's (without the «optional» stereotype applied) lower
value of multiplicity is greater than zero.
Severity
warning
Constrained Element
Parameter
Solvers
To fix this, open the Parameter's Specification window and set the Multiplicity property's lower value
to greater than zero.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
432
The recovered Parameter multiplicity must be lower be greater than zero.
Invalid Optional lower multiplicity
Abbreviation
Optional[1]
Description
This validation rule checks to see if a parameter's (stereotyped by the «optional») lower value of
multiplicity is equal to zero. This means the parameter may not have a value for the activity or any
behavior to begin or end execution.
Severity
warning
Constrained Element
Parameter
Solvers
To fix this, open the Parameter's Specification window and select the Multiplicity property's lower
value - equal to zero.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
433
The recovered Parameter multiplicity must be lower or equal to zero.
Invalid Activity Edge source
Abbreviation
Probability[1]
Description
This validation rule checks to see if the «probability» stereotype is only applied to activity edges that
have decision nodes or object nodes as sources.
Severity
warning
Constrained Element
Activity Edge, Parameter Set
Solvers
To fix this, apply the «probability» stereotype to all activity edges that have decision nodes or object
nodes as sources.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
434
The «probability» stereotype is applied to activity edges that have decision node as a source.
Missing Probability stereotype
Abbreviation
Probability[2]
Description
This validation rule checks to see if the «probability» stereotype is applied to all edges coming out of the
same source when the «probability» stereotype is applied to an activity edge.
Severity
warning
Constrained Element
Activity Edge
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
435
Solvers
To fix this, apply the «probability» stereotype to all edges coming out of the same source.
Example
Both Control Flows that come out of the same source must be stereotyped by the «probability».
Invalid isStream tag
Abbreviation
Rate[1]
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
436
Description
This validation rule checks to see if a parameter is streaming when the «rate» stereotype is applied to it.
Severity
warning
Constrained Element
Activity Edge, Object Node, Parameter
Solvers
To fix this, in the Parameter's Specification window, set the Is Stream property value to true. To find
this property, switch the All property mode in the Specification window.
Example
The output Parameter must be streaming if it is stereotyped by «rate».
Validation rules of Allocations
This section provides the detailed descriptions of all validation rules that belongs to active and
passive Allocations validation suite.
• Action Behavior is not allocated(see page 438)
• Invalid represented element of the activity partition(see page 439)
• Missing allocation dependency(see page 440)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
437
Action Behavior is not allocated
Abbreviation
ActionBehavior
Description
This rule checks to see if the action or behavior is allocated to the Allocated Activity Partition when
the swimlane's Allocation Mode is Usage.
Severity
warning
Constrained Element
Action
Solvers
Allocate Action - sets the same element in the Allocated To property value as defined in the Allocated
Activity Partition.
Example
Receive the regulator request Action is allocated to tr Part Property.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
438
Invalid represented element of the activity partition
Abbreviation
AllocateActivityPartition[B]
Description
This validation rule checks to see if the represented element of the activity partition which is
stereotyped «AllocateActivityPartition» is the property.
Severity
info
Constrained Element
Activity Partition
Solvers
To fix this, open the Allocate Activity Partition's Specification window and change the
Represents property value to a property.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
439
The represented element of the activity partition with the «AllocateActivityPartition» stereotype applied is
the Part Property typed by Space Telescope Block.
Missing allocation dependency
Abbreviation
AllocateActivityPartition [A]
Description
This rule checks to see if an Action appearing in an Allocate Activity Partition is the client (from) an end
of an Allocate relationship. Also, it checks to see if the element that represents the Allocate Activity
Partition is the supplier (to) end of the same Allocate relationship.
Severity
info
Constrained Element
Action
Solvers
To fix this, do one of the following:
• Open the Action's Specification window, click the Relations property group and create an
outgoing Allocate relationship with the element that represents the Allocate Activity Partition.
• Open the Part Property's or Block's (the element that represents the Allocate Activity Partition)
Specification window, click the Relations property group, and create an incoming Allocate
relationship with the Action.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
440
The Allocate relationship is created between Take photos Action and Part Property typed by Space
Telescope that represents the Allocate Activity Partition.
Validation rules of Blocks
This section provides the detailed descriptions of all validation rules that belongs to active and
passive Blocks validation suite.
• Invalid ends type compatibility(see page 441)
• Missing Block stereotype(see page 442)
• Invalid Connector(see page 445)
• Connector Property(see page 446)
• Invalid owner of DistributedProperty(see page 448)
• Invalid Value Property type(see page 448)
• Invalid Matching Unit and QuantityKind(see page 450)
• Missing Value Type stereotype(see page 452)
• Encapsulation of the Block(see page 453)
• Invalid Association ends name(see page 454)
• Invalid Aggregation(see page 455)
• Invalid Owner(see page 456)
• Invalid Part Property type(see page 458)
• Invalid Owner Type(see page 460)
• Invalid PropertySpecificType Name(see page 460)
• Invalid PropertySpecificType Owner(see page 461)
• Invalid typed properties size(see page 463)
• Invalid Reference Property type(see page 464)
• Invalid Shared Property type(see page 465)
Invalid ends type compatibility
Abbreviation
BindingConnector[1]
Description
This validation rule checks if the two ends of a Binding Connector must have either the same type or
types that are compatible so that equality of their values can be defined.
Severity
warning
Constrained Element
Connector
Solvers
• Convert types of Binding Connector ends to be type of <parameter name> - specifies the
same type for both ends of Binding Connector.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
441
Example
The types of Parameters o and i are the same Value Property Real.
Missing Block stereotype
Abbreviation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
442
Block[8]
Description
This validation rule checks if a classifier which specializes a Block is also have the «Block» stereotype or
one of its specializations applied.
Severity
info
Constrained Element
Class
Solvers
To fix this, do one of the following:
• Apply «Block» stereotype for an element which base classifier is stereotyped by a «Block».
• Open element's Specification window and in the Base Classifier property select any element
except a Block or leave it empty.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
443
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
444
The Block stereotype must be applied for a Wheel since its base classifier is stereotyped by a Block.
Invalid Connector
Abbreviation
InvConnector
Description
This validation rule checks if the owner of the Connector is correct or the Connector ends are specified
in the model are not changed.
Severity
error
Constrained Element
Connector, Property
Solvers
• Update Connector Ends - sets the same owner for the Binding Connector as specified for its
ends.
• Delete from Diagram - removes Binding Connector from the diagram.
• Delete from Model - removes Binding Connector from the model.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
445
The correct owner is selected for the Binding Connector.
Connector Property
Abbreviation
ConnectorProperty
Description
This validation rule checks if the Connector Property is connected with the matching Connector.
Severity
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
446
warning
Constrained Element
Connector Property
Solvers
• Synchronize - reconnects the Connector Property to matching Connector in the model.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
447
The Shower Water Delivery Connector Property is synchronized with the shawerWaterDelivery Connector.
Invalid owner of DistributedProperty
Abbreviation
DistributedProperty[1]
Description
This validation rule checks if the «DistributedProperty» stereotype (and its subtypes) is applied only to
properties of classifiers stereotyped by Block or Value Type.
Severity
warning
Constrained Element
Property
Solvers
• Apply «Block» to the owner of this property - applies the «Block» stereotype for the owner of
property stereotyped by «DistributedProperty».
• Apply «ValueType» to the owner of this property - applies the «ValueType» stereotype for the
owner of property stereotyped by «DistributedProperty».
Example
The powerSupply Part Property is stereotyped by «DistributedProperty» and must be owned by a Computer
Block but not Computer Class.
Invalid Value Property type
Abbreviation
ValueProperty[A]
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
448
Description
This validation rule checks if the type of a Value Property is a Value Type.
Severity
warning
Constrained Element
Value Property
Solvers
• Remove ValueProperty stereotype - removes the «ValueProperty» stereotype.
• Change Data Type to Value Type - applies the «ValueType» stereotype for the Data Type that is
selected as Value Property type.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
449
The i Value Property is typed by Value Type instead of Data Type.
Invalid Matching Unit and QuantityKind
Abbreviation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
450
ValueType[A]
Description
This validation rule checks if a value is present for the unit attribute, the quantity kind attribute must be
equal to the quantity kind property of the referenced unit.
Severity
info
Constrained Element
Value Type
Solvers
To fix this, make sure the quantity kind set for the Value Type matches with the quantity kind set for the
unit for the same Value Type.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
451
The pascal Unit quantity kind pressure matches with the quantity kind set for the pressure Value Type.
Missing Value Type stereotype
Abbreviation
ValueType[1]
Description
This validation rule checks if any classifier which specializes (has generalization relationship to) a Value
Type also have the «ValueType» stereotype applied.
Severity
warning
Constrained Element
DataType
Solvers
• Apply the corresponding Value Type stereotype and/or its subtype(s) to itself - applies the
«ValueType» stereotype.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
452
The Actions Data Type must be stereotyped by «valueType».
Encapsulation of the Block
Abbreviation
Block[A]
Description
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
453
This validation rule checks If isEncapsulated property value of a Block is set to true, then the Block is
treated as a black box: a Part Property typed by this black box can only be connected via its ports or
directly to its outer boundary.
Severity
warning
Constrained Element
Connector
Solvers
To fix this, connect nested part that are typed by encapsulated Block via ports or outer boundary.
Example
The Brake Block is encapsulated and nested Part Properties typed by it are connected via Proxy Ports.
Invalid Association ends name
Abbreviation
Block[3]
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
454
Description
This validation rule checks if the Property that is typed by a Block and is owned by an Association
(which kind is Aggregation or Composition) does not have a name and is not defined as a navigable end
of the Association.
Severity
warning
Constrained Element
Property
Solvers
To fix this, delete the name of the Property that s typed by a Block and is owned by an Association end
which is not navigable.
Example
The Property typed by the Regulation Loop Principle Block and is owned by Association has no name.
Invalid Aggregation
Abbreviation
ParticipantProperty[3]
Description
This validation rule checks if the Aggregation property value of a Property stereotyped by
«ParticipantProperty» is set to none.
Severity
warning
Constrained Element
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
455
Participant Property
Solvers
• Change Aggregation Kind to none - sets the Aggregation property value to none.
Example
The Aggregation property value is set to none for the suppliedByInLink Participant Property.
Invalid Owner
Abbreviation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
456
ParticipantProperty[1]
Description
This validation rule checks if only Blocks own properties with «ParticipantProperty» stereotype applied.
Severity
warning
Constrained Element
Participant Property
Solvers
To fix this, apply a «Block» stereotype for the owner of the Participant Property.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
457
The owner of the Participant Properties is an Association Block.
Invalid Part Property type
Abbreviation
PartProperty[A]
Description
This validation rule checks if the type of a Part Property is a Block.
Severity
warning
Constrained Element
Part Property
Solvers
To fix this, make sure the type of Part Property is a Block.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
458
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
459
The type of Part Property is a Block.
Invalid Owner Type
Abbreviation
PropertySpecificType [B]
Description
This validation rule checks if the property which is typed by the PropertySpecificType is owned by Block
or subtypes of Block.
Severity
info
Constrained Element
Property
Solvers
To fix this, make sure the property typed by the PropertySpecificType is owned by a Block or subtypes
of Block.
Example
The arbiter property is typed by the PropertySpecificType is owned by the StopWatchTest Block.
Invalid PropertySpecificType Name
Abbreviation
PropertySpecificType [2]
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
460
Description
This validation rule checks if a classifier stereotyped by the «PropertySpecificType» is unnamed.
Severity
info
Constrained Element
Classifier
Solvers
To fix this, delete the name of the classifier.
Example
The Block stereotyped by the «PropertySpecificType» is unnamed.
Invalid PropertySpecificType Owner
Abbreviation
PropertySpecificType [A]
Description
This validation rule checks if a classifiers with the «PropertySpecificType» («pst») stereotype are owned
by the Block which owns the property which is typed by the Property Specific Type.
Severity
info
Constrained Element
Property Specific Type
Solvers
To fix this, make sure the classifiers stereotyped by the «PropertySpecificType» («pst») is under the
same owner as the property which is typed by this classifier.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
461
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
462
The Block stereotyped by «pst» is owned by the Block which owns the arbiter Part Property which is typed
by the Property Specific Type.
Invalid typed properties size
Abbreviation
PropertySpecificType [1]
Description
This validation rule checks if a classifier to which the «PropertySpecificType» stereotype is applied is
referenced as the type of only one property.
Severity
warning
Constrained Element
Property
Solvers
To fix this, make sure that only one property exists in the model typed by the classifier with «pst»
stereotype.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
463
Only one property exists in the model typed by the Block with «pst» stereotype.
Invalid Reference Property type
Abbreviation
ReferenceProperty[A]
Description
This validation rule checks if the type of a Reference Property is a Block.
Severity
warning
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
464
Constrained Element
Reference Property
Solvers
To fix this, specify the Block as a type of the Reference Property.
Example
The cyl Reference Property is typed by the Cylinder Block.
Invalid Shared Property type
Abbreviation
SharedProperty[A]
Description
This validation rule checks if the type of a Shared Property is a Block.
Severity
warning
Constrained Element
Shared Property
Solvers
To fix this, specify the Block as a type of the Shared Property.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
465
The type of powerSupply Shared Property is a DC Power Supply Block.
Validation rules of Behavior to Structure Synchronization
This section provides the detailed descriptions of all validation rules that belong to the passive Behavior
to Structure Synchronization validation suite.
• No compatible Interface(see page 467)
• No compatible Connector(see page 468)
• No compatible Item Flow realization(see page 469)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
466
No compatible Interface
Abbreviation
BehaviorToStructureSync[1]
Description
This validation rule detects the Part Properties or containing Blocks of Part Properties having
incompatible interfaces in accordance with the flowing items specified in Activities.
Severity
warning
Constrained Element
Diagram
Solvers
• Create Port - creates a new Proxy Port typed by a compatible Interface Block.
• Choose Compatible Interface Block - changes an already existing Proxy Port type to a
compatible Interface Block.
• Add Missing Flow Property - adds a new Flow Property to an Interface Block that types a Proxy
Port.
• Reverse Direction of Port - changes the Proxy Port direction, thus changing the Flow Property
direction of an Interface Block that types a Proxy Port.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
467
Part Property : Power and the enclosing Block Wireless Earbuds after using Behavior to Structure
Synchronization solvers.
No compatible Connector
Abbreviation
BehaviorToStructureSync[2]
Description
This validation rule checks to see if the Connector exists between the two compatible Proxy Ports that
can exchange flowing items found in Activities.
Severity
warning
Constrained Element
Diagram
Solvers
Create Connector - creates a missing Connector between the two compatible Proxy Ports.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
468
Creating a Connector that is missing in the Internal Block Diagram.
No compatible Item Flow realization
Abbreviation
BehaviorToStructureSync[3]
Description
This validation rule checks if Part Properties with correctly typed Proxy Ports and Connectors in the
Internal Block Diagrams have compatible Item Flows realized on Connectors.
Severity
warning
Constrained Element
Diagram
Solvers
• Realize Missing Item Flow - creates a new compatible Item Flow or reuses an existing one and
then realizes it on the Connector.
• Open Item Flow Manager - opens the Item Flow Manager dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
469
• Change Item Flow Realization Compatibility Checking - opens the Project Options dialog to
turn on/turn off the Item Flow realization checking.
Example
Realizing a missing Item Flow on the Connector in the Internal Block Diagram.
Validation rules of Contextual Relationships
This section provides the detailed descriptions of all validation rules that belongs to active and
passive Contextual Relationships validation suite.
Relationship and its ends differ in context
Abbreviation
DifferInContext
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
470
Message
Relationship and its Ends Differ in Context
Description
The context of the relationship does not match the context the connected property is displayed in.
Severity
Error
Constrained Element
Diagram
Solvers
You can use one of the following solvers:
• Update Context of Relationship - updates the actual path of the connected property.
• Decontextualize - removes the relationship context.
• Remove from Diagram - removes the symbol from the diagram.
• Delete from Model - deletes the element from the model.
Example
Validation rules of Non-normative Extensions
This section provides the detailed descriptions of all validation rules that belongs to active and
passive Non-normative Extensions validation suite.
• AdjunctProperty(see page 472)
• BoundReference(see page 473)
• ClassifierBehavior(see page 475)
• DesignConstraint satisfied by an invalid element(see page 476)
• FunctionalRequirement satisfied by an invalid element(see page 477)
• Invalid streaming parameter(see page 478)
• InterfaceRequirement satisfied by an invalid element(see page 479)
• Missing streaming parameter(see page 480)
• No streaming with nonStreaming(see page 483)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
471
• Obsolete Quantity Kind for QUDV(see page 484)
• Obsolete Quantity Kind used in Unit for QUDV(see page 485)
• Obsolete Quantity Kind used in Value Type for QUDV(see page 485)
• Obsolete Unit for QUDV(see page 485)
• Obsolete Unit used in Value Type for QUDV(see page 486)
• PerformanceRequirement satisfied by an invalid element(see page 486)
• Testcase Verdict(see page 487)
AdjunctProperty
Abbreviation
ADJUNCT_SYNC
Description
This validation rule checks if property to which «adjunct» stereotype is applied meet the following
constraints:
• Has the same name as the principal.
• Is owned by an element that owns the principal.
• If the principal is a Connector or CallAction, the Adjunct Property have to be composite.
Severity
warning
Constrained element
Property
Solvers
• Synchronize - synchronizes the Adjunct property to match its type, multiplicity, aggregation and
NamdElement name.
• Set Principal - opens the Select Principal dialog to choose the principal for the Adjunct
Property.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
472
The Adjunct Property name is the same as principal's.
BoundReference
Abbreviation
BOUND_SYNC
Description
This rule checks if property stereotyped by the «boundReference» is the role of the connector end of at
least one binding connector, or generalized by such a property through redefinition. The roles of the
connector ends are specified in the Bound End property value. The value of boundEnd is a connector
end of a binding connector.
Severity
warning
Constrained element
Property
Solvers
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
473
• Synchronize - synchronizes the Bound Reference property by setting a role of the connector end
in the Bound End property value.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
474
The chs.rb role of the connector end is specified for the rb Bound Reference property.
ClassifierBehavior
Abbreviation
CLASSIFIER_BEHAVIOR_SYNC
Description
This validation rule checks if property to which «classifierBehavior» stereotype is applied meet the
following constraints:
• Is only applied to properties owned (not inherited) by Blocks that have classifier behaviors.
• Is composite.
• Is typed by the classifier behavior of their owning Block or a generalization of the classifier
behavior.
Severity
warning
Constrained element
Property
Solvers
To fix this error, check if Classifier Behavior Property:
• Is Typed by the Activity.
• Aggregation property value set as composite.
• Have Name.
• Is owner by Blocks that have classifier behaviors.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
475
The Aggregation property value set to composite for the Integrator1 Classifier Behavior.
DesignConstraint satisfied by an invalid element
Abbreviation
designConstraint[1]
Description
This validation rule checks if the Design Constraint is satisfied by a Block or Part Property.
Severity
warning
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
476
Constrained Element
designConstraint
Solvers
• Remove invalid Satisfy relationship(s) - Deletes not valid Satisfy relationship from the model.
Manual Solver
Reconnect existing or create new satisfy relationship from Part Property or Block to Design
Constraint.
Example
The VCCS Sensors Design Constraint is satisfied by a sensorSystem Part Property.
FunctionalRequirement satisfied by an invalid element
Abbreviation
functionalRequirement[1]
Description
This validation rule checks if the Functional Requirement is satisfied by an Operation, Action, State or
Behavior.
Severity
warning
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
477
Constrained Element
Functional Requirement
Solvers
• Remove invalid Satisfy relationship(s) - Deletes not valid Satisfy relationship from the model.
Manual Solver
Reconnect existing or create new satisfy relationship from Operation, Action, State or
Behavior to Functional Requirement.
Example
The Break Functional Requirements Functional Requirement is satisfied by a Break Activity.
Invalid streaming parameter
Abbreviation
nonStreaming[1]
Description
This validation rule checks if the Activity stereotyped by «nonStreaming» owns streaming parameters.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
478
Severity
warning
Constrained Element
Activity
Solvers
To fix this warning, in the parameters Specification window set the Is Stream property value to false.
Example
The Paint non streaming Activity owns out non streaming Parameter.
InterfaceRequirement satisfied by an invalid element
Abbreviation
interfaceRequirement[1]
Description
This rule checks if Interface Requiement is satisfied by a port, Connector, Item Flow, and/or Constraint
Property.
Severity
warning
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
479
Constrained Element
Interface Requirement
Solvers
• Remove invalid Satisfy relationship(s) - deletes not valid Satisfy relationship from the model.
Example
The Display Check Money Status Interface Requirement s satisfied by Check Money Item Flow.
Missing streaming parameter
Abbreviation
streaming[1]
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
480
Description
This validation rule checks if the Activity stereotyped by «streaming» owns at least one parameter that
is streaming.
Severity
warning
Constrained Element
Activity
Solvers
To fix this warning, do one of the following:
• If the parameter is created for the streaming Activity, in the parameters Specification window set
the Is Stream property value to true.
• If any of parameters are not created for the streaming Activity, create it.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
481
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
482
The streaming dry part Activity owns streaming in Parameter.
No streaming with nonStreaming
Abbreviation
streaming[A]-nonStreaming[A]
Description
This validation rule checks if t he Activity is not stereotyped by «s treaming » and «nons treaming » at
the same time.
Severity
warning
Constrained Element
Activity
Solvers
To fix this, keep only one «streaming » or «nonstreaming » stereotype applied for the same Activity.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
483
Only «streaming» stereotype is applied for the dry part Activity.
Obsolete Quantity Kind for QUDV
Abbreviation
QUDV[B]
Description
This rule checks if each QUDV Quantity Kind's base classifier is an Instance Specification, instead of a
DataType.
Severity
info
Constrained Element
DataType
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
484
Obsolete Quantity Kind used in Unit for QUDV
Abbreviation
QUDV[D]
Description
This rule checks if the Quantity Kind defined in the Unit is not obsolete in the context of QUDV.
Severity
info
Constrained Element
Instance Specification
Obsolete Quantity Kind used in Value Type for QUDV
Abbreviation
QUDV[E]
Description
This rule checks if the Quantity Kind defined in the Value Type is not obsolete in the context of QUDV.
Severity
info
Constrained Element
Data Type
Obsolete Unit for QUDV
Abbreviation
QUDV[A]
Description
This rule checks if each QUDV Unit's base classifier is an Instance Specification, instead of a DataType.
Severity
info
Constrained Element
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
485
DataType
Obsolete Unit used in Value Type for QUDV
Abbreviation
QUDV[C]
Description
This rule checks if the Unit defined in the ValueType is not obsolete in the context of QUDV.
Severity
info
Constrained Element
DataType
PerformanceRequirement satisfied by an invalid element
Abbreviation
performanceRequirement[1]
Description
This validation rule checks if the Performance Requirement is satisfied by a Value Property.
Severity
warning
Constrained Element
Performance Requirement
Solvers
• Remove invalid Satisfy relationship(s) - deletes not valid Satisfy relationship from the model.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
486
The Pad Thickness Performance Requirement is satisfied by thickness Value Property.
Testcase Verdict
Abbreviation
NoVerdict
Description
This rule checks if the Testcase returns a parameter typed by the VerdictKind.
Severity
warning
Constrained Element
Behavior, Operation
Solvers
Create Verdict - creates return parameter typed by the VerdictKind.
Example
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
487
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
488
Starting the validation
Validation can run on:
• The entire model, or its part (e.g. several packages).(see page 489)
• Diagram, table, matrix, or relation map(see page 489)
• Elements(see page 489)
To start the validation of the entire model or its part
1. Open the Validation dialog. How to open the Validation dialog >>906
2. Specify the following options:
- Validation Suite.
- Validate For.
- Minimal Severity.
Learn more about each of the option >>907
3. Click Validate.
The model or its part is validated against the selected validation suite.
To validate the diagram, table, matrix, or relation map
• On the toolbar of diagram, table, matrix, or map, click the Validate Diagram button
.
• Right-click the diagram, table, matrix, or map in the Containment tree908, select Validation >
Validate Diagram.
To validate the element(s)
1. Right-click the element in the Containment tree909.
2. In the shortcut menu, point to Validation and select:
• Validate Element - to validate only selected element.
• Validate Elements Recursively - to validate all child elements of the selected element.
Validation results marker bar
The validation results marker bar appears at the right side of a diagram pane, if the diagram contains
symbols of invalid elements.
906 https://docs.nomagic.com/display/MDTWRT/Validation+dialog
907 https://docs.nomagic.com/display/MDTWRT/Validation+dialog
908 https://docs.nomagic.com/display/MDTWRT/Containment+tab
909 https://docs.nomagic.com/display/MDTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
489
The markers are shown even for the items that are not currently visible on the screen (you may need to
scroll down to see them). The marker bar shrinks to fit the screen and displays relative positions of
annotated symbols on the axis of ordinates. Every marker is colored according to the violation severity.
Clicking a marker on the bar selects the appropriate symbol on the diagram pane. Moving the mouse
over the marker eye (the red square at the top-right corner of the diagram pane) opens the summary
of the diagram validation results.
Validation Results panel
On this page
• Introduction(see page 490)
• Opening the Validation Results panel(see page 491)
• Description of Validation Results panel areas(see page 492)
• Toolbar(see page 492)
• Validation results area(see page 494)
• Summary of severity area(see page 495)
Introduction
The Validation Results panel and Active Validation Results panel display the results of the validation:
invalid element, severity, explanation of the validation rule and its abbreviation. The Active Validation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
490
Results panel shows the results of active validation suites910, while the Validation Results panel shows
predefined validation suites911.
The Validation Results and Active Validation Results panels.
Opening the Validation Results panel
The Validation Results panel opens automatically after the validation has ended. How to start the
validation >>912
Since the active validation suites always check your model's correctness, you must open the Active
Validation Results panel to see the results of active validation.
To open the Active Validation Results panel
910 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
911 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
912 https://docs.nomagic.com/display/MDTWRT/Starting+the+validation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
491
• On the status bar913, click the failure indicator (e.g.
).
If you cannot see the failure indicator on the status bar, your model is correct according
to active validation suites.
Description of Validation Results panel areas
The Validation Results panel consists of the following areas:
•
• Toolbar(see page 492)
• Validation results area(see page 494)
• Summary of severity area(see page 495)
The Validation Results panel areas: toolbar, validation results, and summary of
severity areas.
Toolbar
The toolbar allows you to manage the validation results. All buttons are described in the following
table.
Button
icon
Button name
Description
Expand All
Click to expand recursively all the elements in the validation results
area.
913 https://docs.nomagic.com/display/MDTWRT/Understanding+the+user+interface
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
492
Button
icon
Button name
Description
Collapse All
Click to collapse recursively all the elements in the validation results
area.
Navigate to Validated
Object (Alt+B)
Click the button to select the element in the Containment tree914.
Click the arrow next to the button to open the menu of the following
navigation commands:
•
Open Specification - opens Specification window915
of the selected element in the validation results area.
•
Go To - opens a submenu whose commands allow
you to track and navigate to the elements.
•
Select Rule in The Containment Tree - selects the
failed validation rule in the Containment tree916 of the
selected element in the validation results area.
•
Add to Search Results - selects an element in the
Search Results tree917.
Solve
Click to open the list of available commands to solve a selected
element violation in the validation results area.
Ignore
Click to ignore a selected element violation in the validation results
area. In server projects, you can select whether to ignore the
violation for you as a project user or for all users who works on that
server project.
The button is available when you select an unignored element in the
validation results area.
Click the arrow next to the button to open the menu of the following
commands:
• Ignore Validation Rule - ignores the validation rule of a
selected element in the validation results area.
• Ignore Validation Suite - ignores the validation suite of a
selected element in the validation results area.
Unignore
Click to make a selected element in the validation results area
violation unignored.
The button is available when you select an ignored element in the
validation results area.
914 https://docs.nomagic.com/display/MDTWRT/Containment+tab
915 https://docs.nomagic.com/display/MDTWRT/Specification+window
916 https://docs.nomagic.com/display/MDTWRT/Containment+tab
917 https://docs.nomagic.com/display/MDTWRT/Search+Results+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
493
Button
icon
Button name
Description
Display the full path of the
elements
Click to show the full path of all elements in the validation results
area.
Run validation with
current settings
Click to run the validation with current settings.
Run validation with new
settings
Click to open the Validation dialog918 and run the validation with
new settings.
Export
Click to export the list of validation results either to .html or .csv file.
Validation results area
The validation results area provides a list of violated elements. This area contains the following
columns:
• Element - elements that violate the validation rule.
• Severity - severity level of the validation rule.
• Abbreviation - a short word, phase, or acronym of the validation rule used for sorting/filtering.
• Message - description of the invalid situation when a validation rule fails.
• Is Ignored - indicator of whether the violation is ignored or not.
You can use the validation results area to:
• Manage validation results(see page 494)
• Sort validation results(see page 495)
• Filter validation results(see page 495)
To manage validation results
• Right-click the element in the validation results area and select one of the following commands
from the shortcut menu:
• Solver name
• Ignore
• Navigate to Validated Object
• Open Specification
• Go To
• Select Rule in The Containment Tree
918 https://docs.nomagic.com/display/MDTWRT/Validation+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
494
All those commands are described in the table above(see page 492).
To sort the validation results
• Click the header of the column you want to sort the validation results. A small arrow appears on
the column header:
•
- ascending sorting.
•
- descending sorting.
To filter the validation results
1. Point to the header of a column whose value you want to select for filtering the validation results.
2. Click
at the right of the column header and select a value from the drop-down list.
Summary of severity area
The summary of the severity area displays the number and severity of violated elements in expanded
packages. If you collapse the package in the validation results area, the number of violated elements
are excluded from the count.
Validation dialog
On this page
• Introduction(see page 496)
• Opening the Validation dialog(see page 496)
• Description of Validation dialog options(see page 497)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
495
Introduction
The Validation dialog allows you to limit the scope of the constraints to validate against your model.
Since the active validation suites919 check your model all the time, the validation according predefined
validation suites920must be started by using this dialog. If you select the All Validation Suite as the
Validation Suite in the Validation dialog, your model is validated against all predefined921 and active
validation suites922 at the same time. To limit the scope of the constraints to be validated against, select
a more specific validation suite, such as Numbering Validation. The model or its part will be validated
against the selected validation suite only. The Validation Results panel923 shows the results, listing all
elements that do not conform to some constraints (invalid elements) in the selected validation suite.
The Validation dialog. Its options (1,2,3,4,5) are described below.
Opening the Validation dialog
To open the Validation dialog
1. Do one of the following:
- On the main menu, select Analyze > Validation > Validate.
- On the Validation toolbar, click
.
2. In the Validation dialog, specify the options. Descriptions of options >>(see page 497)
919 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
920 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
921 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
922 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
923 https://docs.nomagic.com/display/MDTWRT/Validation+Results+panel
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
496
3. Click Validate.
The model or its part is validated against the selected validation suite. The results are shown in
the Validation Results panel924.
You can run the validation for the entire diagram, table, matrix, relation map, or elements.
Learn how to start the validation >>925
Description of Validation dialog options
The Validation dialog consists of the following:
• The Validation Suite drop-down list (#1 in the image above) allows you to select a validation
suite that you want to validate the model or its part against.
The list of available validation suites depends on the open project; the validation suites
and validation rules are stored in the model as regular model elements.
• The Validate For drop-down list (#2 in the image above) allows you to choose:
• Whole Project to run validation on the entire model.
• Validation Selection to run validation on special packages and/or elements. Then click
the ... button and select the scope for validation.
Validation is always recursive. If you select a package for validation, you do not
need to select its inner elements.
• The Minimal Severity drop-down list (#3 in the image above) allows you to select the minimal
severity level: debug, info, warning, error, fatal. Debug is the lowest possible severity level.
• Clear the Exclude elements from projects used in read-only mode check box (#4 in the image
above) if you want to run validation on the elements stored in the read-only project usages.
• Clear the Exclude elements from additional content check box (#5 in the image above) if you
want to include the content of Smart Packages while running the passive validation.
• The Validation Suites button (#6 in the image above) opens the Validation Suites dialog926.
Custom validation
You can extend existing validation suites that come with Profile927by customizing existing or creating
your own validation suites and rules.
Find an appropriate topic:
• Creating validation suites(see page 498)
• Validation Suites dialog(see page 500)
Creating
new validation rules(see page 503)
•
Creating
new Constraint element(see page 504)
•
Specifying
Constraint Element property(see page 506)
•
Applying
«invariant»
and «validationRule» stereotype(see page 506)
•
924 https://docs.nomagic.com/display/MDTWRT/Validation+Results+panel
925 https://docs.nomagic.com/display/MDTWRT/Starting+the+validation
926 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
927 https://docs.nomagic.com/display/MDTWRT/Profile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
497
• Specifying the validation rule properties(see page 507)
• Customizing severity levels(see page 508)
• Defining Constraint condition(see page 513)
• Global validation rules(see page 515)
Creating validation suites
The validation suite defines the set of validation rules applied when running the validation. The
purpose of the validation suites is to group validation rules (constraints) without duplicating them.
When creating a new validation suite you must choose the active or inactive validation suite you want
to create, depending on the applied stereotype:
• «validationSuite» is dedicated for inactive validation rules. Learn more about predefined
validation suites >>928
• «activeValidationSuite» is dedicated for active validation rules. Learn more about active validation
suites >>929
You can:
• Create your own validation suites.(see page 498)
• Clone existing validation suites.(see page 499)
• Include/exclude the validation rules to/from validation suites.(see page 499)
Sharing
You can share validation suites by exporting validation suites Package930 and then use it in
another project.931
To create a new validation suite
1. Open the Validation Suites dialog. How to open the Validation Suites dialog >>932
2. Do the one of the following:
- In the toolbar933, click
and select Validation Suite or Active Validation Suite command.
- Right-click the Validation Suites area934 and select Create Validation Suite or Create Active
Validation Suite command.
3. In the Select Owner dialog, choose the owner for the new validation suite Package, and click OK.
4. In the Rename dialog, type the name of the new validation suite Package, and click OK.
An empty validation suite Package is created and is located in your model. You can include
validation rules from other validation suites. How to include validation rules >>(see page 499)
928 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
929 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
930 https://docs.nomagic.com/display/MDTWRT/Exporting+packages+to+new+projects
931 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
932 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog#ValidationSuitesdialog-
OpeningtheValidationSuitesdialog
933 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
934 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
498
Alternative
An alternative way is to create a new or select existing Package element and apply one of
the following stereotypes:
- «validationSuite»
- «activeValidationSuite»
How to apply a stereotype >>935
To clone existing validation suites
1. Open the Validation Suites dialog. How to open the Validation Suites dialog >>936
2. In the Validation Suites area937, select the validation suite Package you want to modify.
3. Do the one of the following:
- In the toolbar938, click
.
- Right-click it and select Clone Validation Suite command.
4. In the Select Owner dialog, choose the owner for the cloned validation suite Package, and click
OK.
5. In the Rename dialog, type the name of the cloned validation suite Package, and click OK.
The clone of the existing validation suite Package is created and contains the same validation
rules as the original. You can include or exclude validation rules from the cloned validation suites
Package. How to include/exclude validation rules >>(see page 499)
To include/exclude the validation rules to/from a validation suite Package
1. Open the Validation Suites dialog. How to open the Validation Suites dialog >>939
2. In the Validation Suites area940, select the newly created or cloned validation suite Package.
You cannot include/exclude the validation rules to/from read-only validation suites.
3. In the Validation Rules area941, select/clear the check boxes for the entire Package or an
appropriate validation rule to include/exclude validation rules to/from the new validation suites
Package.
The validation suites Package contains only selected validation rules.
Additional information
935 https://docs.nomagic.com/display/MDTWRT/Stereotype#Stereotype-Applyingastereotype
936 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog#ValidationSuitesdialog-
OpeningtheValidationSuitesdialog
937 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
938 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
939 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog#ValidationSuitesdialog-
OpeningtheValidationSuitesdialog
940 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
941 https://docs.nomagic.com/display/MDTWRT/Validation+Suites+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
499
After you include/exclude the validation rules (constraints), the appropriate Package
Import942 relation is created/deleted in the model. You can check that in the
Containment tree943, under newly created or cloned validation suites Package, Relations
group. In the image below, the Numbering Validation, Path Overlapping, and Pins
Displaying validation suites with all Constraints are included in the newly created Specific
constraints validation suite via the Package Import relation.
Validation Suites dialog
On this page
• Introduction(see page 500)
• Opening the Validation Suites dialog(see page 501)
• Description of Validation Suites dialog areas(see page 501)
• Toolbar(see page 501)
• Validation Suites area(see page 502)
• Validation Rules area(see page 502)
Introduction
The Validation Suites dialog allows you to create new suites, clone read-only validation suites, include
one suite to another, and include/exclude already existing validation rules in validation suites.
942 https://docs.nomagic.com/display/MDTWRT/Package+import
943 https://docs.nomagic.com/display/MDTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
500
The Validation Suites dialog areas: toolbar, Validation Suites, and Validation Rules areas.
Opening the Validation Suites dialog
To open the Validation Suites dialog
• Do either:
- From the main menu, select Analyze > Validation > Validation Suites.
- Open the Validation dialog944 and click the Validation Suites button.
Description of Validation Suites dialog areas
The Validation Suites dialog consists of the following areas:
•
• Toolbar(see page 501)
• Validation Suites area(see page 502)
• Validation Rules area(see page 502)
Toolbar
The toolbar allows you to manage the validation suites. All buttons are described in the following table.
944 https://docs.nomagic.com/display/MDTWRT/Validation+dialog#Validationdialog-OpeningtheValidationdialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
501
Button
icon
Button name
Description
Create New
Validation Suite
Click to create a new validation suite. This button contains the following
commands:
• Validation Suite - creates a new validation suite, stored in your
model as a Package with «validationSuite» stereotype applied. The
validation rules stored in this suite will check if a model is correct
and complete only when you start your model validation manually.
How to start validation >>945
• Active Validation Suite - creates a new active validation suite
stored in your model as a Package with «activeValidationSuite»
stereotype applied. The validation rules stored in this suite will be
active and check if a model is correct and complete immediately.
Learn more about active validation suites >>946
Clone Validation
Suite
Click to clone an already existing validation suite with its validation rules. It is
stored in your model as a Package with «validationSuite» stereotype applied.
Rename (F2)
Click to rename the package of new or cloned validation suites.
Remove
Click to delete the new or cloned validation suites from the model.
Validation Suites area
The Validation Suites area shows a list of all validation suites that comes with a profile (read-only) or
your own created validation suites (editable).
Each profile contains its own validation suites.
You can manage validation suites directly in the Validation Suites area by using the toolbar buttons(see
page 501) or shortcut menu commands: Create Validation Suite, Create Active Validation Suite, Clone
Validation Suite, Rename (F2), or Remove.
All those commands are described in the table above(see page 501).
Validation Rules area
The Validation Rules area contains:
• Constraints Tree displaying the structure of the validation suite Packages with their validation
rules. It allows you to include/exclude validation rules to/from a newly created or cloned
validation suite Package. For this select/clear the check box before the entire Package or an
appropriate validation rule.
945 https://docs.nomagic.com/display/MDTWRT/Starting+the+validation
946 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
502
You cannot include/exclude the validation rules to/from read-only validation suites.
• Buttons:
Button
Description
Edit
Click to open the Specification window947 of the selected element in the Constraint Tree.
Load
Click to load the used project948 with its validation rules.
Creating new validation rules
You can create your own validation rules in the model and use them to check your model or keep them
only for documentation purpose. You can locate new validation rules anywhere in your model, but
usually they are created for the classifier, stereotype, or metaclass.
To create a new validation rule
1. Create new Constraint element.949
2. Apply «validationRule» stereotype.950
3. Specify Constraint Element property.951
4. Specify the validation rule properties.952
5. Define Constraint expression.953
The new validation rule is created in the model.
Managing new validation rule
You can include a new validation rule to your own created validation suite.
• How to create validation suite >>954
• How to include the validation rules to validation suite Package >>955
You can manage new validation rules in your model as any other elements.
• How to work with model elements >>956
947 https://docs.nomagic.com/display/MDTWRT/Specification+window
948 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
949 https://docs.nomagic.com/display/MDTWRT/Creating+new+Constraint+element
950 https://docs.nomagic.com/display/MDTWRT/Applying+validationRule+stereotype
951 https://docs.nomagic.com/display/MDTWRT/Specifying+Constraint+Element+property
952 https://docs.nomagic.com/display/MDTWRT/Specifying+the+validation+rule+properties
953 https://docs.nomagic.com/display/MDTWRT/Defining+Constraint+condition
954 https://docs.nomagic.com/display/MDTWRT/Creating+validation+suites
955 https://docs.nomagic.com/display/MDTWRT/Creating+validation+suites#Creatingvalidationsuites-fill
956 https://docs.nomagic.com/display/MDTWRT/Working+with+model+elements
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
503
Related pages
• Creating new Constraint element(see page 504)
• Specifying Constraint Element property(see page 506)
• Applying «invariant» and «validationRule» stereotype(see page 506)
• Specifying the validation rule properties(see page 507)
• Defining Constraint condition(see page 513)
• Global validation rules(see page 515)
Related pages in Developer Guide
• Creating validation rules957
Creating new Constraint element
Before creating a new Constraint element, you must decide the Constraint type to create. The
Constraint type defines a target for which the validation rule will be evaluated.
There are three types of Constraints958 that can be evaluated:
• Classifier level Constraints. Constraints placed on the classes, datatypes and other
classifiers959of the model are evaluated on all the instances of these classifiers (i.e. those
Instance Specifications960 that have the particular classifier set as their type). Constraints defined
on some particular classifiers are evaluated on the instances of these particular classifiers when
validating. Inheritance is taken into account; instances of the subclasses of the class are also
validated.
• Constraints on Metaclasses. When a Constraint is placed on a metaclass961 (one of the classes
in the UML Standard Profile > UML2 Metamodel), this Constraint is evaluated on all the model
elements of that kind (e.g. if the Constraint is placed on the Actor metaclass, then this Constraint
applies to all actor elements in the model). The following is an example of a rule (specified in
OCL2.0) mandating that all actor names in the model must be capitalized. These Constraints are
useful for specifying generic rules that must apply on all the model elements of a particular kind.
context Actor inv capitalize:
let startswith:String = name.substring(1,1) in
startswith.toUpper() = startswith
• Constraints on Stereotypes. When a Constraint is placed on some Stereotypes962 of the
Profile963, that Constraint applies to all the model elements that have these Stereotypes applied
to them. These Constraints are useful when creating domain specific profiles. When adapting
UML to some specific modeling domain, a Profile is usually created with extensions for that
domain - Stereotypes, tags etc. The Constraints on these Stereotypes allow enforcing the rules of
that domain.
957 https://docs.nomagic.com/display/MDTWRT/Creating+new+validation+rules
958 https://docs.nomagic.com/display/MDTWRT/Constraint
959 https://docs.nomagic.com/display/MDTWRT/Specifying+the+classifier
960 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
961 https://docs.nomagic.com/display/MDTWRT/Metaclass
962 https://docs.nomagic.com/display/MDTWRT/Stereotype
963 https://docs.nomagic.com/display/MDTWRT/Profile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
504
Recommendation
It is strongly recommend not to mix the Constraints from different metalevels into one
validation suite. Learn more how to create validation suite >>964
Examples of Constraint types
The examples of each Constraint type can be found in the model validation sample model. To
open this sample do one of the following:
• Download model validation.mdzip965.
• Find in your modeling tool <modeling tool installation directory>\samples\product
features\model validation.mdzip.
You can create a new Constraint for :
• Classifier966, which is constrained – classes, datatypes, etc. (for classifier level Constraints). How
to create a validation rule for a classifier >>(see page 505)
• Stereotype967(for meta-classifier level Constraints). How to create a validation rule for a
Stereotype >>(see page 505)
• Metaclass968located in a read-only profile. How to create a validation rule for a metaclass >>(see
page 505)
To create Constraint for a classifier or Stereotype
1. Open the Specification window of a classifier or Stereotype. How to open the Specification
window >>969
2. On the left side of the window, select the Constraints property group.
3. On the right side of the window, click the Create button and select Constraint.
4. Type its name.
The new Constraint is created in the model.
To create Constraint for a metaclass
1. Select a package where you want to store the rule.
2. Right-click this package, select Create Element > Constraint.
3. Type its name.
The new Constraint is created in the model.
964 https://docs.nomagic.com/display/MDTWRT/Creating+validation+suites
5 https://docs.nomagic.com/download/attachments/9915051/model%20validation.mdzip?
96
api=v2&modificationDate=1513353053644&version=1
966 https://docs.nomagic.com/display/MDTWRT/Specifying+the+classifier
967 https://docs.nomagic.com/display/MDTWRT/Stereotype
968 https://docs.nomagic.com/display/MDTWRT/Metaclass
969 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
505
If you create a new Constraint for a metaclass, you must specify the Constrained
Element property in the Constraint Specification window. How to specify Constrainted
Element property >>970
Specifying Constraint Element property
You must ensure that the constrained element is specified and points to the necessary classifier. Each
validation rule modeled as a Constraint has a Constrained Element property. This property
determines the type of element this rule applies to. If you create the Constraint for a classifier or
stereotype971, this property is filled automatically. Otherwise, you need to specify it manually, shown in
the following procedure:
To specify a constrained element manually
1. Open the Constraint Specification window. How to open the Specification window >>972
2. Find the Constrained Element property and select it's value box.
3. Click
and select an appropriate element from the Select Elements dialog.
For constraints on metaclasses, select an appropriate element from the UML Standard
Profile > UML2 Metamodel. Only the single Constrained Element property value is
supported for validation rules.
4. Click OK.
The Constrained Element property value is specified.
Applying «invariant» and «validationRule» stereotype
After the Constraint element is created, you must apply:
• «validationRule» stereotype. It is derived from the «invariant » stereotype. It expands the
Constraint properties with the ability to specify the following information: severity level (for
sorting/filtering), abbreviation string (a short string, for easy recognition) and error message
(complete description of error explanation). How to specify the validation rules properties >>973
To apply a stereotype, do one of the following:
• In the corresponding element's Specification window974, click the Applied Stereotype property
specification cell, then click
, and select stereotypes from the open list. After you have
selected, click Apply.
• In the element's shortcut menu, select Stereotype and select a stereotype that you wish to
apply. Click Apply when you are done.
• On the diagram pane, select an element and in that element's name area, type the stereotype
name between brackets « ». The element's name comes after the stereotype.
970 https://docs.nomagic.com/display/MDTWRT/Specifying+Constraint+Element+property
971 https://docs.nomagic.com/display/MDTWRT/Creating+new+Constraint+element
972 https://docs.nomagic.com/display/MDTWRT/Specification+window
973 https://docs.nomagic.com/display/MDTWRT/Specifying+the+validation+rule+properties
974 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
506
If you want to name the element Books and assign it the «table» stereotype, in the
element's name area type the following: «table» Books. The name completion for the
stereotypes works in the name editing mode, press Ctrl+Spacebar or Ctrl+Backspace to
get a list of available stereotypes.
You can change the order of the stereotypes applied to the element. The symbol style of the first
stereotype in the list will be applied to the element.
Specifying the validation rule properties
If you applied the «validationRule» stereotype to the Constraint element, you must specify the following
validation rule properties in its Specification window: Abbreviation, Error Message, and Severity.
To specify the validation rule properties
1. Open the Constraint Specification window. How to open the Specification window >>975
2. On the right side of the window, find the Validation Rule group.
3. Specify the following properties:
• Abbreviation. Select the Abbreviation property value box, click
and type a
short word, phase, acronym of the validation rule. It allows you to distinguish the
validation rules among other rules when sorting or filtering.
• Error Message. Select the Error Message property value box, click
and type the
description of the invalid situation when this validation rule fails.
If you need to define the variable error message, you can embed expressions
directly in the Error Message value box by using curly brackets - {}. Everything
between them is treated as an expression and evaluated for each validation
result. Expressions are treated as OCL2.0 expressions by default, but you can also
use binary expressions: {bin: <binary expression>}. For example, in the following
error message the budget is calculated according to variables. The result of the
expression is provided as number in the Validation Results panel976, e.g. Budget
not balanced - overbudget by $500.
Budget not balanced - overbudget by {
ResearchProject::allInstances().budget->sum() Sponsor::allInstances().contribution->sum()}$
You can insert a hyperlink. Learn more about defining hyperlinks >>977
• Severity. Select the Severity property value and from the drop-down list select one of the
following severity levels:
• debug - for missing information of a constrained element that is dedicated for the
developer.
• info - for missing information of a constrained element that is dedicated mostly for
the end-user.
975 https://docs.nomagic.com/display/MDTWRT/Specification+window
976 https://docs.nomagic.com/display/MDTWRT/Validation+Results+panel
977 https://docs.nomagic.com/display/MDTWRT/Defining+hyperlinks
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
507
• warning - for incorrect situations that can cause errors. It is used for less severe
situations than the error.
• error - for incorrect situations that must be solved.
• fatal - for critical errors such as model corruption or model is invalid according to
the UML metamodel. This severity level is mostly reserved for future use.
The icons on invalid elements in the model depend on the selected severity
level described above. Learn more about invalid elements representation
>>978
You can customize severity levels. How to customize severity levels >>979
4. Click Close.
The validation rule properties are specified.
Customizing severity levels
You can customize the default severity levels (such as debug, info, warning, error, fatal) by creating
new and and additional levels. For this you must edit the SeverityKind Enumeration980element, located
in the UML Standard Profile.
We do not recommend changing the UML Standard Profile.
To customize severity levels
1. Edit the UML Standard Profile.(see page 509)
2. Create new or modify default severity levels.(see page 510)
3. Define new icon for severity level.(see page 511)
4. Apply new icon for severity level.(see page 512)
After you create the custom severity level or modify the default severity, you can select it from from the
drop-down list of the Severity property when specifying the validation rule properties981. In the
following figure the new severity level named critical can be selected as a value of the Severity property
in the Specification window of validation rule (Constraint element). The value order in the Severity
drop-down list is the same as they are listed in the SeverityKind Enumeration element.
978 https://docs.nomagic.com/display/MDTWRT/Validation#Validation-Invalidelementsrepresentation
979 https://docs.nomagic.com/display/MDTWRT/Customizing+severity+levels
980 https://docs.nomagic.com/display/MDTWRT/Enumeration
981 https://docs.nomagic.com/display/MDTWRT/Specifying+the+validation+rule+properties
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
508
The custom severity level named critical in the drop-down list of the Severity property in the validation
rule specification.
Editing the UML Standard Profile
To edit the UML Standard Profile
1. Open a project.
2. In the Containment tree982, click
and enable to show the Show Auxiliary Resources in the
Model Browser983.
3. Right-click the UML Standard Profile Package.
982 https://docs.nomagic.com/display/MDTWRT/Containment+tab
983 https://docs.nomagic.com/display/MDTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
509
4. Select Project Usages > Open. Learn how to manage project usages >>984
The UML Standard Profile is now editable.
Creating new or modifying default severity levels
You can create new or modify default severity levels only if the UML Standard Profile is
editable. To see how to edit the profile read the procedure above(see page 509).
Each Enumeration Literal created for the Enumeration element corresponds to available severity levels.
To modify default severity levels (Enumeration Literals)
1. In the Containment tree985, click + to expand the UML Standard Profile Package > Validation Profile
Package.
2. Double-click the SeverityKind Enumeration element to open its Specification window986.
3. On the left side of the Specification window, select the Enumeration Literals property group987.
4. On the right side of the Specification window, select severity level from the list:
- Click
to open Specification window988.
- Click the Up/Down button to move the severity level up/down in the list.
Severity levels are listed in ascending order according to severity importance.
984 https://docs.nomagic.com/display/MDTWRT/Managing+project+usages
985 https://docs.nomagic.com/display/MDTWRT/Containment+tab
986 https://docs.nomagic.com/display/MDTWRT/Specification+window
987 https://docs.nomagic.com/display/MDTWRT/Specification+window
988 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
510
- Click the Clone button to create the same severity level. The Specification window of newly
created Enumeration Literal opens. Type its unique name.
- Click the Delete button to remove the selected severity level from the model.
5. Click Close.
The default severity levels are modified.
To create a new severity level (Enumeration Literal)
1. In the Containment tree989, click + to expand the UML Standard Profile Package > Validation Profile
Package.
2. Double-click the SeverityKind Enumeration element to open its Specification window990.
3. On the left side of the Specification window, select the Enumeration Literals property group991.
4. On the right side of the Specification window, click the Create button. The Specification window
of the newly created Enumeration Literal opens.
5. In the Name property, type the name of the new severity level (e.g. critical).
6. Click Close.
The new severity level is created and can be modified by using buttons(see page 510).
Defining new icon for severity level
You can define a different icon for a custom or default severity levels (Enumeration Literals). For this,
you must create a new stereotype and specify its Icon and Metaclass properties.
To define a new icon for the severity level (Enumeration Literals)
989 https://docs.nomagic.com/display/MDTWRT/Containment+tab
990 https://docs.nomagic.com/display/MDTWRT/Specification+window
991 https://docs.nomagic.com/display/MDTWRT/Specification+window
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
511
1. In the Containment tree992, right-click the Validation Profile Package, and select Create Element >
Stereotype.
2. Type its name (e.g. criticalIcon) and press Enter.
3. Double-click newly created Stereotype.
4. In the Specification window993 of Stereotype specify the following properties:
- Select the Icon property value, click
to select an image from the Image Library994, or
to
select an image from your file system.
- Select the Metaclass property value, click
and select EnumerationLiteral.
5. Click Close.
The new stereotype with a new icon is created and ready to be applied to a severity level. How to
apply it >>(see page 512)
Applying new icon for severity level
After you define the new icon for severity level, you can apply it to custom or default severity levels
(Enumeration Literals). This icon is shown when representing invalid elements995 of your model.
To apply a new icon to a severity level
1. In the Containment tree996, click + to expand the UML Standard Profile Package > Validation Profile
Package > SeverityKind Enumeration element.
992 https://docs.nomagic.com/display/MDTWRT/Containment+tab
993 https://docs.nomagic.com/display/MDTWRT/Specification+window
994 https://docs.nomagic.com/display/MDTWRT/Image+Library+tab
995 https://docs.nomagic.com/display/MDTWRT/Validation
996 https://docs.nomagic.com/display/MDTWRT/Containment+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
512
2. Double-click the severity level (Enumeration Literals element) to which you want to apply a new
icon.
3. In its Specification window997, select the Applied Stereotype property value.
4. Click
and select the newly created stereotype (e.g. criticalIcon) dedicated for this severity
level.
5. Select Apply.
6. Click Close.
The new icon for the severity level is applied. In the figure below, the criticalIcon stereotype is
applied to the new critical EnumerationLiteral element.
Defining Constraint condition
You must specify the validation condition for a validation rule. This condition must be true when
evaluated in order for the Constraint to be satisfied. The result of a validation rule must be of the
boolean type.
To define a Constraint condition
1. Open the Constraint Specification window. How to open the Specification window >>998
2. Find the Specification property and select its value box.
3. Click
.The Specification dialog opens.
, select one of the following languages:
4. From the Language list
OCL999 2.0 is used for validation rules, specified in OCL language. Learn how to create
OCL2.0 validation rule in Developer Guide >>1000
•
OCL Header
997 https://docs.nomagic.com/display/MDTWRT/Specification+window
998 https://docs.nomagic.com/display/MDTWRT/Specification+window
999 https://docs.nomagic.com/display/MDTWRT/Object+Constraint+Language
1000 https://docs.nomagic.com/display/MDTWRT/Create+OCL2.0+validation+rule
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
513
If you select the OCL2.0 language, the header of the expression from the
constraint information is generated automatically
according to the following rules: context <constrained element> <constraint type>
<constraint name if any>:. See the following image.
Constraint types
Since the Constraint is stereotyped by «validationRule» which is derived from
«invariant » stereotype, inv is shown in the header.
Only inv constraints can be evaluated.
Other types of Constraints
are not evaluated, butcan be modeled for documentation purposes:
• def – for the expression of the constraint with «definition» stereotype
applied.
• init, derive - for the expression of the default value of the property.
The derive expressions can be evaluated indirectly when the
validation rule (inv constraint) is referencing the property and the
validation rule is evaluated.
• pre, post, body - for the expression of the appropriate fields of operation.
OCL Performance
When evaluating the validation rule defined in OCL language, the validation on the
first run can have a delay of 20-30 seconds (depending on the computer
performance) while the Java compiler is loading. Subsequent validations will run
faster than the first one.
If the validation process is run heavily on medium-large projects, increasing the
default Java VM size is advisable. By default, the VM size is set to 400MB in
MagicDraw; increasing this to 600 (or 800 if the computer has sufficient RAM)
might improve the performance.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
514
• Binary is used for more advanced expressions not easily expressed in OCL.These
expressions are written in Java, compiled, and specified in the MagicDraw classpath. These
expressions can then be specified as validation rule expressions. Learn more about binary
validation rule in Developer Guide >>1001
Scripts of JavaScript, Jython, JRuby, Groovy, and BeanShell. Learn more about script
• writing in Creating executable opaque behaviors1002.
Since constraints cannot have parameters, you may skip the information about managing
parameters.
• StructuredExpression. Learn more about specifying criteria for querying model >>1003
In the Body box, type the expression of the selected language syntax.
5.
MagicDraw can evaluate only those validation rules whose expression is defined in one
of the languages listed above. The other languages can be used only for documentation
purposes.
You can add hyperlinks in the Body box. How to define hyperlinks >>1004
You can define expressions for global validation rules. Learn more about global
validation rules >>1005
(optional) Click the Evaluation Mode button to to execute an expression on the actual testing
model while editing. How to use the Evaluation Mode >>1006
6.
7. Click OK.
The Constraint condition is defined.
Global validation rules
Global validation rules check the result of an element set, while validation rules contained in predefined
validation suites1007 or active validation suites1008 are dedicated to check a separate element. You can
create global validation rules in the same way as other validation rules by defining an appropriate
condition in the Specification property.
• How to create validation rules >1009
• How to define Constraint expression >>1010
For example, the balanced budget validation rule (Constraint specification is shown in the following
figure) is a global validation rule. It is created for the classifier of the ReseachProject Class. The balanced
budget validation rule condition, defined by using OCL2.0 language in the Specification property,
1001 https://docs.nomagic.com/display/MDTWRT/Binary+validation+rule
1002 https://docs.nomagic.com/display/MDTWRT/Creating+executable+opaque+behaviors
1003 https://docs.nomagic.com/display/MDTWRT/Specifying+criteria+for+querying+model
1004 https://docs.nomagic.com/display/MDTWRT/Defining+hyperlinks
1005 https://docs.nomagic.com/display/MDTWRT/Global+validation+rules
1006 https://docs.nomagic.com/display/MDTWRT/Expression+Evaluation
1007 https://docs.nomagic.com/display/MDTWRT/Predefined+validation+suites
1008 https://docs.nomagic.com/display/MDTWRT/Active+validation+suites
1009 https://docs.nomagic.com/display/MDTWRT/Creating+new+validation+rules
1010 https://docs.nomagic.com/display/MDTWRT/Defining+Constraint+condition
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
515
expresses that the sum of the expenses of all projects must be less than the sum of all Sponsor
contributions. This validation rule is global because it includes all instances in the model, rather than
only the particular instance of ResearchProject that violates the rule.
Sample model
An example of a global validation rule can be found in the model validation sample model >
Classifiers Validation Rules Class diagram1011. To open this sample do one of the following:
• Download model validation.mdzip1012.
• Find in the modeling tool <modeling tool installation directory>\samples\product
features\model validation.mdzip.
1011 https://docs.nomagic.com/display/MDTWRT/Class+diagram
2
101
https://docs.nomagic.com/download/attachments/9915051/model%20validation.mdzip?
api=v2&modificationDate=1513353053644&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
516
The specification of the global validation rule named balanced budget.
After the validation finishes, the global validation rule is marked as <model> in the Validation Results
panel1013 > Element column. This means that the entire model, not the separate element, violates the
rule.
The representation of global validation rule in the Validation Results panel.
Glossary of SysML concepts
Diagram descriptions
Each diagram represent a different view of your model. The view depends from the diagram purpose.
When creating diagrams you should't represent all the details of your model in one diagram. Before
modeling your diagram firstly you need to decide what you want the focus of a diagram to be and skip
all details that is not within that focus. This help you to make your diagrams readable.
This page provides concepts and purposes of all the diagrams, tables, matrices, relation maps that you
can use in the modeling tool.
Each of diagram is described in the following pages:
• Requirement Diagram(see page 518)
• SysML Block Definition Diagram(see page 519)
• SysML Internal Block Diagram(see page 520)
• SysML Package Diagram(see page 521)
• SysML Parametric Diagram(see page 523)
• SysML Sequence Diagram(see page 524)
• SysML State Machine Diagram(see page 524)
• SysML Activity Diagram(see page 525)
• SysML Use Case Diagram(see page 526)
• Views and Viewpoints Diagram(see page 527)
• Matrices(see page 528)
• Predefined Relation Maps(see page 535)
• Requirement Table(see page 538)
1013 https://docs.nomagic.com/display/MDTWRT/Validation+Results+panel
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
517
• Blackbox ICD Table(see page 540)
• Whitebox ICD Table(see page 541)
Requirement Diagram
Requirement Diagram is particularly valuable when you want to demonstrate the traceability from the
requirements to the elements in your system model that are dependent on them. This diagram
provides modeling constructs to represent text-based requirements and relate them to other modeling
elements. These requirement modeling constructs are intended to provide a bridge between traditional
requirement management tools and other SysML models.
Requirements diagrams display requirements, packages, other classifiers, test cases, rationales, and
relationships. Possible relationships available for Requirements diagrams are containments, deriveReqt
and requirement dependencies (‘Copy’, ‘Refine’, ‘Satisfy’, ‘Trace’, and ‘Verify’). The callout notation can
also be used to reflect the relationships of other models.
Requirements can also be shown on other diagrams to illustrate their relationships to other modeling
elements.
Related elements
• Requirement(see page 564)
• Extended Requirement(see page 555)
• Functional Requirement(see page 558)
• Interface Requirement(see page 559)
• Performance Requirement(see page 561)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
518
• Physical Requirement(see page 561)
• Design Constraint(see page 552)
• Business Requirement(see page 546)
• Usability Requirement(see page 569)
• Test Case(see page 568)
• Satisfy(see page 564)
• Verify(see page 571)
• Derive(see page 552)
• Copy(see page 550)
SysML Block Definition Diagram
Block Definition Diagram defines the features of a block and any relationships between blocks such as
associations, generalizations, and dependencies, in terms of properties, operations, and relationships
(for example, a system hierarchy or a system classification tree).
Block Definition Diagrams are based on UML class diagrams and include restrictions and extensions as
defined by SysML. They are generally used to display systems of blocks or show a system dictionary
and/or extensions.
Related pages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
519
Related elements
• Block(see page 545)
• Domain(see page 553)
• External(see page 555)
• System(see page 566)
• Subsystem(see page 565)
• System Context(see page 567)
• Constraint Block(see page 548)
• Interface Block(see page 559)
• Flow Specification(see page 557)
• Value Type(see page 570)
• Quantity Kind(see page 562)
• Using Units(see page 199)
SysML Internal Block Diagram
Internal Block Diagram is based on UML composite structure diagram and includes restrictions and
extensions as defined by SysML. An Internal Block Diagram captures the internal structure of a Block in
terms of properties and connections among properties. A Block includes properties so that its values,
parts, and references to other blocks can be specified. However, whereas an Internal Block Diagram
created for a Block (as an inner element) will only display the inner elements of a classifier (parts, ports,
and connectors), an Internal Block Diagram created for a package will display additional elements
(shapes, notes, and comments).
All properties and connectors that appear inside an Internal Block Diagram belong to (are owned by) a
Block whose name is written in the diagram heading. That particular Block is the context of the
diagram. SysML allows any property (part) to be shown in an Internal Block Diagram to display
compartments within the property (or part) symbol.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
520
Related elements
• Part Property(see page 560)
• Reference Property(see page 563)
• Value Property (see page 569)
• Constraint Property(see page 550)
• Constraint Parameter(see page 549)
• Flow Property(see page 558)
• Flow Port(see page 561)
• Full Port(see page 558)
• Proxy Port(see page 562)
• Participant Property(see page 561)
• Bound Reference(see page 546)
• Distributed Property(see page 553)
• Directed Feature(see page 553)
SysML Package Diagram
Package diagram typically enables you to organize models by partitioning model elements into
packageable elements and establishing dependencies between packages and/or model elements
within these packages. Since Package diagram is used to organize models in packages and views, it can
include a wide array of packageable elements.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
521
A package is a construct that enables you to organize model elements, such as use cases1014 or
classes1015, into groups. Packages define namespaces for packageable elements. Model elements from
one package can be imported and/or accessed by another package. This organizational principle is
intended to help establish unique naming of the model elements and avoid overloading a particular
model element's name. Packages can also be shown on Block Definition diagrams(see page 519) or
Requirement diagrams(see page 518).
Related pages
• Working with packages1016
• Working with dependencies1017
Related elements
• Package1018
• Model1019
• Package Import1020
• Element Import1021
1014 https://docs.nomagic.com/display/MDTWRT/Use+Case
1015 https://docs.nomagic.com/display/CM180/Class
1016 https://docs.nomagic.com/display/MDTWRT/Working+with+packages
1017 https://docs.nomagic.com/display/MDTWRT/Working+with+dependencies
1018 https://docs.nomagic.com/display/MDTWRT/Package
1019 https://docs.nomagic.com/display/MDTWRT/Model
1020 https://docs.nomagic.com/display/MDTWRT/Package+import
1021 https://docs.nomagic.com/display/MDTWRT/Dependency
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
522
SysML Parametric Diagram
Parametric diagram is designed to describe mathematical equations by modeling elements, e.g. to
count breaking distance of a vehicle.
Parametric diagram can be defined as restricted forms of Internal Block diagrams(see page 520). They are
similar to Internal Block diagrams(see page 520) except that the only connectors allowed are Binding
Connectors(see page 544), each having at least one end connected to a Constraint Parameter(see page 549).
A Parametric diagram includes the usage of a Constraint Block(see page 548) to constrain the properties
of another Block. It contains Constraint Properties(see page 550) and constraint parameters as well as
other properties from within that internal block context. All properties displayed, other than the
constraints themselves, must either be bound directly to a Constraint Parameter or contain a property
that is bound to a Constraint Parameter (through any number of containment levels). A Constraint
Block generally contain many constraints, each of them containing many Constraint Parameters.
Constrained Properties typically have simple value types that can also carry units, quantity kinds, and
probability distributions. This allows for a Value Property(see page 569) that may be deeply nested within
a containing hierarchy to be referenced at the outer containing level. The context for the usages of
Constraint Blocks(see page 548) must also be specified in a parametric diagram to maintain the proper
namespaces for the nested properties.
The state of the system can be specified in terms of the values of some of its properties. A change in
state will result in a different set of constraint equations to be recalculated. This can be accommodated
by specifying constraints that are conditioned on the value of the property with state. Parametric
diagrams can be used to support trade-off analysis. A Constraint Block can define an objective function
to compare alternative solutions.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
523
Related pages
• Enforce Ports Compatibility mode(see page 192)
• Property path notation(see page 145)
Related elements
• Constraint Property(see page 550)
• Moe(see page 560)
• Objective Function(see page 560)
• Constraint Parameter(see page 549)
• Binding Connector(see page 544)
SysML Sequence Diagram
This diagram is similar to UML Sequence Diagram1022.
SysML State Machine Diagram
This diagram is similar to UML State Machine Diagram1023.
1022 https://docs.nomagic.com/display/MDTWRT/Sequence+diagram
1023 https://docs.nomagic.com/display/MDTWRT/State+Machine+diagram
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
524
SysML Activity Diagram
Activity diagram describes control, input, and output flows among actions. It represents the system
business and operational work flows. It captures actions and display their results. It is typically used for
business process modeling and used in situations where all or most of the events represent the
completion of internally generated actions.
Though Activity diagrams are often classified alongside interaction diagrams, they actually focus on the
flows driven by internal processes (as opposed to external events).
SysML extends control in Activity diagrams and provides extensions that might be very loosely grouped
under the term “continuous”, but are generally applicable to any distributed flow of information and
physical items through a system. It also introduces probability concepts to activities.
Related pages
• Accept Change Structural Feature Event Action(see page 543)
• Change Structural Feature Event(see page 547)
• Invocation on Nested Port Action(see page 559)
• Trigger on Nested Port(see page 568)
• Allocation Mode(see page 353)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
525
SysML Use Case Diagram
The purpose of a Use Case Diagram is to give a graphical overview of the functionalities provided by a
system in terms of actors, their goals (represented as use cases), and any dependencies among those
use cases.
A Use Case Diagram describes the usage of a system. The associations between actors and use cases
represent the communications that occur between the actors and the subjects to accomplish the
functionalities associated with the use cases. The subject of a use case can be represented through a
system boundary. The use cases enclosed in the system boundary represent the functionalities
performed by behaviors (activity diagrams, sequence diagrams, and state machine diagrams).
Actors may interact either directly or indirectly with the system. They are often specialized so as to
represent a taxonomy of user types or external systems. The only relationship allowed between actors
in a use case diagram is generalization. This is useful in defining overlapping roles between actors.
Actors are connected to use cases through communication paths, each represented by a relationship.
There are four use case relationships:
• communication(see page 526)
• include (see page 526)
• extend(see page 526)
• generalization(see page 526)
Communication
A communication path represents an association between two Deployment Targets. It connects actors
to use cases.
Include
An include relationship provides a mechanism for factoring out a common functionality that is shared
among multiple use cases and is always performed as part of the base use case.
Extend
An extend relationship provides an optional functionality, which extends the base use case at defined
extension points under specified conditions.
Generalization
A generalization relationship provides a mechanism to specify variants of the base use case.
Use cases are often organized into packages with the corresponding dependencies among the use
cases included in the packages.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
526
Related elements
• External System(see page 556)
• Sensor(see page 565)
• Boundary System(see page 546)
• User System(see page 569)
• Actuator(see page 543)
• Environmental Effect(see page 554)
Views and Viewpoints Diagram
The concept of View and Viewpoint reflects perspectives of different stakeholders. The views are
constructed from a subset of the model that addresses their concerns.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
527
Related elements
• View(see page 571)
• Viewpoint(see page 572)
• Conform(see page 547)
• Expose(see page 554)
Matrices
The matrices enables you to analyze, create, and modify relationships between Requirements and
other design elements. You can create five kind of matrices:
• Derive Requirement Matrix.
• Refine Requirement Matrix.
• Satisfy Requirement Matrix.
• Verify Requirement Matrix.
• SysML Allocation Matrix.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
528
You can create SysML matrices only if you have SysML Plugin(see page 10) installed. How to install
SysML Plugin >>1024
The purpose and examples of each matrix are provided in the following pages:
• Requirement matrices(see page 529)
• SysML Allocation Matrix(see page 533)
All SysML matrices are based on Dependency Matrix1025. That's why all it's procedures are allowable for
SysML matrices:
• Creating Dependency Matrix1026
• Using Dependency Matrix1027
• Dependency Matrix environment1028
Requirement matrices
The matrices enables you to analyze, create, and modify relationships between Requirements and
other design elements. It is especially valuable that you can display relationships that cannot be
represented in diagrams, such as representations (classes by lifeline), behavior representations in other
diagrams, operation representations by Call Behavior Actions, etc. All Requirement matrices allows you
to perform Requirements gap and coverage analysis(see page 84).
You can create four kind of Requirements matrices:
• Derive Requirement Matrix.
• Refine Requirement Matrix.
• Satisfy Requirement Matrix.
• Verify Requirement Matrix.
The different purposes for each matrix are illustrated below:
• Derive Requirement Matrix allows you to analyze, create, and modify Derive (see page
552)relationships between Requirements and other design elements. Rows represent the
elements that are the clients of Derive relationship. Columns represent the Requirements(see page
564) that are the suppliers of Derive relationship. The example below is created by using
1024 https://docs.nomagic.com/display/SYSMLP2021xR2/Installation+and+licensing
1025 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix
1026 https://docs.nomagic.com/display/MDTWRT/Creating+Dependency+Matrix
1027 https://docs.nomagic.com/display/MDTWRT/Using+Dependency+Matrix
1028 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix+environment
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
529
the extract requirement values.mdzip1029 sample model that comes only with SysML Plugin1030.
• Refine Requirement Matrix allows you to analyze, create, and modify Refine (see page
563)relationships between Requirements and other design elements. Rows represent the
elements that are the clients of Refine relationship. Columns represent the Requirements(see page
564) that are the suppliers of the Refine relationship. The example below is created by using
9 https://docs.nomagic.com/download/attachments/82753878/extract%20requirement%20values.mdzip?
102
api=v2&modificationDate=1490709033381&version=1
1030 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
530
the extract requirement values.mdzip1031 sample model that comes only with SysML Plugin1032.
• Satisfy Requirement Matrix allows you to analyze, create, and modify Satisfy (see page
564)relationships between Requirements and other design elements. Rows represent the
elements that are the clients of Satisfy relationship. Columns represent the Requirements(see page
564) that are the suppliers of the Satisfy relationship. The example below is created by using
1 https://docs.nomagic.com/download/attachments/82753878/extract%20requirement%20values.mdzip?
103
api=v2&modificationDate=1490709033381&version=1
1032 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
531
the extract requirement values.mdzip1033 sample model that comes only with SysML Plugin1034.
• Verify Requirement Matrix allows you to analyze, create, and modify Verify (see page
571)relationships between Requirements and other design elements. Rows represent the
elements that are the clients of Verify relationship. Columns represent the Requirements(see page
564) that are the suppliers of the Verify relationship. The example below is created by using
the Categorization requirements.mdzip1035 sample model that comes only with Cameo
Requirements Modeler Plugin1036.
3 https://docs.nomagic.com/download/attachments/82753878/extract%20requirement%20values.mdzip?
103
api=v2&modificationDate=1490709033381&version=1
1034 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
5 https://docs.nomagic.com/download/attachments/82753878/Categorization%20requirements.mdzip?
103
api=v2&modificationDate=1508943019652&version=1
1036 https://docs.nomagic.com/display/CRMPTWRT/Cameo+Requirements+Modeler+Plugin+Documentation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
532
How to work with Requirement matrices
Requirement matrices are based on Dependency Matrix1037. That's why all it's procedures are
allowable for Requirement matrices:
• Creating Dependency Matrix1038
• Using Dependency Matrix1039
• Dependency Matrix environment1040
SysML Allocation Matrix
1037 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix
1038 https://docs.nomagic.com/display/MDTWRT/Creating+Dependency+Matrix
1039 https://docs.nomagic.com/display/MDTWRT/Using+Dependency+Matrix
1040 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix+environment
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
533
The SysML Allocation matrix enables you to analyze, create, and modify Allocate relationships. Rows in
the matrix represent an element that can be the client element of the Allocate relationship. Columns in
the matrix represent elements that can be the supplier elements of the Allocate relationship. You can
set your own element types that you want to allocate in the criteria area or you can create a matrix
with predefined element types in the criteria area by selecting one of the SysML Allocation
Matrix mode.(see page 353)The example below is created by using the distiller model.mdzip1041 sample
model that comes only with SysML Plugin1042.
SysML Allocation Matrix.
How to work with SysML Allocation matrices
The SysML Allocation matrices are based on Dependency Matrix1043. Thus, all its procedures
are allowable for SysML Allocation matrices:
• Creating Dependency Matrix1044
• Using Dependency Matrix1045
• Dependency Matrix environment1046
1
104
https://docs.nomagic.com/download/attachments/9919520/distiller%20model.mdzip?
api=v2&modificationDate=1505483436734&version=1
1042 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Plugin+Documentation
1043 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix
1044 https://docs.nomagic.com/display/MDTWRT/Creating+Dependency+Matrix
1045 https://docs.nomagic.com/display/MDTWRT/Using+Dependency+Matrix
1046 https://docs.nomagic.com/display/MDTWRT/Dependency+Matrix+environment
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
534
Related pages
• Allocation Mode(see page 353)
Predefined Relation Maps
You can use all predefined relation maps to represent the traceability of system requirements and
design elements. The main purpose of relation maps is to review and analyze relations among the
elements and create new elements directly in the relation map. It is a special kind of diagram that
automatically updates and renders an element's dependency tree according to predefined dependency
criteria. You can create five kinds of predefined relation maps:
• Activity Decomposition Map(see page 535).
• Structure Decomposition Map(see page 536).
• Instance Map(see page 536).
• Requirement Containment Map(see page 537).
• Requirement Derivation Map(see page 537).
You can create predefined relation maps only if you have the SysML Plugin(see page 10) installed.
How to install SysML Plugin >>1047
The different purposes for each relation map are illustrated below:
• Activity Decomposition Map displays an Activity decomposition of the selected context. You
can review, analyze, and decompose the Activities. The example below is created by using
1047 https://docs.nomagic.com/display/SYSMLP2021xR2/Installation+and+licensing
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
535
the distiller model.mdzip1048 sample model that only comes with SysML Plugin(see page 10).
• Structure Decomposition Map displays the decomposition of the Part Properties(see page 560)
related through the Composition relationship1049 of the specified context. You can review,
analyze, and decompose the Part Properties. The example below is created by using the
VehicleStructure.mdzip1050 sample model that only comes with Cameo Simulation Toolkit1051.
• Instance Map displays a hierarchy of the Instance Specifications1052 of the selected context. You
can review and analyze the hierarchy of Instance Specifications. The example below is created by
using the SpacecraftMassRollup_HTMLTable.mdzip1053 sample model that only comes with
8
104
https://docs.nomagic.com/download/attachments/82753878/distiller%20model.mdzip?
api=v2&modificationDate=1505483436734&version=1
9
104
https://docs.nomagic.com/display/SYSMLPTWRT/
Defining+Blocks+in+Block+Definition+Diagram#DefiningBlocksinBlockDefinitionDiagram-comp
0
105
https://docs.nomagic.com/download/attachments/82753878/VehicleStructure.mdzip?
api=v2&modificationDate=1498051325517&version=1
1051 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
1052 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
3 https://docs.nomagic.com/download/attachments/82753878/SpacecraftMassRollup_HTMLTable.mdzip?
105
api=v2&modificationDate=1505483453954&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
536
Cameo Simulation Toolkit1054.
• Requirement Containment Map displays the decomposition of the Requirements(see page 564)
related through the Containment relationship1055 of the specified context. You can review,
analyze, and decompose the Requirements. The example below is created by using the hybrid
sport utility vehicle.mdzip1056 sample model that only comes with the SysML Plugin(see page 10).
• Requirement Derivation Map displays the decomposition of Requirements (see page 564)that are
related trough the Derive (see page 552)relationship. You can review, analyze, and create Derive
relationships among the Requirements. The example below is created by using the hybrid sport
1054 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
1055 https://docs.nomagic.com/display/MDTWRT/Containment
6 https://docs.nomagic.com/download/attachments/82753878/hybrid%20sport%20utility%20vehicle.mdzip?
105
api=v2&modificationDate=1505483471482&version=1
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
537
utility vehicle.mdzip1057 sample model that only comes with the SysML Plugin(see page 10).
Additional relation map
You can also create a Relation Map Diagram if you want a rapid review, analysis, and creation
of relationships among the elements of the entire model. Lean more about Relation Map
Diagram >>1058
The following procedures explain how to work with relation maps.
Requirement Table
A Requirement Table is used to type a requirements into a spreadsheet-like table.
Requirements Table contains requirements. All requirements are text-based. Each row in the table
represents a requirement. A new table consists of four columns by default (#, Id, Name, Text). You can
add more columns to represent the properties of each requirement in the table. With this table, you
can:
• Create new requirements directly in the table, or import existing ones from your model to the
table.
• Edit the properties of requirements directly in the table.
• Generate requirements reports, renumber requirements’ IDs, or export the table into a CSV or
HTML format, or into a Microsoft Excel (.xlsx) spreadsheet.
• Search and filter requirements.
• Access custom requirement’s properties.
7 https://docs.nomagic.com/download/attachments/82753878/hybrid%20sport%20utility%20vehicle.mdzip?
105
api=v2&modificationDate=1505483471482&version=1
1058 https://docs.nomagic.com/display/MDTWRT/Relation+Map
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
538
Related elements
• Requirement(see page 564)
• Extended Requirement(see page 555)
• Functional Requirement(see page 558)
• Interface Requirement(see page 559)
• Performance Requirement(see page 561)
• Physical Requirement(see page 561)
• Design Constraint(see page 552)
• Business Requirement(see page 546)
• Usability Requirement(see page 569)
• Test Case(see page 568)
• Satisfy(see page 564)
• Verify(see page 571)
• Derive(see page 552)
• Copy(see page 550)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
539
Blackbox ICD Table
The Blackbox ICD Table represents all external Ports/interfaces of the selected Block. The table is useful
when trying to identify what kind of inputs and outputs are available in the selected system.
In the following example, the distiller system has two inputs (dirty water and q in) and three outputs
(bypass, purified and sludge). In this case, the Port dirty water, Port purified, Port bypass support such
value properties as: water temp, water press, etc. Pay attention, that the input to distiller is a dirty water
(row 1) and the output from distiller is purified water (row 4). Both of them contains the same
properties but it may have different values defined (they are not defined in the figure). Learn how to
create and work in the Interface Control Documents >>(see page 226)
The Blackbox ICD Table of the Distiller Block.
A Blackbox ICD Table consists of the following columns.
Column name
Description
#
A row number.
~^
Displays if Port is conjugated (~) or inherited (^).
Port Name
A Port name.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
540
Column name
Description
Port Type
A Port type.
Type Features
Displays all the features (e.g., Flow property, Part property) of the Port
type.
Direction
Displays a combined direction prefix of the Port.
Documentation
Displays a documentation text. If it is not described, click
to edit.
Whitebox ICD Table
The purpose of Whitebox ICD Table is to show how Part Properties(see page 560) are connected via ports/
interfaces. This table collects all parts of the context element. Those parts are connected through the
ports/interfaces using Connectors1059. You can visually identify what kind of ports/interfaces (Port A
and Port B) and flows (Item Flow) are used to connects two Part Properties (Part A and Part B).
In the row 1 of the following figure, the Controller Part Property sends the control Signal to the Boiler
Part Property through the ports b and c. The Controller receives the Status signal from the Boiler through
the Ports c and b. In the row 2, the Part Controller sends the flow Elec Power to the Part Boiler through
the Ports bp and p in. Learn how to create and work in the Interface Control Documents >>(see page 226)
An example of Whitebox ICD Table.
In the created table, a row represents the Connector and the columns represent features of that
Connector. You can add more features (columns) or remove1060 them if no longer need.
Using Show Parts, you can easily filter connectors and choose which ones should be displayed in the
table or hidden from it. In the Show Parts filter, you can:
• See all the connectors used in a defined context.
• Easier identify and multi-select the needed connectors (they are grouped by parts).
• Scroll through the list with the possibility to expand or collapse groups.
• Use the search field which allows to quickly find needed connectors.
To choose which connectors should be displayed or hidden
1059 https://docs.nomagic.com/display/MDTWRT/Connector
1060 https://docs.nomagic.com/display/MDTWRT/Working+with+columns#Workingwithcolumns-
Addingandremovingcolumns
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
541
1. In the Whitebox ICD Table toolbar, click Show Parts.
2. In the Show Parts dialog, select the connectors you want to hide or display.
3. Click OK.
• If the part is in a partially selected or empty state, clicking it selects all the connectors
under that part. If the part is in fully selected state, clicking it cancels all the connector
selections.
• The connectors are represented under both end parts, so if you choose the connector
under one end, the second end will be selected as well. It works the same way when
clearing the selection.
A Whitebox ICD Table consists of the following columns.
Column name
Description
#
A row number.
Part A
Displays a Part that is connected with Part B.
Port A
Displays a Port that is connected with Port B.
Port A Features
Displays all the properties of the Port A.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
542
Column name
Description
Item Flow
Displays the flow kind and its direction which flows through the
Connector between two Parts (Part A and Part B).
Port B
Displays a Port that is connected with Port A.
Port B Features
Displays all the properties of the Port B.
Part B
Displays a Part that is connected with Part A.
Element descriptions
Accept Change Structural Feature Event Action
An Accept Change Structural Feature Event Action is an action that waits for the occurrence of a Change
Structural Feature Event(see page 547) (see Directed Feature(see page 553)). The actions have exactly two
output pins. The first output pin holds the values of the structural feature just after the values changed,
while the second pin holds the values just before the values changed. The action only accepts events
for structural features on the blocks owning the behavior containing the Action, or on the behavior
itself, if the behavior is not owned by a Block.
Related pages
• Accept Event Action1061
Related diagrams
• SysML Activity Diagram(see page 525)
Actuator
An Actuator is a special external system that influences the environment of the system under
development.
Example
• Heater assembly.
• Central locking system of a car.
1061 https://docs.nomagic.com/display/MDTWRT/Accept+Event+Action
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
543
Related diagrams
• SysML Use Case Diagram(see page 526)
Association Block
An Association Block can own properties and connectors, like any other Block(see page 545). Each instance
of an Association Block can link together instances of the end classifiers of the association. To refer to
linked objects and values of an instance of an Association Block, it is necessary for the modeler to
specify which Participant Properties(see page 561) of the Association Block identify the instances being
linked at which end of the association. The value of a participant property on an instance (link) of the
Association Block is the value or object at the end of the link corresponding to this end of the
association. How to create Association Block >>1062
The Association Block can be the type of multiple other Connectors to reuse the same internal structure
for all the Connectors. How to use the Association Block as Connector type >>(see page 192)
Association Block with Owned Ends
Binding Connector
A Binding connector is the only connector that allows to bind Constraint Parameter(see page 549) to the
properties of other Block. It is a connector which specifies that the properties at both ends of the
connector have equal values. If the properties at both ends of a binding connector are typed by Data
Types or Value Types, it means that the instances of the properties at both ends must hold equal
values, recursively through any nested properties within the connected properties. If the properties at
both ends of a binding connector are typed by Blocks, it means that the instances of the properties
must refer to the same block instance. As with any connector owned by a SysML Block, each end of a
binding connector may be nested within a multi-level path of properties accessible from the owning
Block. The NestedConnectorEnd stereotype is used to represent such nested ends, just as for nested
ends of other SysML connectors.
The two ends of a binding connector must have either the same type or types that are compatible so
that equality of their values can be defined.
2 https://docs.nomagic.com/display/SYSMLPTWRT/
106
Defining+Blocks+in+Block+Definition+Diagram#DefiningBlocksinBlockDefinitionDiagramCreatingAssociationBlock
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
544
Related pages
• SysML Parametric Diagram(see page 523)
• Creating Binding Connector1063
Block
Blocks provide a general purpose capability to describe the architecture of a system and represent the
system hierarchy in terms of systems and subsystems. Blocks describe not only the connectivity
relationships within/between a system and its subsystems, but also quantitative values, as well as other
information about that system (for example, documentation).
You can use SysML blocks throughout all phases of system specification and design, and apply them to
many different kinds of systems. These include modeling either the logical or physical decomposition of
a system, and the specification of software, hardware, or human elements.
A Block is a modular unit that describes the structure of a system or an element. It may include both
structural and behavioral features (such as properties and operations) that represent the state of the
system and behavior that the system may exhibit. Some of these properties may hold parts of a system
that can also be described by blocks. A block may include a structure of connectors between its
properties to indicate how its parts or other properties relate to one another.
Any reusable form of description that may be applied to a system or a set of system characteristics can
be described by a block. These reusable descriptions, for example, may be applied to purely conceptual
aspects of a system design, such as relationships that hold between parts or properties of a system.
Parts (properties) in these systems can interact by many different means, such as software operations,
discrete state transitions, flows of inputs and outputs, or continuous interactions. Connectors owned by
SysML blocks can be used to define relationships between parts or other properties of the same
containing block.
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
1063 https://docs.nomagic.com/display/SYSMLPTWRT/Creating+Binding+Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
545
Related pages
• SysML Block Definition Diagram (see page 519)
Bound Reference
Properties with Bound Reference applied and upper multiplicity greater than one are ordered, with
values ordered according to when they are reached in navigating the binding path (and how they are
ordered within their blocks), and non-unique, to support paths that lead to or pass through the same
object.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Boundary System
A Boundary System is a special external system that serves as medium between another system and
the system under development without having its own interests in the communication.
Example
• Bus system.
• Communication system.
Related diagrams
• SysML Use Case Diagram(see page 526)
Business Requirement
A Business Requirement is a requirement that specifies characteristics of the business process that
must be satisfied by the system.
Related diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
546
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Change Structural Feature Event
A Change Structural Feature Event is an event which is used to model changes in values of structural
features.
Related page
• Change Event1064
Related diagrams
• SysML Activity Diagram(see page 525)
Conform
A Conform relationship is a dependency between a View(see page 571) and a Viewpoint(see page 572). The
View conforms to the rules and conventions specified in the Viewpoint.
Related diagram
• Views and Viewpoints Diagram(see page 527)
Conjugated Interface Block
1064 https://docs.nomagic.com/display/MDTWRT/Event
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
547
The Conjugated Interface Block (~Interface Block) is a specialization of Interface Block(see page 559) that
has the same features as its original Interface Block except that its Directed Features(see page 553) and
Flow Properties(see page 558) are reversed (conjugated). As shown in the figure below, the I/O Interface
Block is conjugated to ~I/O which has the same Control and Status Flow Properties but with opposite
directions.
Related pages
• SysML Block Definition Diagram(see page 519)
• Defining interfaces using ports1065
Constraint Block
Constraint blocks provide a mechanism for integrating engineering analysis, such as performance and
reliability models, with other SysML models. You can use Constraint blocks to specify a network of
constraints that represent mathematical expressions, such as {tp=whlpwr-(Cd*v)-(Cf*tw*v)}, that
constrain the physical properties of a system.
Such constraints can also be used to identify critical performance parameters and their relationships to
other parameters that can be tracked throughout the system life cycle. A constraint block includes
constraints (such as {tp=whlpwr-(Cd*v)-(Cf*tw*v)}) and their parameters (such as Cd, Cf, and i).
Constraint blocks define generic forms of constraints that can be used in multiple contexts.
Reusable constraint definitions can be specified on Block Definition Diagrams and packaged into
general-purpose or domain-specific model libraries.These constraints can be arbitrarily complex
mathematical or logical expressions. The constraints can be nested to enable a constraint to be defined
in terms of more basic constraints such as primitive mathematical operators.
In general, you should define constraints in constraint blocks in a Block Definition Diagram first, and
then use a Parametric Diagram to bind constraint parameters to properties.
1065 https://docs.nomagic.com/display/SYSMLPTWRT/Defining+interfaces+using+ports
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
548
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Related pages
• SysML Block Definition Diagram (see page 519)
Constraint Parameter
A Constraint Parameter is the formal term for a variable that appears in a constraint expression. It is
displayed as a small square attached to the boundary on the inside of a Constraint Property(see page
550).
Related diagrams
• SysML Internal Block Diagram(see page 520)
• SysML Parametric Diagram(see page 523)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
549
Related pages
• Creating Constraint Parameters automatically(see page 295)
Constraint Property
A Constraint Property is a property that specifies the constraints of other properties in its containing
Block. Every Constraint Property has composite AggregationKind and is typed by a Constraint Block.
Constraint Properties are displayed in the constraints compartment on a Block shape.
The Constraint Property shape containing information of its name, type and
expression.
To empower the constraint expression to perform calculations, you have to specify what system
parameters should be consumed as variables of that constraint. You can define the Constraint
expression as:
• Mathematical equation. E.g. {area = 3.14159 * (radius ^ 2)}. When evaluating such equations, the
simulation mechanism solves values to correspond the equation. Learn more about evaluating
mathematical equations >1066
• Logical expression that contains a comparison operator: ==, <, >, <=, >=, and <>. E.g. {val1 >=
"500"}. When evaluating such expressions with Boolean data type, the the simulation mechanism
check the values to meet the expression. Learn more about evaluating logical expressions >1067
Related pages
• SysML Parametric Diagram(see page 523)
• Modeling parametric constraints1068
Copy
1066 https://docs.nomagic.com/display/CSTTWRT/Mathematical+equation
1067 https://docs.nomagic.com/display/CSTTWRT/Logical+expression
1068 https://docs.nomagic.com/display/SYSMLPTWRT/Modeling+parametric+constraints
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
550
A Copy relationship is a dependency between a supplier requirement (master) and a client requirement
(slave), specifying that the client requirement text is a read-only copy of the supplier requirement text.
In other words, by creating a Copy dependency between two Requirements, you copy the text property
from the supplier to the client.
To create a Copy dependency between two requirements on the diagram
1. On the diagram, select a client Requirement symbol (slave), a symbol you want to be a copy of
the supplier Requirement (master). The smart manipulator appears.
2. Select the Copy command as depicted in the preceding figure and connect the client
Requirement to the supplier Requirement.
3. The Copy path goes yellow because of violation of the rule Invalid Slave Requirement text
meaning the text of the slave Requirement must be the same as of the master Requirement.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
551
Click the Copy path and, in the smart manipulator, select the Validation command.
4. The list of suggested solvers appears. Select Copy text of the supplier requirement to the
client requirement to create and sustain this dependency in your model correctly.
Ignoring solver
You may select other solvers but note:
• Remove Copy dependency - removes the dependency from the diagram and the
entire model.
• Ignore - ignores the violation and the dependency is created and sustained in the
model with the violation.
Related pages
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
• Validation1069
Derive
A 'Derive' relationship is a dependency between two requirements (a derived requirement and a source
requirement), where the derived requirement is generated or inferred from the source requirement.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Design Constraint
A Design Constraint is a requirement that specifies a constraint on the implementation of a system or
on a part of it.
Related diagrams
• Requirement Diagram(see page 518)
1069 https://docs.nomagic.com/display/MDTWRT/Validation
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
552
• Requirement Table(see page 538)
Directed Feature
A directed feature is a feature which applies the «DirectedFeature» stereotype. It specifies that the
feature is provided, required, or both required and provided by an owning block. Directed features can
appear in compartments for the various kinds of properties and behavioral features.
Related diagrams
• SysML Internal Block Diagram(see page 520)
• Specifying feature directions1070
Distributed Property
A Distributed Property is a property of a Block or a Value Type, used to apply a probability distribution
to the values of the property. Specific distributions can be defined by applying a subclass of the
DistributedProperty stereotype to the property.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Domain
A Domain block represents an entity, a concept, a location, or a person from the real-world domain. A
domain block is part of the system knowledge.
1070 https://docs.nomagic.com/display/SYSMLPTWRT/Specifying+feature+directions
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
553
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Related pages
• SysML Block Definition Diagram (see page 519)
Environmental Effect
An Environmental Effect is an influence on the system from the environment without communicating
with it directly.
Example
• Temperature or Humidity.
Related diagrams
• SysML Use Case Diagram(see page 526)
Expose
The Expose relationship relates a View(see page 571) to one or more model elements. Each model
element is an access point to initiate the query. The View and the model elements related to the View
are passed to the constructor when it is invoked. The method describes how the exposed elements are
navigated to extract the desired information.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
554
Related diagram
• Views and Viewpoints Diagram(see page 527)
Extended Requirement
An Extended Requirement is a standard Requirement subtype, which adds some properties to a
requirement element. These properties such as a source, risk, and verify method are important for the
requirement management. Specific projects should add their own properties. All these properties are
now available in the standard Requirement Specification window and Requirements Table. If any of
these property values is specified, a requirement is automatically converted to ExtendedRequirement.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
External
An External block is a block that represents an actor. It facilitates a more detailed modeling of actors
like ports or internal structures.
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
555
Related pages
• SysML Block Definition Diagram (see page 519)
External System
An External System is a system that interacts with the system under development.
Example
• Information server.
• Monitoring system.
Related diagrams
• SysML Use Case Diagram(see page 526)
Flow Port
Flow Port is deprecated in accordance with SysML specification and is defined for backward
compatibility. The functionality of non-atomic Flow Ports is supported with Proxy Ports(see page
562) typed by Interface Blocks(see page 559) owning Flow Properties(see page 558). Flow Properties
are not deprecated. Learn how to define interfaces >>(see page 152)
A Flow Port is a port that specifies the input and output items that can flow between a Block and its
environment. Flow Ports are interactions points through which data, material, or energy “can” enter or
leave the owning Block. The specification of what can flow is achieved by typing the Flow Port with a
specification of things that flow. This can include typing an atomic Flow Port with a single type (Block,
Value Type, or Signal) representing the items that flow in or out, or typing a non-atomic Flow Port with a
Flow Specification which lists multiple items that can flow. In general, Flow Ports are intended to be
used for asynchronous, broadcast, or send-and-forget interactions. Note that only non-atomic Flow
Ports can be conjugated. Once conjugated, all the directions of the typing Flow Specification's items are
negated.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
556
Related pages
• Hiding direction arrow on port shape(see page 166)
• SysML Internal Block Diagram(see page 520)
Flow Specification
A Flow Specification specifies inputs and outputs as a set of flow properties that list can be displayed in
a flow properties compartment. A flow specification is used to type Flow Ports, in order to specify
items which can flow via the ports.
Flow Specification is deprecated in accordance with SysML specification and is defined for
backward compatibility.
Related diagrams
• SysML Block Definition Diagram (see page 519)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
557
Flow Property
A Flow Property signifies a single flow element to/from a block with a direction prefix (in, out, inout).
Flow properties are listed in a compartment labeled flow properties.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Full Port
A Full Port is a port which is considered as a separated element of owning Blocks. It may have internal
parts or behaviors that support interactions with owning Blocks.
Related pages
• Hiding direction arrow on port shape(see page 166)
• SysML Internal Block Diagram(see page 520)
Functional Requirement
A Functional Requirement is a requirement that specifies a behavior that a system or a part of a system
must perform.
Related diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
558
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Interface Block
An Interface block is a special kind of block for typing proxy ports. It has no behaviors or internal parts.
Normally, it contains a set of flow properties that can be shown in the flow properties compartment.
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Related pages
• SysML Block Definition Diagram (see page 519)
Interface Requirement
An Interface Requirement is a requirement that specifies the ports for connecting systems and parts of
a system. Optionally, it may include the items that flow across the connector and/or the Interface
constraints.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Invocation on Nested Port Action
An Invocation on Nested Port Action is an invocation action that applies the
«InvocationOnNestedPortAction» stereotype which extends the UML’s on Port property to support
nested ports.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
559
Related diagrams
• SysML Activity Diagram(see page 525)
Moe
Moe (measure of effectiveness) represents a parameter whose value is critical for achieving the desired
cost effectiveness mission.
Related diagrams
• SysML Parametric Diagram(see page 523)
Objective Function
An Objective Function (also known as 'optimization' or 'cost function') is used for determining the
overall value of an alternative in terms of weighted criteria and/or Moe's.
Related diagrams
• SysML Parametric Diagram(see page 523)
Part Property
A Part Property is a property that specifies a part with strong ownership and coincidental lifetime of its
containing Block. It describes a local usage or a role of the typing Block in the context of the containing
Block. Every Part Property has composite AggregationKind and is typed by a Block. Part Properties are
displayed in the parts compartment.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
560
After setting a Block as a type for a Part Property the Composite Association is automatically
created. You can see it in the Compartment area under the Relations node.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Participant Property
Participant properties can be the ends of connectors owned by an Association Block(see page 544). The
keyword «participant» before a property name indicates the property is stereotyped by
ParticipantProperty. The types of participant properties can be elided if desired. They are always the
same as the corresponding association end type.
Related pages
• Creating Association Block1071
• Using Association Block as Connector type1072
Performance Requirement
A Performance Requirement refers to a requirement that quantitatively measures the extent to which a
system or a system part satisfy a required capability or condition.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Physical Requirement
A Physical Requirement specifies the physical characteristics and/or physical constraints of a system or
a system part.
1 https://docs.nomagic.com/display/SYSMLPTWRT/
107
Defining+Blocks+in+Block+Definition+Diagram#DefiningBlocksinBlockDefinitionDiagramCreatingAssociationBlock
1072 https://docs.nomagic.com/display/SYSMLPTWRT/Using+Association+Block+as+Connector+type
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
561
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Proxy Port
A Proxy Port is a port that specifies features of owning Blocks(see page 545) or Part Properties(see page 560)
that are available to external blocks through external Connectors1073 to the ports. It can only be typed
by Interface Block(see page 559).
Related pages
• Hiding direction arrow on port shape(see page 166)
• SysML Internal Block Diagram(see page 520)
Quantity Kind
A Quantity Kind (in SysML 1.0 and 1.1, called ‘Dimension’) is a kind of quantity that can be measured
using defined and unrestricted units of measurement. For example, length, a quantity kind, may be
measured by meter, kilometer, or foot units.
The only valid use of a Quantity Kind instance is to be referenced by the quantity kind
property of a Value Type or Unit stereotype.
1073 https://docs.nomagic.com/display/MDTWRT/Connector
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
562
Related diagrams
• SysML Block Definition Diagram (see page 519)
Reference Property
A Reference Property is a property that specifies a reference of its containing Block to another Block.
Every Reference Property has ‘none’ AggregationKind and is typed by a block. Reference Properties are
displayed in the ‘references’ compartment.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Refine
A 'Refine' relationship is a dependency that describes how a model element or a set of elements refine
a requirement. For example, a use case or activity diagram may be used to refine a text-based
functional requirement. Alternatively, it may be used to show how a text-based requirement refines a
model element. In this case, some elaborated text could be used to refine a less fine- grained model
element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
563
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Requirement
A Requirement specifies a capability or a condition that must (or should) be satisfied. Requirements are
used to establish a contract between the customer (or other stakeholders) and those responsible for
designing and implementing the system. A requirement can also appear on other diagrams to show its
relationship to other modeling elements.
When a requirement nests other requirements, all the nested requirements apply as part of the
container requirement (the requirement that contains all the nested requirements). Deleting the
container requirement will thus delete all the nested requirements it contains; a functionality inherited
from UML.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Satisfy
A 'Satisfy' relationship is a dependency between a requirement and a model element that fulfills that
requirement. As with other dependencies, the arrow direction points from the satisfying (client) model
element to the (supplier) requirement that is satisfied.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
564
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Sensor
A Sensor is a special external system that forwards information from the environment to the system
under development.
Example
• Temperature sensor.
Related diagrams
• SysML Use Case Diagram(see page 526)
Subsystem
A Subsystem is typically a large, encapsulated block within a larger system.
You can convert any Block to a Subsystem if you decide that the appropriate Block is decomposed. It
may be called a system (i.e., Power Subsystem, Brake Subsystem, Lightening Subsystem).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
565
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Converting a Block to Subsystem
To convert a Block to Subsystem
1. Right-click a Block.
2. Select Refactor > Convert To > More Specific > Subsystem.
The Block is converted to a Subsystem.
Related pages
• SysML Block Definition Diagram (see page 519)
System
A System is an artificial artifact consisting of blocks that pursue a common goal which cannot be
achieved by the system's individual elements. A block can be software, hardware, a person, or an
arbitrary unit.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
566
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Related pages
• SysML Block Definition Diagram (see page 519)
System Context
A System context element is a virtual container that includes the entire system and its actors.
You can convert any Block to System Context if you decide that the appropriate Block is decomposed. It
may be called a system (i.e., Power Subsystem, Brake Subsystem, Lightening Subsystem).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
567
Visibility representation
In SysML, properties and operations of the Block are public. Visibility representation literals, like
+, #, ~, -, are not displayed in the Containment tree or in the element symbol on a diagram.
Converting a Block to System Context
To convert a Block to System Context
1. Right-click a Block.
2. Select Refactor > Convert To > More Specific > System Context.
The Block is converted to System Context.
Related pages
• SysML Block Definition Diagram(see page 519)
Test Case
A Test Case (Activity / StateMachine / Interaction) is a method for verifying a requirement.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Trigger on Nested Port
A Trigger on Nested Port is a trigger that applies the «TriggerOnNestedPort» stereotype extending the
UML’s Port property of the trigger to support nested ports.
Related diagrams
• SysML Activity Diagram(see page 525)
Unit
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
568
A Unit represents a standard unit of measure. For example, metre, kilometre, or foot are units of
length. Units are used to specify Value Properties(see page 569).
Related pages
• Using Units(see page 199)
• Customizing Units(see page 206)
• SysML Block Definition Diagram(see page 519)
• SysML Internal Block Diagram(see page 520)
Usability Requirement
A Usability Requirement specifies the fitness for use of a system for its users and other actors.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
User System
An User System is a special external system that serves as medium between a user and the system
without having its own interests in the communication.
Example
• Input Device or Display.
Related diagrams
• SysML Use Case Diagram(see page 526)
Value Property
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
569
A Value Property is a property that specifies the quantitative property of its containing Block. Every
Value Property has composite AggregationKind and is typed by a SysML Value Type. Value Properties
are displayed in the values compartment.
The name of the Value Property must be without space. Otherwise, the SysML Parametric
Diagram(see page 523) will not calculate results correctly.
Related diagrams
• SysML Internal Block Diagram(see page 520)
Value Type
A Value Type is defined as a stereotype of UML Data Type to establish a more neutral term for system
values that may never be given a concrete data representation. A Value Type adds an ability to carry a
units (see page 568)of measure of a Quantity Kind(see page 562) associated with the value.
Use the QUDV model library(see page 208) to find all standard value types.
When specifying the Value Type for a Value Property(see page 569), you can select one of the following:
• Unitless Value Type.
• Value Type with specified unit(see page 568).
Look at the table below to see the differences.
• If you cannot find the Value Type you need, you can create a custom Value Type. Learn
how to create a custom Value Type >>(see page 0)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
570
• If you cannot find the unit (see page 568)you need, you can create a custom Unit. Learn
how to create a custom units >>(see page 207)
If you want to specify the Value Type for a Value Property, follow the procedures in the Using Units(see
page 199) page.
Value
Type
Name construction
Purpose
Unitless
Quantity name, e.g.
distance.
Use this to create a general-purpose
model. Instance Specifications1074 and
its Slots can contain different units of
the same Block(see page 545).
With
specified
units(see
Quantity and unit
names, e.g.
distance[metre].
Use this to create a specific-purpose
model. Instance Specifications1075 and
its Slots can contain the same units of
the same Block(see page 545).
page 568)
Example
Related diagrams
• SysML Block Definition Diagram (see page 519)
Verify
A 'Verify' relationship is a dependency between a requirement and a test case or a model element that
can determine whether the system fulfills the requirement. As with other dependencies, the arrow
direction points from the (client) test case to the (supplier) requirement.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
View
A View is a representation of a whole system from the perspective of a single Viewpoint(see page 572). A
view can only own element import, package import, comment, and constraint elements.
1074 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
1075 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
571
Related diagram
• Views and Viewpoints Diagram(see page 527)
Viewpoint
A Viewpoint is a specification of the conventions and rules for constructing and using a view for the
purpose of addressing a set of stakeholder concerns. The languages and methods for specifying a View
can reference methods and languages in another Viewpoint. They specify the elements expected to be
represented in the view that may be formally or informally defined.
A viewpoint cannot own any operation nor attribute.
A Viewpoint has a Method property which describes the expectation of what stakeholder(s) wish to see
exposed from the model, how the stakeholder wishes the information to be structured and presented,
and in what kind of artifact the stakeholder wants to consume the information. It is the set of rules that
describe how the view should express the information from the model to address the stakeholder
concerns. The methods are used to construct the Views(see page 571) for the Viewpoint.
You can use these predefined Viewpoints with a Method property defined:
Predefined Viewpoint
Definition
Simple Paragraph
A simple paragraph is a text fragment without a title
and indented in the first row.
Formal Paragraph
The formal paragraph is a text fragment with a title.
The first line of the formal paragraph text is indented.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
Example
572
Predefined Viewpoint
Definition
Ordinary Paragraph
An ordinary paragraph is an itemized list. A new item
in the itemized list is created from each exposed
element.
Figure
The figure viewpoint allows constructing a viewpoint
that specifies how an image
object should be included into the view. The image
object is constructed from the diagram shape
that is exposed by the view.
Table
The viewpoint that uses the predefined Table method
implementation is used to produce a table
view in our constructed report. The table can be
constructed in two ways. The table view can
be produced by exposing the table shape directly or
by exposing an element or collection of
elements and specifying what properties of exposed
elements should be displayed as columns.
Title Page
The title page viewpoint defines what property of
exposed elements is used as a paragraph title source.
Example
Grouping Viewpoint
Related diagram
• Views and Viewpoints Diagram(see page 527)
Trace
A 'Trace' relationship is a dependency between a requirement and an arbitrary model element traced
by this requirement.
Related diagrams
• Requirement Diagram(see page 518)
• Requirement Table(see page 538)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
573
Getting help and support
FAQ
Before calling or registering an issue, please have a look in our FAQ section1076. It is constantly updated
and may contain an answer to your question, or issue. If your questions are unanswered in this section,
then you have the option of posting your question, or issue, in our Forum1077 page. If you are interested
in reporting an issue, then please continue perusing this page to find out about all the support we
provide for you.
Forum
Discuss and get answers about our modeling tools in the No Magic Community Forum1078. It already
has thousands of publicly available posts. You are welcome to post your comments and questions
there.
Customer Support
We provide free professional support for:
• Registered users with a valid No Magic Software Assurance contract1079 (SA). SA provides you
with technical support, software upgrades and maintenance releases at no additional cost for a
contract period.
• Pre-sales users during the evaluation period.
• New customers for 30 days.
• Inquiries about registration, licensing and product updates.
Reporting issues
To create a new issue or browse the existing ones, log in to the No Magic Customer Support
System1080.
Please refer to Reporting Issues1081 to find instructions on how to dump threads, memory
heap, and memory histogram to files.
If you are a registered user and have already connected to No Magic support system, you can create an
issue, or comment on your support issue(s), through email as well.
Reporting Issues Through Email
1076 https://www.nomagic.com/support/faq
1077 https://community.nomagic.com/
1078 https://community.nomagic.com/
1079 https://www.nomagic.com/support/sales-and-licensing/software-assurance-maintenance-contracts
0 https://www.magicdraw.com/main.php?
108
ts=customer_support&cmd_go_to_login=1&menu=customer_support_management&back_cmd=cmd_show
1081 https://docs.nomagic.com/display/MDTWRT/Reporting+Issues
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
574
Reporting Issues Through Email
The e-mail address for registered users to access our customer support system
is support@nomagic.com1082.
The system allows you to include keywords in the email’s subject line. These keywords will enable us
to route the issue to the proper support organization more quickly and resolve the issue in a more
timely manner. They also allow the definition of many fields for the newly created issue (reporter,
project, priority, affected components, affected version).
Support Issues
Support Issues can only be reported or commented on from the email address registered in
your www.nomagic.com1083 account.
The parameters are listed below:
• #PROJECT
• #SECURITY_LEVEL
Format of the Email
For example, if you have a question about documentation in UPDM, you might submit the following
email:
This email sent from the registered user will create a support issue in the UPDM project. The Issue’s
component will be Documentation and Requirements Management and its severity will be low.
Parameters
1. Parameters should be listed in the email subject line with a single space between them.
2. No commas should be used between parameters.
3. No spaces should be used in the body of the parameter.
4. If a parameter value contains spaces, you must replace each space with two underscore
characters. For instance, #COMPONENT=Test__Component associates the issue to Test
Component. If you specify an invalid component or none at all, the issue is associated to No
Component by default.
Emailing support requests can be faster compared to the web interface http://
knowledgebase.nomagic.com1084; however, when reporting issues through email, additional
1082 mailto:support@nomagic.com
1083 http://www.nomagic.com/
1084 http://knowledgebase.nomagic.com/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
575
important information might be lost. This information loss can be mitigated by including parameters
from the list above.
If an email has email addresses in either the CC: or the BCC: fields, they will be added to the support
issue as External Watchers. All watchers receive email notifications about any activity on the issue.
Commenting on a Support Issue
Commenting on a Support Issue
To comment on an existing support issue, please reply to the notification email. The body of the
email will become your comment on the issue. If you send attachments with your email, they will
become attachments on the issue.
Issue ID
It is important that the issue id (e.g. [MDUMLCS-2058]) exists in the subject line.
Not a registered user
If a commenter is not registered in www.nomagic.com1085, his or her comment is not recorded in
the support issue.
The support system provides:
• Submitted issues status tracking.
• Ability to submit private and public questions, suggestions, improvements, and problems.
• Ability to search through the existing public issues, view status of your issues, provide your vote
for suggestions.
Customer Support Levels
A customer support level determines customer access rights and the response time for support
requests. To find out your customer support level, please, visit the No Magic Customer Support
System1086.
Support
Level
Applies For
Ensured Support
Limited
Support
Customer with no Software Assurance
(SA) 1087
• Self-help: FAQ, Knowledge base,
documentation, online demos, No Magic
Community Forum.
• Inquiries about registration, licensing and
product updates.
1085 http://www.nomagic.com/
6 https://www.magicdraw.com/main.php?
108
ts=customer_support&cmd_go_to_login=1&menu=customer_support_management&back_cmd=cmd_show
1087 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
576
Support
Level
Applies For
Ensured Support
Full
Support
• Customer with SA1088
• Customer with valid evaluation
key.
• Professional online support with trouble ticket
status tracking.
• Inquiries about No Magic software problems
and usage.
• Response within business hours, with 24 - 48
hours response time based on severity*.
• Reasonable No Magic efforts to provide a
usable work-around solution or to correct the
issue in an upcoming maintenance release or
update.
Premium
Support
• Customer with SA
• VIP customer** (marked as
VIP)
• Response within business hours, with 24
hours response time.
Dedicated
Support
• Block hours are purchased1089
• Includes integration, customization, migration,
plugin development, remote or onsite
support.
**VIP customers are usually our partners.
Attention
* Severity let us know the impact of the problem on your business.
• Severity 1: Critical business impact or system down, this condition requires a solution.
• Severity 2: Significant business impact, this indicates the program is usable but is
severely limited.
• Severity 3: Some business impact, this indicates the program is usable with less
significant features.
• Severity 4: Minimal business impact.
Support Period
During the support period covered by our SA1090, you can also report any software problems or
errors. If reported, and reproducible, an issue in the software exists, and the issue significantly
impacts the usability of the software, No Magic agrees to make reasonable efforts to provide a
usable workaround solution or to correct the problem in an upcoming maintenance release or
update.
End-of-Life Policy
The end of life policy depends on the release type in use: Long-Term Releases (LTR) or Future Releases
(FR).
1088 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
1089 https://www.nomagic.com/support/dedicated-support
1090 https://www.nomagic.com/support/sales-and-licensing/software-assurance-maintenance-contracts
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
577
The Long-Term Releases (LTR) are extremely reliable and rock-solid. No Magic provides guaranteed
support (including service packs and private patches) until the next Long-Term Release is released,
approximately every two years. Longer-term support, of up to five years, for a Long-Term Release, is
available for an additional charge. For more information about the Long-Term Releases, see http://
www.nomagic.com/support/long-term-releases.html1091
Support for Feature Releases (FR) discontinues when the next Feature Release is released. Therefore,
bug fixes for old Feature Releases (FR) are unavailable.
Providing Patches
We support and provide patches only for the users who have Software Assurance contracts
(SA)1092 on their purchased products, so please make sure that you are covered.
Public service packs are released primarily for the newest versions. As we understand that switching
from one version to another can take some time, in the case of significant issues, we provide service
packs, or private patches, when applicable.
We always strongly recommend using the newest version because it contains all the newest fixes,
usability features, new capabilities, and support for standards and technologies.
Other contacts:
• Sales and Marketing: sales@nomagic.com1093
• Academic Program: academic@nomagic.com1094 - e-mail address for questions regarding
academic or site license discounts and quotes.
• Training: training@nomagic.com1095
• Professional Services: pso@nomagic.com1096
1097
Related pages
• Reporting Issues1098
• Configuration files1099
1100
Reporting Issues
On this page
1091 https://www.nomagic.com/support/long-term-releases
1092 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
1093 mailto:sales@nomagic.com
1094 mailto:academic@nomagic.com
1095 mailto:training@nomagic.com
1096 mailto:pso@nomagic.com
1097 https://docs.nomagic.com/display/MDTWRT/Support
1098 https://docs.nomagic.com/display/MDTWRT/Reporting+Issues
1099 https://docs.nomagic.com/display/MDTWRT/Configuration+files
1100 https://docs.nomagic.com/display/MDTWRT/Support
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
578
1101
Need help? Send notifications of a problem, suggest improvements for our modeling tools, or ask
about new features.
Report an issue when the program is unresponsive
If you encounter an issue or the modeling tool becomes unresponsive, a separately executable tool is
provided for analyzing the status of the process to aid in bug submission. In these situations, manually
start the submit_issue.exe file (located in the <modeling tool installation directory>\bin folder). After you
start submit_issue.exe, the Report an Issue dialog opens.
In this dialog, you can easily dump threads, memory heap, or memory histogram into files and provide
those files when reporting an issue to the support team.
The Report an Issue dialog in the offline mode
First of all, select the specific instance of the modeling tool to dump reports from. Then, click one of the
following:
• Dump Threads to Log File - threads will be dumped to a Log file.
• Dump Memory Heap to File - memory heap will be dumped to a new .hprof file.
• Dump Memory Histogram to File - a memory histogram will be dumped to a new .txt file.
1101 https://docs.nomagic.com/display/MDTWRT/Reporting+Issues
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
579
View and Submit Internal Errors
Internal errors are displayed as notifications by default. The internal error does not necessarily mean
damage to your data, but can be a reason for unexpected tool behavior. We highly recommend
submitting internal errors to No Magic for further investigation. We strongly recommend attaching the
log file. An internal error message appears at the bottom of the modeling tool.
Example of Internal Error message in MagicDraw modeling tool
To view internal errors
To view internal errors you must open the Internal Errors dialog, using one of the two methods
outlined below:
• Click the View internal errors button in the Notification Window.
• Click the notification icon on the status bar.
To submit an error
1. Open the Internal Errors dialog.
2. Click the Export To File button.
3. Specify the name and location of the error log file and click Export.
4. Report an issue to the customer support1102 and attach the exported error log file.
1102 https://docs.nomagic.com/display/MDTWRT/Support
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
580
Internal errors will not be shown for 24 hours (or until you restart your modeling tool) after
clicking Clear And Close buttons.
To Display Internal Errors
1. From the Options menu, select Environment. The Environment options dialog will open.
2. In the General options group, click Internal Errors.
3. In the Internal Errors options list change the Display Internal Errors option value to true to
display internal errors.
1103
Related pages
• Support1104
• Configuration files1105
1106
Improving performance
When working with very large models or a number of diagrams at a time, the modeling tool
performance may decrease. To increase efficiency, we suggest the following solutions:
• Increase memory allocation value1107 (java heap size). If you want to make sure you have a
sufficient amount of memory allocated to your modeling tool, use the memory monitor1108 to
track memory usage.
• Increase an active validation period1109 and/or do not keep unused diagrams open.
• Split a project into several separate project files, and load only the files that you work with. This
may help only if your project contains several parts with minimal dependencies between
them. For more information, see Project partitioning1110.
• Use Garbage Collector1111 to free unused memory.
• Cancel the background tasks1112 that run too long.
• Set the limit of open diagrams in the Environment Options dialog (Options > Environment >
General > General > Diagram Tabs Limit).
1113
1103 https://docs.nomagic.com/display/MDTWRT/Reporting+Issues
1104 https://docs.nomagic.com/display/MDTWRT/Support
1105 https://docs.nomagic.com/display/MDTWRT/Configuration+files
1106 https://docs.nomagic.com/display/MDTWRT/Reporting+Issues
1107 https://docs.nomagic.com/display/MDTWRT/Memory+allocation
1108 https://docs.nomagic.com/display/MDTWRT/Memory+monitor
1109 https://docs.nomagic.com/display/MDTWRT/Active+validation+period
1110 https://docs.nomagic.com/display/MDTWRT/Project+partitioning
1111 https://docs.nomagic.com/display/MDTWRT/Memory+monitor
1112 https://docs.nomagic.com/display/MDTWRT/Background+Task+Manager
1113 https://docs.nomagic.com/display/MDTWRT/Improving+performance
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
581
Related pages
• MagicDraw getting started1114
• Customizing environment options1115
• Customizing and Selecting Perspective1116
• Configuration files1117
• Disabling inbound network activity1118
• Support1119
1120
Customizations
Customizing environment options
You can customize the application environment according to your preferences via the Environment
Options dialog.
To open the Environment Options dialog
• From the Options menu, select Environment.
1114 https://docs.nomagic.com/display/MDTWRT/MagicDraw+getting+started
1115 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
1116 https://docs.nomagic.com/display/MDTWRT/Customizing+and+Selecting+Perspective
1117 https://docs.nomagic.com/display/MDTWRT/Configuration+files
1118 https://docs.nomagic.com/display/MDTWRT/Disabling+inbound+network+activity
1119 https://docs.nomagic.com/display/MDTWRT/Support
1120 https://docs.nomagic.com/display/MDTWRT/Improving+performance
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
582
The Environment Options dialog contains various project-independent options grouped by different
features (for example, diagrams, Model Browser, code engineering). Each option group is available in a
different tab. Tabs are displayed in the tab tree.
An option value can be simply changed by typing a new value, setting a value to true / false, or selecting
a value from the list. Click the Reset to Defaults button to restore default option values.
Changing options
In order to change a desired environment option, first of all you may need to find it. In this case, use
the quick filter1121 in the dialog. Filtering is performed in the all available options, not only in the
selected option group.
For better understanding an option you can read its description that tells what is the effect of changing
the option value.
1121 https://docs.nomagic.com/display/MDTWRT/Quick+filter
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
583
To read the option description
1. Make sure that the Show Description mode is turned on in the Environment Options dialog. To
turn the Show Description mode on or off, click the Show Description button on the tab toolbar.
2. Click an option, whose value you want to change.
3. Read the option description in the area below the tab options list. You are ready now to
change the option value.
1122
Creating path variables
The main purpose for the path variables feature is to give additional sharing flexibility. It enables you to
store paths in your project as named variables that can be easily adjusted on different machines.
Path Variables may be used in:
• Code engineering classpath
• Working directories
• Hyperlinks
• Modules paths
• Reports
To create a path variable
1. In the main menu, go to Options > Environment. The Environment Options dialog1123 opens.
2. In the left part of the dialog expand the General element and select Path Variables.
3. In the Path Variables area click the Add button. The Path Variable dialog opens.
1122 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
1123 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
584
4. In the appropriate boxes enter the path variable name and description.
5. Next to the Value box, click
, navigate to the desired location and click Open.
6. In the Path Variable dialog, click OK. Your custom path variable is created and shown in
the Defined Path Variables list.
7. In the Environment Options dialog, click OK.
Every user can specify different values of the same path variables. However path variables should be
resolved only on demand, when they are used. If a modeling tool determines you can use path
variables, once you specify your absolute path, the application automatically opens the Use Path
Variables dialog box. For example, this dialog may open when in your project, you try to use another
project From predefined location and add a new path to the Paths to used projects list.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
585
If you do not want your modeling tool to automatically display the Use Path Variables dialog box, clear
the Show suggestion to use path variables check box. To use the original path and cancel this dialog,
click the Use Original button.
To use a suggested path variable
• In the Available forms list, select a path and click the Use Selected button.
If you have your own documentation running on the local server, you can define the path in the
documentation.server option.
1124
Configuration files
On this page
1125
1124 https://docs.nomagic.com/display/MDTWRT/Creating+path+variables
1125 https://docs.nomagic.com/display/MDTWRT/Configuration+files
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
586
A configuration file is where the initial parameters and settings of a program are defined. All default
parameter values come with a program installation but you can edit configuration files and define your
own values, for example, define the Java home directory. This page describes the locations where you
can find the configuration files of your modeling tool, how you can modify them and change their
default storage location. Configuration files can be used to:
• Define application arguments
• Set the Java Home
• Change Java parameters (such as memory allocation)
• Update default Java classpath (advanced: for plugin developers)
The configuration files can be opened and modified using any standard text or code editor. Once
modified, changing the default location of configuration files can allow you to store multiple
configuration files for different versions of the tool.
This page covers all modeling tools:
• MagicDraw
• Cameo Enterprise Architecture
• Cameo Systems Modeler
• Magic Software Architect
• Magic Cyber Systems Engineer
• Magic Systems of Systems Architect
By default the configuration and auxiliary files of a modeling tool are stored in the following location:
OS
Configuration files storage
Windows
Vista/7/8/10
C:\Users\<USERNAME>\AppData\Local\.<modeling tool
name>\<modeling tool version number>
Other OS
<user.home>/.<modeling tool name>/< modeling tool version
number>
Modeling tool file naming
In a file system, modeling tools' folders are named as follows:
Modeling tool
File name
MagicDraw
magicdraw
Cameo Enterprise Architecture
cameoea
Cameo Systems Modeler
cameo.systems.modeler
Magic Software Architect
magic.software.architect
Magic Cyber Systems Engineer
magic.cyber.systems.engineer
Magic Systems of Systems Architect
magic.systems.of.systems.architect
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
587
Getting the path to configuration files
If you do not know the exact path to your modeling tool configuration files, follow the steps below to
get it.
To get the path to configuration files
1. From the Help menu, select About <modeling tool name>. The About dialog opens.
2. Click the Environment tab.
3. Click the hyperlink next to Configuration Files. The folder containing modeling tool
configuration files opens.
You can also save configuration files in any of the following locations:
• <modeling tool installation directory>
• Common Application Data location (on Windows OS)
• Another directory
Storing configuration files in the installation directory or Common Application
Data location on Windows
Note
The Common Application Data location on Windows Vista/7/8/10 is C:\ProgramData.
To store configuration files in the modeling tool installation directory or Common Application Data
location on Windows
1. Open the <modeling tool name>.properties file, which is located in <modeling tool installation
directory>\bin.
2. In the JAVA_ARGS line, change the -DLOCALCONFIG property value according to the following
table:
-DLOCALCONFIG
=true
=false
Windows OSx
Common Application Data
Modeling tool installation directory
Other
Modeling tool installation directory
Modeling tool installation directory
Important!
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
588
It is important to add the -DWINCONFIG=false parameter on Window OS, otherwise, the
configuration files will not be stored in the modeling tool installation directory.
You may also store configuration files in your custom location.
Storing configuration files in a custom location
Note
If you have defined to store files in the modeling tool installation directory, files will not be
stored in the defined location.
To store modeling tool configuration files in a custom location
Do either:
1. Open the <modeling tool name>.properties file, which is located in <modeling tool installation
directory>\bin.
2. In the JAVA_ARGS line, add the following property:
-Dlocalconfig.location=<absolute path to a custom location>
Sample property value
-Dlocalconfig.location\=E\:\\temp\\innerPack
Or:
1. Go to the folder, where the configuration files are stored(see page 588).(see page 586)
2. Create a new file named magicdrawredirect.
3. In the file, type the absolute path to the folder, wherein modeling configuration files will
be saved, e.g., C:/<directory name>.
1126
Related pages
• Customizing environment options1127
• Customizing and Selecting Perspective1128
1129
1126 https://docs.nomagic.com/display/MDTWRT/Configuration+files
1127 https://docs.nomagic.com/display/MDTWRT/Customizing+environment+options
1128 https://docs.nomagic.com/display/MDTWRT/Customizing+and+Selecting+Perspective
1129 https://docs.nomagic.com/display/MDTWRT/Configuration+files
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
589
Setting project options
Use the Project Options dialog to do the following:
• Specify general project-specific options.
• Specify summarizing information (for example, diagram author, diagram creation and
modification dates) that will be displayed on each diagram.
• Specify symbol property styles for shapes, paths, diagrams, and stereotypes within the project.
For the instructions how to create, edit, clone, import /export, or remove symbol
property styles, please refer to Style Engine.
• Change default element property values.
For the instructions about setting the default element property values, please refer to
Default Property Values.
• Set general code generation or code reversing options as well as code formatting styles for
selected programming languages.
The Project Options dialog includes option groups, each designated for one of the above mentioned
features and containing lists of corresponding options. Groups are represented using the tree
structure.
An option value can be simply changed by typing a new value, setting a value to true / false, or selecting
a value from the list. Click the Reset to Defaults button to restore default option values.
To open the Project Options dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
590
• From the Options menu, select Project.
Changing options
In order to change a desired project option, first of all you need to find it in the Project Options dialog.
These options are grouped into categories to make it easier for you to locate them. Use the q1130uick
filter1131 to find find the desired option in the list. Filtering is performed in the all available options, not
only in the selected option group.
To make sure you selected the right option, first read its description and see if the effect of changing
the option value is what you expect to be done.
Make sure that the Show Description mode is turned on in the Project Options dialog.
To turn the Show Description mode on or off, click the Show Description button on the
following toolbar in the Project Options dialog.
1130 https://docs.nomagic.com/display/MDTWRT/Quick+filter
1131 https://docs.nomagic.com/display/MDTWRT/Quick+filter
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
591
To read the option description
1. Click an option that you want to change.
2. Read the option description in the area below the options list.
Applying OMG SysML Style
SysML plugin provides the visual style of OMG SysML Specifications (OMG SysML style) that you can
apply to your SysML model.
To apply the OMG SysML style to a SysML project
1. In the main menu, select Options > Project.
2. In the Project Options dialog, choose the Symbol styles on the left and select the OMG SysML
style on the right.
If you do not see the OMG SysML style
a. Click the Import button. The Open dialog opens.
b. Open the <md.install.dir>/templates/SysML directory and select OMG SysML
style.stl.
c. Click Open.
3. Click the Make Default button.
4. Click OK.
Your SysML project uses OMG SysML style as a default style.
To apply OMG SysML style to a SysML diagram
1. In the main menu, select Options > Project.
2. In the Project Options dialog, choose the Symbol styles on the left and select the OMG SysML
style on the right.
3. Click the Apply button.
4. In the Select Diagrams dialog, select a SysML diagram(s) and click OK.
5. Click OK in the Project Options dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
592
Applying OMG SysML style to existing SysML diagrams might distort the diagrams. Use the
automated layout features that optimize diagram layout for viewing.
Most common shortcut keys
The following table outlines the most commonly used shortcut keys:
What do you want to do?
Shortcut keys
Windows
OS X
Open the Find dialog
Ctrl+Shift+F
Cmd+Shift+F
Open the Quick Find dialog
Ctrl+Alt+F
Cmd+Alt+F
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
593
Open the Find and Replace dialog
Ctrl+R
Cmd+R
Remove both symbols from an active
diagram and element from the model
Ctrl+D
Cmd+D
Remove only a symbol from an active
diagram, but not the model element
Delete
Del
Select all shapes on an active diagram
Ctrl+A
Cmd+A
Select an element in the Containment
tree
Alt+B
Alt+B
Add more symbols to selection
Shift+Left mouse button
Shift+Left mouse button
Select elements of the same type
Alt+Left mouse button
Alt+Left mouse button
Open a list of possible elements to
assign when typing on a symbol
Ctrl+Spacebar
Ctrl+Spacebar
Add a new line in the compartment of
a shape, for example, create an
attribute for a class
Shift+Enter
Shift+Enter
Open element's Specification window
Enter
Enter
Open element's Symbol Properties
dialog
Alt+Enter
Alt+Enter
Open the Report Wizard
Ctrl+Shift+G
Cmd+Shift+G
See the list of recently opened
diagrams
F12
–
Cut a selected item
Ctrl+X
Cmd+X
Switch from List to Tree view in the
Select Element dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
594
Copy a shape or text
Ctrl+C
Cmd+C
Copy a shape
Drag the shape to the empty
place
on the diagram, while holding
down Ctrl
–
Paste
Ctrl+V
Cmd+V
Paste with new data
Ctrl+E
Cmd+E
Save
Ctrl+S
Cmd+S
Commit changes to the server
Ctrl+K
Cmd+K
Undo
Ctrl+Z
Cmd+Z
Redo
Ctrl+Y
Cmd+Y
Print
Ctrl+P
Cmd+P
Assign a shortcut key to print a report
Alt+ number 1 to 9
Alt+ number 1 to 9
Turn on the Full Screen mode
F11
–
Open a recently closed diagram
Ctrl+Shift+T
–
Paste a symbol style
Ctrl+Shift+V
Cmd+Shift+V
Reverse path direction
Draw the path while holding
down Alt
Draw the path while holding
down Alt
Reorder elements/properties in a list,
tree, and Specification window
Ctrl+Up
Alt+Up
Ctrl+Down
Alt+Down
Shift+F3
Shift+F3
F3
F3
Select a previous or next result in a tree
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
595
1132
Related pages
• Assigning shortcut keys1133
1134
Assigning shortcut keys
Most commonly used commands in a modeling tool have shortcut keys1135, allowing you to access the
commands quicker. However, you can assign custom shortcut keys to modeling tool commands and
change or remove already-existing shortcut keys.
To assign a new shortcut key to a command
1. From the main menu of a modeling tool, select Options > Environment. The Environment
Options dialog opens.
2. From the option group list on the left side of the dialog, select Keyboard.
3. Search for the command you need to assign a shortcut key to.
You can also search by the shortcut keys.
4. In the Press new shortcut key box, press the shortcut you want to assign. Do not type the
shortcut, but press the keys as you would when executing the command.
5. Click the Assign button. The assigned shortcut appears in the Current keys box.
6. Click OK.
The shortcut key is then assigned to the selected command and you can start using it.
1132 https://docs.nomagic.com/display/MDTWRT/Most+common+shortcut+keys
1133 https://docs.nomagic.com/display/MDTWRT/Assigning+shortcut+keys
1134 https://docs.nomagic.com/display/MDTWRT/Most+common+shortcut+keys
1135 https://docs.nomagic.com/display/MDTWRT/Most+common+shortcut+keys
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
596
Assigning a shortcut key.
Usage information
• You can assign multiple shortcut keys to one command.
• If you enter a shortcut key that is already assigned to another command, a notification
appears under the Press new shortcut key box.
• If you assign a shortcut key that is already assigned to another command, the shortcut
key is automatically unassigned from that command and assigned to the new one.
Removing shortcut keys
You can remove both default and custom shortcut keys.
To remove a shortcut key
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
597
1. From the main menu of the modeling tool, select Options > Environment. The Environment
Options dialog opens.
2. From the option group list on the left side of the dialog, select Keyboard.
3. Search for the command you need to assign a shortcut key to.
You can also search by the shortcut keys.
4. In the Current keys box, select the shortcut key you want to remove.
5. Click the Remove button. To remove all shortcut keys assigned to the selected command, click
the Remove All button.
6. Click OK.
Restoring shortcut keys
To restore all shortcut keys to their default values, open the Environment Options dialog,
select Keyboard, and click Reset to Defaults.
1136
Specifying project properties
On this page
1137
The Project Properties dialog provides general information about a project. You can add a title,
author, version, and project description using this dialog.
To open the Project Properties dialog
1. Open the project.
2. Select the Project Properties command from the File menu.
1136 https://docs.nomagic.com/display/MDTWRT/Assigning+shortcut+keys
1137 https://docs.nomagic.com/display/MDTWRT/Project+Properties+dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
598
Project properties dialog.
Title
The project title is assigned as a value of the project Documentation property1138.
1138 https://docs.nomagic.com/display/MDTWRT/Documentation+tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
599
Compatibility range
To specify compatibility range
1. Enter the Version value.
2. Enter the Compatible with. The value must be less or equal to the Version value.
3. Click OK after you are done.
Compatible With
Compatible With defines the compatibility range between two Standard/System profile
versions. Once specified, it helps to avoid read-only constraints in TWCloud projects when you
use earlier profile versions locally rather than those used in the server project.
When the Version of the Standard/System profile on your computer is earlier (e.g. 19.0 SP1)
than the Version of this profile on TWCloud (e.g. 19.0 SP3), but higher or equal to the value of
Compatible with (e.g. 19.0), you will still be able to edit TWCloud projects using the profile.
Advanced options
To use advanced options
1. Click More to see more options:
• See the list of shared packages in the Shared Packages tab. In this tab you can:
• Define a preferred path to the particular package. Click the ... button to select the
package1139 in the Preferred Path value box.
• Set the project as a standard/system profile by selecting the Standard/System
Profile check box.
Note
The Shared Packages tab is available for local projects only.
• The Used Projects tab shows the projects and standard/system profiles used in the open
project. Click the Open Project Usages button to open the Used Projects dialog1140,
where you can modify project usages.
• The Advanced tab shows project meta information. In this tab you can:
• Reset all project element IDs. All project elements have their own ID (a unique
identifier). While working with several related projects, you may receive a message
about duplicated element IDs. After clicking the Reset IDs button, new IDs will be
created for all project elements.
Note
Make sure the project you are resetting IDs for is not used in other projects.
• Reset the project ID. After clicking the Reset Project ID button, new IDs are created
for the project.
1139 https://docs.nomagic.com/display/MDTWRT/Selecting+elements
1140 https://docs.nomagic.com/display/MDTWRT/Managing+used+projects
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
600
You cannot reset the project ID for server projects.
1141
Related pages
• Creating projects1142
• Working with multiple projects1143
1144
Forward compatibility
The cross-version compatibility checking mechanism is implemented when a project with new feature
usages is loaded with an older version of the modeling tool. Currently, the cross-version compatibility
checking mechanism tracks feature usages of 19.0 SP1, 19.0 SP2, 19.0 SP3, and later service pack (SP)
versions that result in triggering Missing features detected notification in earlier versions. The
following table shows tracked features, the version they appear in, and whether the project can be
committed/saved without any consequences.
Feature name
Version
Secure to commit/save
Item Flow Management1145
19.0 SP2
Yes
Direct Flow in Activity diagrams
19.0 SP3
Yes
Important
Features required, but missing, in an earlier tool version (for example, 19.0) are memorized by
the cross-version compatibility checking mechanism. This process will continue with each
Service Pack release (i.e., 19.0 SP2 might have features that are missing in both 19.0 SP1 and
19.0).
1141 https://docs.nomagic.com/display/MDTWRT/Project+Properties+dialog
1142 https://docs.nomagic.com/display/MDTWRT/Creating+projects
1143 https://docs.nomagic.com/display/MDTWRT/Working+with+multiple+projects
1144 https://docs.nomagic.com/display/MDTWRT/Project+Properties+dialog
1145 https://docs.nomagic.com/display/SYSMLP190SP2/Item+Flow+Management
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
601
Developer Guide
Standard stereotypes in SysML plugin are defined in SysML Profile and MD Customization for SysML
Profile. Both profiles have their corresponding API classes:
com.nomagic.magicdraw.sysml.util.SysMLProfile1146and
com.nomagic.magicdraw.sysml.util.MDCustomizationForSysMLProfile1147, respectively. Each class
allows you to:
• Get a string constant for each property of stereotype (tag).
• Get a stereotype element.
• Check if an element is stereotyped.
Find JavaDoc of SysML plugin in <modeling tool installation directory>/openapi/docs/sysml_javadoc.zip
For example, Cameo_Systems_Modeler_190_no_install\openapi\docs\sysml_javadoc.zip
Find JavaDoc of Requirements plugin in <modeling tool installation directory>/openapi/docs/
requirements_javadoc.zip
For example, Cameo_Systems_Modeler_190_no_install\openapi\docs\requirements_javadoc.zip
Extract a .jar file and double-click the index.html to open it.
Related pages
Related docs
•
MagicDraw Developer's Guide 1148
SysML Profile
You need to import com.nomagic.magicdraw.sysml.util.SysMLProfile1149 to use this API class.
1146 http://jdocs.nomagic.com/182/requirements/com/nomagic/magicdraw/sysml/util/SysMLProfile.html
1147 http://jdocs.nomagic.com/182/sysml/com/nomagic/magicdraw/sysml/util/
MDCustomizationForSysMLProfile.html
1148 https://docs.nomagic.com/display/MD/Developer+Guide
1149 http://jdocs.nomagic.com/182/requirements/com/nomagic/magicdraw/sysml/util/SysMLProfile.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
602
Get a string constant for each property of stereotype (tag)
Usage includes “SysMLProfile.STEREOTYPE_PROPERTY_NAME”.
For example, SysMLProfile.ALLOCATED_ALLOCATEDFROM_PROPERTY returns a string of
“allocatedFrom”.
Get a stereotype element
Usage includes:
“SysMLProfile.getInstance(project).getStereotype()” - where project refers to a project that uses SysML
Profile.
“SysMLProfile.getInstance(element).getStereotype()” - where element refers to the element in a project
that uses SysML Profile.
For example, SysMLProfile.getInstance(project).getBlock() returns the reference to the «Block»
stereotype object.
Check if an element is stereotyped
Usage includes “SysMLProfile.isStereotype(Elem)” - where Elem is the element you would like to check.
For example, given an element “Elem”, SysMLProfile.isBlock(Elem) returns True if the element “Elem”
has «Block» stereotype applied, and returns false otherwise.
MD Customization for SysML Profile
You need to import com.nomagic.magicdraw.sysml.util.MDCustomizationForSysMLProfile1150 to use
this API class.
Get a string constant for each property of stereotype (tag)
Usage includes “MDCustomizationForSysMLProfile.STEREOTYPE_PROPERTY_NAME”.
For example, MDCustomizationForSysMLProfile.NUMBEROWNER_PREFIX_PROPERTY returns a string of
“prefix”.
Get a stereotype element
1150 http://jdocs.nomagic.com/182/sysml/com/nomagic/magicdraw/sysml/util/
MDCustomizationForSysMLProfile.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
603
Usage includes:
• “MDCustomizationForSysMLProfile.getInstance(project).getStereotype()” - where project refers to
the project which uses MD Customization for SysML Profile.
• “MDCustomizationForSysMLProfile.getInstance(element).getStereotype()” - where element refers
to the element in the project which uses MD Customization for SysML Profile.
For example, MDCustomizationForSysMLProfile.getInstance(project).getPartProperty() returns the
reference to the «PartProperty» stereotype object.
Check if an element is stereotyped
Usage includes “MDCustomizationForSysMLProfile.isStereotype(Elem)” - where Elem is the element you
would like to check.
For example, given an element “Elem”, MDCustomizationForSysMLProfile.isValueProperty(Elem) returns
True if the element “Elem” has «ValueProperty» stereotype applied, and returns false otherwise.
SysML Profile API Changes
SysML Profile API changes were made in relation to the SysML 1.4 support.
The following constants were moved from the com.nomagic.magicdraw.sysml.util.SysMLProfile1151 to
com.nomagic.magicdraw.sysml.util.MDCustomizationForSysMLProfile1152:
public static final String CONSTRAINTPROPERTY_STEREOTYPE = "ConstraintProperty";
public static final String QUANTITYKIND_STEREOTYPE = "QuantityKind";
public static final String QUANTITYKIND_DEFINITIONURI_PROPERTY = "definitionURI";
public static final String QUANTITYKIND_DESCRIPTION_PROPERTY = "description";
public static final String QUANTITYKIND_SYMBOL_PROPERTY = "symbol";
public static final String UNIT_STEREOTYPE = "Unit";
The following methods were moved from the com.nomagic.magicdraw.sysml.util.SysMLProfile1153 to
the com.nomagic.magicdraw.sysml.util.MDCustomizationForSysMLProfile1154:
getConstraintProperty()
getQuantityKind()
1151 http://jdocs.nomagic.com/182/requirements/com/nomagic/magicdraw/sysml/util/SysMLProfile.html
1152 http://jdocs.nomagic.com/182/sysml/com/nomagic/magicdraw/sysml/util/
MDCustomizationForSysMLProfile.html
1153 http://jdocs.nomagic.com/182/requirements/com/nomagic/magicdraw/sysml/util/SysMLProfile.html
1154 http://jdocs.nomagic.com/182/sysml/com/nomagic/magicdraw/sysml/util/
MDCustomizationForSysMLProfile.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
604
getUnit()
isQuantityKind()
isUnit()
isConstraintProperty()
The constant NESTEDCONNECTOREND_PROPERTYPATH_PROPERTY changed to
ELEMENTPROPERTYPATH_PROPERTYPATH_PROPERTY.
SysML classes for open API
Classes which are available for open API are included in SysML plugin open API documentation. Find
these in <SysML plugin installation directory>\openapi\docs.
The com.nomagic.magicdraw.sysml.util.SysMLUtilities1155 class was added to the open APIs. It provides
utility methods for easier work with SysML projects.
Methods and classes marked as deprecated do not support the development of external plugins.
SysML 1.6 Profile
1155 http://jdocs.nomagic.com/182/sysml/com/nomagic/magicdraw/sysml/util/SysMLUtilities.html
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
605
1156
Importing External Simulation Models
The modeling tool supports the FMU and Simulink import. As a result, you can import external models
into your project with a few simple mouse clicks.
Continue reading
• Simulink import(see page 607)
• FMU import(see page 614)
• Modelica import(see page 621)
1156 https://docs.nomagic.com/display/MP/SysML+Profile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
606
Related topics
• Simulink export(see page 624)
Simulink import
On this page
• What is Simulink?(see page 607)
• Simulink file import(see page 607)
• Dragging and Dropping Simulink file on diagram(see page 609)
• Dragging and dropping Simulink file on existing Block(see page 611)
• Updating existing Simulink Block(see page 612)
• Co-simulation(see page 614)
What is Simulink?
Simulink is a MATLAB-based graphical environment that allows modeling, simulating, and analyzing
dynamic systems. It enables users to simulate the dynamic behavior of the modeled system, for
example, it is now widely used in automatic control and digital signal processing for multi-domain
simulation.
Simulink file import
The modeling tools support SLX and MDL file formats, meaning that you must have your Simulink
model in any of these formats to import it. Following the Simulink file import, the Simulink Import
Options dialog opens. It allows customizing the Simulink model import options. For example, you can
specify whether the parameters from the model should be imported as ports or value properties, set
the name for the Simulink Block (the Simulink file name is used by default), and mark the checkbox to
automatically attach the file to the model upon import.
To import the Simulink file into the model
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
607
1. In the top-left corner of the modeling tool, click File > Import From > Simulink File.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
608
2. Select the Simulink (.slx or .mdl) file on your file system and click Open.
3. In the Simulink Import Options dialog, specify which properties from the Simulink file should
be imported into your model as values and ports. Click OK.
Dragging and Dropping Simulink file on diagram
You can import the Simulink model by dragging and dropping the Simulink file directly onto the Block
Definition (BDD), Internal Block (IBD) and SysML Activity diagrams:
To import the Simulink model
1. Locate the SLX or MDL file on your file system.
2. Do one of the following:
• Drag and drop the file from your file system onto the BDD diagram(see page 519). A Block (see
page 545)with the applied «SimulinkBlock» stereotype is created in the model after
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
609
customizing Simulink import via the Simulink Import Options dialog.
• Drag and drop the file from your file system onto the IBD diagram(see page 520). A Part
property(see page 560) is created in the model after customizing Simulink import via the
Simulink Import Options dialog.
• Drag and drop the file from your file system onto the SysML Activity diagram(see page 525).
The Activity (stereotyped by «SimulinkBlock») which is assigned as behavior for a Call
Behavior Action1157 and its Input and/or Output Pins1158 are created in the model.
The Simulink Import Options dialog does not open in this case.
The Simulink Import Options dialog opens immediately after dropping the file. Specify the Simulink
import options and click OK when you are done.
The Simulink Import Options dialog has the following options:
Option name
Description
Direction
The direction of the port: In or Out. Inputs and Outputs are selected to be imported as ports
by default.
Name
The name of the property/parameter.
1157 https://docs.nomagic.com/display/MDTWRT/Call+Behavior+Action
1158 https://docs.nomagic.com/display/MDTWRT/Pin
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
610
Option name
Description
Type
The type of the property, for example, value property.
Description
The textual description of the property.
As Port
Click to select whether properties should be represented as Flow or Proxy ports. Select
None to import the selected properties as value properties.
Interface Block
Click to select a compatible interface Block or create a new one. <NEW> is selected by
default.
The Interface Block column is active only if Proxy Port is selected in the As
Port column.
Redefine
Click to redefine inherited value or part properties.
Click to select all listed properties at once.
Click to deselect all listed properties at once.
If the checkbox next to Attach file to the project is selected, the imported Simulink file is
automatically attached to the model.
The name of the element created in the model upon import. By default, the name of the
Simulink file is used, but you can set the one you like.
Dragging and dropping Simulink file on existing Block
You can drag and drop the external Simulink model directly onto the existing element in your model.
Once the .slx or .mdl file is dropped, the Simulink Import Options dialog opens. You can then redefine
value and part properties.
In this case, a new Block is created as a subtype of the existing Block together with
the Generalization1159 relationship.
1159 https://docs.nomagic.com/display/MD190SP3/Generalization
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
611
Dropping the Simulink file on the existing Block.
In/Out properties in the Simulink Import Options dialog are by default imported into the
model as ports of a Flow type.
Updating existing Simulink Block
An existing Simulink Block can be updated by dragging and dropping the .slx or .mdl file directly on it.
This is useful in those cases when there is a need to update the Block, for example, to import
properties that were left out at first or update the model with the latest version of the Simulink file.
To update a Simulink Block
1. Locate the SLX or MDL file on your file system.
2. Drag and drop it on the shape of your Simulink Block.
3. In the opened Simulink Import Options dialog, select the properties to update the Simulink
Block with.
4. Click OK.
Dragging and dropping the Simulink file on the existing Simulink Block.
Alternatively, you can update the Simulink Block directly from the shortcut menu.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
612
To update a Simulink Block
1. Right-click the Simulink Block.
2. Select Tools > Update from Simulink file from the shortcut menu.
3. In the opened Simulink Import Options dialog, select the properties to update the Simulink
Block with.
4. Click OK.
Already imported properties are grayed out and cannot be edited in the Simulink Import
Options dialog.
If the Attach file to the project is checked in the Simulink Import Options dialog, a previous
version of the attached file is replaced with a new one upon import.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
613
Co-simulation
The Simulink model can be simulated using Cameo Simulation Toolkit1160 (CST). To learn more, please
click here1161.
« Importing External Simulation Models(see page 606)
FMU import »(see page 614)
FMU import
On this page
• What is FMI?(see page 614)
• What is FMU?(see page 614)
• FMU import(see page 614)
• Dragging and dropping FMU on diagram(see page 617)
• Dragging and dropping FMU on existing Block(see page 618)
• Updating existing FMU Block(see page 619)
• Co-Simulation(see page 621)
What is FMI?
FMI, also known as a Functional Mock-up Interface, is a tool independent open-source standard that
supports both model exchange and co-simulation1162 of dynamic models in a standardized format. The
modeling tool supports FMI versions 1.0 and 2.0.
What is FMU?
A component that implements FMI is called FMU (Functional Mock-up Unit). It stores a simulation
model that adheres to the FMI standard. To be more specific, the FMU file contains an XML description
file and implementation in a binary form.
FMU import
The FMU Import Options dialog enables users to customize the FMU file import into the model. For
instance, you can specify whether parameters from the FMU file should be imported as ports or value
1160 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
1161 https://docs.nomagic.com/display/CSTTWRT/Simulation+of+SysML+models
1162 https://docs.nomagic.com/display/CST190SP3/Simulation+of+SysML+models
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
614
properties. Additionally, you can change the name of the Block (the FMU model name is used by
default) and automatically attach the file to the project upon import.
The FMU Import Options dialog has the following options:
Option name
Description
Direction
The direction of the port: In or Out. Inputs and Outputs are selected to be
imported as ports by default.
Name
The name of the property/parameter.
Type
The type of the property, for example, value property.
Description
The textual description of the property.
As Port
Click to select whether properties should be represented as Flow or Proxy
ports. Select None to import the selected properties as value properties.
Interface Block
Click to select a compatible interface Block or create a new one. <NEW> is
selected by default.
The Interface Block column is active only if Proxy Port is selected in
the As Port column.
Redefine
Click to redefine inherited value or part properties.
Click to select all listed properties at once.
Click to deselect all listed properties at once.
If the checkbox next to Attach file to the project is selected, the imported
FMU file is automatically attached to the model.
The name of the Block created in the model upon import. By default, the name
of the FMU model is used, but you can set the one you like.
To import the FMU file into the model
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
615
1. In the top-left corner of the modeling tool, click File > Import From > FMU File.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
616
2. Select the FMU file on your file system and click Open.
3. In the FMU Import Options dialog, specify which properties from the FMU file should be
imported into your model as values and ports. Click OK.
Dragging and dropping FMU on diagram
Alternatively, you can import the FMU model by dragging and dropping the selected FMU file directly
onto the Block Definition (BDD) and/or Internal Block (IBD) diagrams.
To import the FMU file into the model using BDD/IBD
1. Locate the FMU file on your file system.
2. Do either:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
617
• Drag and drop the file from your file system onto the BDD diagram. A Block with the
applied «FMU» stereotype is created in the model after customizing FMU import via
the FMU Import Options dialog.
• Drag and drop the file from your file system onto the IBD diagram. A Part property is
created in the model after customizing FMU import via the FMU Import Options dialog.
Dragging and dropping FMU on existing Block
You can drag and drop the FMU file directly onto the Block as implementation as well. Once the FMU
file is dropped, the FMU Import Options dialog that allows redefining value and part properties of the
Block opens.
Redefining properties using FMU Import Options dialog
In this case, a new Block is created as a subtype of the existing Block together with the
Generalization1163 relationship.
1163 https://docs.nomagic.com/display/MD190SP3/Generalization
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
618
Dropping FMU on an existing Block
In/Out properties in the FMU Import Options dialog are by default imported into the model
as ports of a Flow type.
Updating existing FMU Block
An existing FMU Block can be updated by dragging and dropping a FMU file directly on it. This is useful
in those cases when there is a need to quickly import properties that were, initially, left out.
To update a FMU Block
1. Locate the FMU file on your file system.
2. Drag and drop it on the shape of your FMU Block.
3. In the opened FMU Import Options dialog, select the properties to update the FMU Block with.
4. Click OK.
Dragging and dropping FMU on the existing FMU Block
Alternatively, you can update the FMU Block directly from the shortcut menu.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
619
To update a FMU Block from the shortcut menu
1. Right-click the Simulink Block.
2. Select Tools > Update from FMU file from the shortcut menu.
3. In the opened FMU Import Options dialog, select the properties to update the FMU Block with.
4. Click OK.
Already imported properties are grayed out and cannot be edited in the FMU Import Options
dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
620
If the Attach file to the project is checked in the FMU Import Options dialog, a previous
version of the attached file is replaced with a new one upon import.
Co-Simulation
The FMU file can be simulated using Cameo Simulation Toolkit1164 (CST). To learn more, please click
here1165.
« Simulink import(see page 607)
Modelica import »(see page 621)
Related pages
• Simulation of SysML models1166
Modelica import
What is Modelica?
The Modelica Language is a non-proprietary, object-oriented, equation based language to conveniently
model complex physical systems containing, for example, mechanical, electrical, electronic, hydraulic,
thermal, control, electric power or process-oriented subcomponents.
Modelica file import
The modeling tools support MO file format, meaning that you must have your Modelica model in this
format to import it. Following the Modelica file import, the Modelica Import Options dialog opens. It
allows selecting features you want to update from the Modelica file, create, delete, or change the
context-specific initial values. Blocks or Interface Blocks, introduced as property types, are created
under the same owner as an imported context. The primitive type, if it was set, is also created for a
Block or Interface Block. You can also create properties, connectors, and ports. Note that the imported
Connectors are identified by the connector ends.
To import the Modelica file into the model
1164 https://docs.nomagic.com/display/CSTTWRT/Cameo+Simulation+Toolkit+Documentation
1165 https://docs.nomagic.com/display/CSTTWRT/Simulation+of+SysML+models
1166 https://docs.nomagic.com/display/CST190SP3/Simulation+of+SysML+models
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
621
1. Select a Block.
2. In the top-left corner of the modeling tool, click File > Import From > Modelica File.
3. Select the Modelica (.mo) file on your file system and click Import.
4. In the Modelica Import Options dialog, specify which features you want to update from the
Modelica file.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
622
5. Click Import.
An example of Modelica Import
The original Modelica data file for the example model:
The changes made in the Modelica data file are shown in the Modelica Import Options dialog, where
you can choose whether to accept those changes or not:
Exporting to External Simulation Models
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
623
Introduction
Systems engineers coordinate the work of multiple other engineering disciplines (mechanical, material,
electrical, control, and so on), requiring information to flow between systems engineers and those in
other disciplines. Systems engineering information intentionally does not cover all disciplines, but must
integrate with them to enable systems engineers to communicate with other engineers. Using
discipline-specific tools separately from system modeling tools typically leads to redundancy,
inconsistency, and less efficient engineering processes.
Graphical interfaces presented by physical interaction and signal flow simulators express concepts
similar to the Systems Modeling Language (SysML), an extension of the Unified Modeling Language
(UML). Both languages show system components, how components are connected together, and how
physical substances and information flow between components. SysML and these simulators both have
underlying textual languages to record models in computer-processable file formats. Simulators
translate models specified through graphical interfaces into file-based formats, which are then
transformed into equations for solution by numerical analysis. SysML-based tools use their filed-based
formats to perform other kinds of analysis and verification, checking completeness of designs against
requirements.
When SysML tools and physical interaction and signal flow simulators are used separately, simulation
engineers must re-specify their systems in each tool they are using, including information that is also
available in SysML models.
OMG SysPhS standard implementation
A new OMG SysPhS specification1167 (SysML Extension for Physical Interaction and Signal Flow
Simulation) defines SysML elements mapping into Modelica and Simulink (incl. Stateflow,
Simscape) models.
It is implemented as one-way transformation of selected SysML blocks and supports both black-box or/
and full implementation which includes parametrics, state machines, internal structures with ports,
interfaces and connectors.
Pure non-annotated SysML models can be exported, using SysPhS profile or libraries is not required for
basic cases as blackbox structures.
Exported models and diagrams are ready to be opened in Simulink or Modelica tools for further
implementation refinements, debugging, simulation and code generation.
Related pages
Simulink export
1167 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
624
On this page
• Introduction(see page 625)
• Exporting model to the Simulink file(see page 625)
• Simulink Export Options(see page 626)
Introduction
Information stored in SysML models can be reused in simulations performed by Simulink and existing
Simulink models can be brought back into MBSE environment. Most often system engineers model the
system down to a point of where executable models start in Simulink. The purpose is to keep these
models consistent as the system design evolves.
Export to Simulink Tool allows to generate the Simulink model from SysML model. The SLX or MDL
file format is created that contains the block diagram and block properties of the simulation. The
following figure illustrates the SysML Internal Block Diagram exported to Simulink Block diagram.
The SysML Internal Block Diagram exported to Simulink Block diagram.
Exporting model to the Simulink file
You can export to the Simulink file:
• Block 1168- exports the model (Read the procedure below).
1168 https://docs.nomagic.com/display/SYSMLPTWRT/Block
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
625
• Instance Specification1169 - exports particular configuration with initial values and subtype
instances as specified in the instance model.
To export model to the Simulink file
1. In the Model Browser1170, select the Block you want to export and do one of the following:
• In the top-left corner of the modeling tool, click File > Export To > Simulink.
• Right-click the selected Block and then click Tools > Export to Simulink.
2. Specify export options in the Simulink Export Options dialog. Option descriptions >>(see page
626)
3. Click OK.
The Simulink (.slx) file is generated and saved to your file directory.
Simulink Export Options
Each time you export your model to the Simulink file, the Simulink Export Options dialog opens with
already selected options. The detailed descriptions are provided in the following table.
Option
Description
Format
Select the file format to export:
• Text (.mdl) - exports to legacy textual format
• XML (.slx) - exports to compressed XML-based file format.
S-Function or Simscape
Select how to export SysML parametrics:
• as Simscape - file type dedicated to use in the
MATLAB® environment with an extension .ssc. Use ssc_build in
Matlab to generate library and blocks from generated Simscape
files. If blocks have bidirectional (inout) ports, Simscape should be
1169 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
1170 https://docs.nomagic.com/display/SYSMLPTWRT/Model+Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
626
Option
Description
selected as export option, as Simulink only supports unidirectional
inports and outports.
• as S-Function version 1 - generate all constraints into separate files
that contain functions.
• as S-Function version 2 - generate all constraints into separate files
that contain functions.
Simscape port libraries
Select whether to create or reuse existing port types.
Composite Signals
Select how to export Proxy Port/Interface Block with multiple Flow Properties
(composite signals):
• as bus Creators/Selectors.
Bus Creator blocks create buses within a subsystem or model.
Bus Selector blocks extract specified elements of the bus.
• as bus In/Out ports.
Out Bus Element blocks create a bus at a subsystem or model
interface.
In Bus Element blocks extract specified elements of a bus at a
subsystem or model interface.
Apply <<SimulinkBlock>>
on export
Select to automatically apply the <<SimulinkBlock>> stereotype upon the
export of the selected Block.
Click to specify the location of generated Simulink file or rename the file.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
627
« Exporting to External Simulation Models(see page 623)
Reusing and referencing Simulink models »(see page 628)
Related pages
Reusing and referencing Simulink models
On this page
• Introduction(see page 628)
• Using «SimulinkBlock» stereotype(see page 629)
• Using «SimulinkParameter» stereotype(see page 629)
• Using «SimulinkPort» stereotype(see page 631)
Introduction
The «SimulinkBlock», «SimulinkParameter» and «SimulinkPort» stereotypes are created to specify
which SysML properties (including ports) of its blocks correspond to Simulink library reusable
component. The semantics of these elements are given by the corresponding elements in the Simulink
libraries. For more details, read the OMG SysPhS specification1171.
The figure below shows how
the «SimulinkBlock», «SimulinkParameter» and «SimulinkPort» stereotypes are defined in the SysML
profile.
1171 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
628
Simulink stereotypes.
Using «SimulinkBlock» stereotype
Apply «SimulinkBlock» stereotype for a Block(see page 545) to reference its Part Properties(see page
560) with an equivalent component in the Simulink library. The value of the name tag must be a fully
qualified name (e.g. foundation.electrical.elements.capacitor) of the corresponding component in the
Simulink library.
The «SimulinkBlock» stereotype applied for a Capacitor Block and created
reference to corresponding component in the Simulink library.
Using «SimulinkParameter» stereotype
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
629
Apply «SimulinkParameter» stereotype for a Value Property1172 to reference it with an equivalent
parameter of a Simulink library. The stereotyped Value Property must be owned by a Block
stereotyped by «SimulinkBlock». The value of the name tag is the name of the corresponding
parameter, and the value attribute gives the value of this parameter. If the value is empty, the value of
the parameter must be given using initial values of the stereotyped property.
In the following image, after the «SimulinkParameter» stereotype is applied for the r Value Property, its
name tag value is referenced with the parameter R in the Simulink library.
1172 https://docs.nomagic.com/display/SYSMLPTWRT/Value+Property
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
630
The «SimulinkBlock» Resistor owns r Value Property stereotyped
by «SimulinkParameter» and created reference to the Simulink library
component.
Using «SimulinkPort» stereotype
Apply «SimulinkPort» stereotype for a port to reference it with an equivalent port in the
Simulink library. The stereotyped port must be owned by a Block with «SimulinkBlock» stereotype
applied. The value of the name tag gives the name of the corresponding port in the Simulink library.
The «SimulinkBlock» Ground owns p Proxy Port stereotyped by «SimulinkPort»
and created reference to the Simulink library component.
« Simulink export(see page 624)
Using SysPhs constant and SysPhs variable »(see page 631)
Using SysPhs constant and SysPhs variable
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
631
On this page
• Introduction(see page 632)
• Using the «PhSConstant» stereotype(see page 632)
• Using the «PhSVariable» stereotype(see page 633)
Introduction
The «PhSConstant» and «PhSVariable» stereotypes extend the Property metaclass (see the figure
below) for physical interaction and signal flow simulation. Simulation modeling specifies how numeric
and boolean variable values can change in more detail than in system models. Simulation modeling
distinguishes numeric variables with values that can change continuously (possibly infinitesimally) over
time from those that always change discretely (finitely), possibly only at regular intervals. It also
identifies variables with values that can only change between simulations (constants), rather than
during simulations. For mode details, read the OMG SysPhS specification1173.
Simulation stereotypes.
Using the «PhSConstant» stereotype
Apply a «PhSConstant» stereotype to a SysML property if it has a fixed value and will not change during
simulation. It is exported as a Modelica/Simulink parameter.
Block properties stereotyped by «PhSConstant» must:
• Be typed by Real, Integer, or Boolean, or one of their specializations.
• Have a multiplicity of 1, unless they are also stereotyped by a MultidimensionalElement.
• Not redefine more than one other property, which must have the same name and type and must
be stereotyped by a «PhSVariable» or «PhSConstant».
1173 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
632
In the example below, the «PhSConstant» stereotype is applied for the C1 Value Property(see page 569) of
the HeatingCalculation Block (see page 545)and specificHeat, waterVolume Value Property(see page 569) of
the TemperatureIncrease Block(see page 545).
Usage of the «PhSConstant» and «PhSVariable» stereotypes.
Using the «PhSVariable» stereotype
Apply the «PhSVariable» stereotype if you want to mark property as a Modelica/Simulink variable and
fill in the appropriate tags (isContinuous, isConserved and changeCycle) if needed.
The descriptions of the «PhSVariable» stereotype tags1174:
• isContinuous - determines whether the property value varies continuously or discretely.
• isConserved - determines whether values of the property value are conserved or not.
• changeCycle - specifies the time interval at which a discrete property value may change.
Follow the rules below when applying «PhSVariable» stereotype:
• The property must be typed by Real, Integer, or Boolean, or one of their specializations.
• isContinuous may be true only when the stereotyped property is typed by Real or one of its
specializations.
• isConserved may be true only when isContinuous is true and the stereotyped property is on a
block specialized from ConservedQuantityKind.
• changeCycle may be other than zero only when isContinuous is false.
• changeCycle must be positive or zero.
• A property stereotyped by «PhSVariable» must not be stereotyped by «PhSConstant».
• Properties stereotyped by «PhSVariable» must have a multiplicity of 1, unless they are also
stereotyped by MultidimensionalElement.
• Flow properties stereotyped by «PhSVariable» that are connected and matching must have
opposite directions (in/out or out/in), the same type and multiplicity, and the same value for
isContinuous on the applied stereotype.
• Flow properties stereotyped by «PhSVariable» that have an "in" direction may connect to and
match no more than one other flow property stereotyped by «PhSVariable».
• A property stereotyped «PhSVariable» can redefine at most one other property. It must have the
same name and type and must be stereotyped by «PhSVariable».
1174 https://docs.nomagic.com/display/MDTWRT/Tag
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
633
• When a property stereotyped by «PhSVariable» with isContinuous=true redefines another
property, the «PhSVariable» applied to the redefined property must have isContinuous=true.
• When a property stereotyped by «PhSVariable» with isContinuous=false redefines another
property stereotyped by «PhSVariable» with isContinuous=false, the redefining property’s
changeCycle must be an integer multiple of the redefined property’s changeCycle.
As an example, see the figure above, where the «PhSVariable» stereotype is applied for the xlntg Value
Property(see page 569) of the HeatingCalculation Block(see page 545).
« Building Modelica libraries in SysML(see page 683)
Supported and unsupported SysML concepts »(see page 691)
Related pages
• Stereotype1175
• Tag1176
SysML supported and unsupported concepts
On this page
• Supported SysML concepts(see page 634)
• Not supported SysML concepts(see page 635)
Supported SysML concepts
The main (selected root owning Block) is exported into a separate *.slx file with a Block name.
All other used or referenced Blocks are exported as one library *.slx file.
• Blocks which have classifier behavior as statemachine are exported as Stateflow blocks.
• Blocks which behavior is described by Parametric equations are exported as SFunctions or
Simscape models.
• If blocks have bidirectional (inout) ports, Simscape should be selected as export option, as
Simulink only supports unidirectional inports and outports.
• Both flow ports and proxy ports are supported if they represent one primitive flow type (typed by
Real, Integer, Boolean, or one of their specializations).
• Connector must link ports, can’t be attached directly to the part.
• Ports must be typed.
• Proxy port/Interface block with more than 1 flow property (composite signals or buses)
• InstanceSpecifications can be used to define or overwrite initial parameter values.
1175 https://docs.nomagic.com/display/MDTWRT/Stereotype
1176 https://docs.nomagic.com/display/MDTWRT/Tag
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
634
Not supported SysML concepts
• Behaviors defined as Activity diagrams or Interactions (Sequence diagrams)
• Mixing of Parametrics and StateMachine in one Block
• Enumerations
• Multiplicities
More constraints and examples can be found in SysPhS specification document. Click here1177 to access
it.
Diagram layout
Shape and path positions in IBD and Statemachine diagrams are exported, however result is not exactly
the same sometimes and can be changed or distorted on the Simulink side.
Note that Simulink only allows input ports on the left, outputs on the right, so adjust your SysML IBD
diagrams accordingly to get best visual result and avoid automatic ports and connectors replacements.
• First owned IBD is exported as Simulink block diagram in case of multiple owned IBDs in a Block.
• Nested symbols such as nested parts or ports are not supported
• If there is more than one connector going in or out of same port, Simulink will merge them into
one and adds the branching point.
« Using SysPhs constant and SysPhs variable(see page 631)
Simulating exported Simulink models »(see page 635)
Simulating exported Simulink models
Four sample models are prepared to demonstrate the Simulink export usability: Humidifier, Electric
Circuit, Hydraulics and Signal Processor. Learn more about each of sample model >>(see page 703)
You can find sample models:
• In the modeling tool: Welcome window > Samples > Simulink and Modelica
Transformation.
• in the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation.
This section is dedicated to describe how to simulate exported Simulink models. Each Simulink model
simulation is described separately:
• Hydraulics example to Simulink and Simscape model(see page 636)
• Signal Processor example to Simulink model R2014a(see page 647)
• Humidifier example to Simulink model(see page 652)
• Electrical Circuit example to Simulink and Simscape model(see page 662)
1177 https://www.omg.org/spec/SysPhS/1.0/PDF
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
635
« SysML supported and unsupported concepts(see page 634)
Hydraulics example to Simulink and Simscape model »(see page 636)
Hydraulics example to Simulink and Simscape model
This page describes how to simulate the Hydraulics example model in Simulink. Learn more
about Hydraulics sample model >>(see page 722)
You can find the Hydraulics sample model in:
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> Hydraulics .
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\Hydraulics.
To simulate the Hydraulics model
1. Export the ConnectedTanks Block to Simulink file. How to >>1178
2. In the Simulink Export Options dialog select the following options:
• Format: XML (.slx)
• S-Function or Simscape: Simscape
• Simscape port libraries: Create new port types
• Composite Signals: Bus Creators/Selectors
3. Make sure the MATLAB tool is installed.
4. Double-click the MATLAB icon to start it.
5. In the file directory select the location of your exported Hydraulics model Simulink files and
choose the +ConnectedTanksLibrary folder. The simscape files (.ssc) are displayed in the Current
Folder panel.
ssc_build
6. In the Command Window type ssc_build (or sscbuild depending on the Matlab version) and
press Enter. This generates a folder sscprj in the +ConnectedTanksLibrary directory as well as
1178 https://docs.nomagic.com/display/SYSMLPTWRT/Simulink+export#Simulinkexport-
ExportingmodeltotheSimulinkfile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
636
a ConnectedTanksLibrary_lib.slx file in the directory with the original ConnectedTanks.slx file.
7. Go back to the file directory, select the Hydraulics package with exported Simulink files and in
the Current Folder select the ConnectedTanks.slx.
8. In the Current Folder panel, double-click on ConnectedTanks.slx to open the Simulink/
Simscape model. Rearrange the blocks to get a better picture of the blocks and links.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
637
9. On the SIMULATION tab, click the arrow on the PREPARE area and select the Model Settings.
10. In the Configuration Parameters dialog, on the left side of the dialog:
a. Select a Solver property group and specify the following on the right side of the dialog:
- In the the Simulation time group, change Start time to 0.0, Stop time to 200 (or any other
reasonable number of seconds).
- In the Solver selection group, select Type Variable-step or any other desirable solver that is
suitable.
- Click the arrow of the Solver details group and change the Max step size to 0.01.
b. Select Simscape property group and specify the following on the right side of the dialog:
- In the Data Logging group, change Log simulation data to All.
- Make sure Limit data points is unchecked.
11. Press Apply > OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
638
12. In the ConnectedTanks Simulink window, click
.
13. On the main toolbar, click
to open a Simscape Results Explorer:
ConnectedTanks window where you can expand the ConnectedTanks blocks to see how their
properties simulated through time. For the tanks fluidReservoir1 and fluidReservoir2, the
properties fluidLevel can be selected to see how the fluid reacted transferred from one tank to
the other in the simulation. To see the simulation’s specific data points, select the mouse
pointer on the plot.
14. To change the default value or initial value parameters of the model, double-click the blocks in
the ConnectedTanks Simulink model. A Block Parameters dialog opens where you can change
parameters. Repeat steps from 5 to 12 to run the simulation with (new) block parameters.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
639
« Simulating exported Simulink models(see page 635)
Hydraulics example to Simulink and Simscape model R2016a »(see page 640)
Hydraulics example to Simulink and Simscape model R2016a
To generate a Simulink model directly from the modeling tool
1. Right-click the Block Data:ConnectedTanks and select Tools > Export to Simulink. Please
see Generating a simulation file1179 for more information.
2. Set the options listed below and click OK:
• Format: XML (.sdl)
• S-Function or Simscape: Simscape
• Simscape port libraries: Create new port types
3. Launch Matlab with Simulink and Simscape extensions.
4. In Matlab’s Current Directory navigation bar, search for the file directory where the Simulink/
Simscape files (as well as the SysML files) are saved, and set it as the current directory.
The Current Folder panel should display the generated files.
5.
6. In the Current Folder panel, double-click on the folder
named +ConnectedTanksLibrary_create (this sets the current directory to this folder).
Type ssc_build in the Command Window and press Enter. This will generate a folder sscprj in
the +ConnectedTanksLibrary_create directory as well as
1179 https://docs.nomagic.com/display/SMTP190SP2/Generating+a+simulation+file
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
640
a ConnectedTanksLibrary_create_lib.slx file in the directory with the
original ConnectedTanks.slx file. Next, once again, search for and go back to the file directory
where the Simulink/Simscape files (as well as the SysML files) are saved, and set it as the current
directory.
7. In the Current Folder panel, double-click on ConnectedTanks.slx to open the Simulink/
Simscape model. Rearrange the blocks to get a better picture of the blocks and links.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
641
8. Go to Simulation > Model Configuration Settings. This allows to select the types of solver and
the runtime of the simulation. Select a Start Time of 0, and a Stop Time of 200 (or any other
reasonable number of seconds). Change the Max step size to 0.01. Under Solver Options, keep
the solver Type to Variable-step (or any other desirable solver that is suitable). Press Apply.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
642
9. In Model Configuration Settings, select Simscape in the Commonly Used Parameters panel.
Change Log simulation data to All. Make sure Limit data points is unchecked. Press Apply.
Press OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
643
10. In the ConnectedTanks Simulink window, go to Simulation > Run.
11. Once the model has compiled, go to the Matlab’s command window and type/
enter ssc_explore(simlog) (make sure that either the version of Matlab has the
function ssc_explore, or a file ssc_explore.m is in the same directory as ConnectedTanks.slx in
the Current Folder panel). A Simscape data logging explorer: Connected Tanks window will
open up.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
644
12. In the Simscape data logging explorer, the ConnectedTanks blocks can be expanded to see
how their properties simulated through time. For the
tanks fluidReservoir1 and fluidReservoir2, the properties fluidLevel can be selected to see
how the fluid reacted transferred from one tank to the other in the simulation. To see the
simulation’s specific data points, the Data cursor icon needs to be selected and points on the
plot need to be chosen (by clicking it).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
645
13. To change the default value or initial value parameters of the model, double-click the blocks in
the ConnectedTanks Simulink model. A window will pop out for block parameters that can be
changed. Run through Steps 7 through 10 to run the simulation with (new) block parameters
again.
« Hydraulics example to Simulink and Simscape model(see page 636)
Signal Processor example to Simulink model R2014a »(see page 647)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
646
Signal Processor example to Simulink model R2014a
To generate a Simulink model directly from the modeling tool
1. Right-click the Block TestCaseSignalProcessor::TestBed and select Tools > Export to
Simulink. Please see Generating a simulation file1180 for more information.
2. Set the options listed below and click OK:
• Format: XML (.sdl)
• S-Function or Simscape: S-Function version 2
3. Launch Matlab with Simulink and Simscape extensions.
4. In Matlab’s Current Directory navigation bar, search for the file directory where the Simulink
files (as well as the SysML files) are saved, and set it as the current directory. The Current
Folder panel should display the generated .slx and M-files.
5. In the Current Folder panel, double-click on the file named SourceToSink.slx.
The SourceToSink model will open up in a new Simulink window. Rearrange the blocks to reflect
the signal flow arrowheads.
1180 https://docs.nomagic.com/display/SMTP190SP2/Generating+a+simulation+file
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
647
6. Open the Library Browser either by using the 4-block icon or by going to Tools > Library
Browser. Find and click on Sinks among the list in the Libraries panel, which will be
categorized under Simulink.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
648
7. Pull-and-drag the Scope block from the Sinks library list into the SourceToSink Simulink model.
Attach a signal line segment from the Scope port onto the signal line that connects the dsp block
and the scopeSignal block. Repeat Steps 6 & 7 to add a Scope block and attach it to the signal
line segment that connects the inputSignal block to the dsp block.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
649
8. Go to Simulation > Model Configuration Settings. This allows selecting the types of solver and
the runtime of the simulation. Select a Start Time of 0, and a Stop Time of 20 (or any other
reasonable number of seconds). Under Solver Options, change the solver Type to Variablestep (or any other desirable solver that is suitable). Set the Max step size to 0.01. Press Apply,
then press OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
650
9. Go to Simulation > Run. Double-click on the Scope block to see the simulation results.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
651
« Hydraulics example to Simulink and Simscape model R2016a(see page 640)
Humidifier example to Simulink model »(see page 652)
Humidifier example to Simulink model
This page describes how to simulate the Humidifier example model in Simulink. Learn more
about Humidifier sample model >>(see page 729)
You can find the Humidifier sample model in:
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> Humidifier.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
652
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\Humidifier.
To simulate the Humidifier System model
1. Export the HumidifierSystem Block to Simulink file. How to >>1181
2. In the Simulink Export Options dialog select the following options:
• Format: XML (.slx)
• S-Function or Simscape: S-Function version 2
• Composite Signals: Bus Creators/Selectors
3. Make sure the MATLAB tool is installed.
4. Double-click the MATLAB icon to start it.
5. In the file directory select the location of your exported Humidifier Simulink files. They are
displayed in the Current Folder panel.
6. Double-click the file HumidifierSystem.slx. The model open in the Simulink window.
7. On the SIMULATION tab, click
.
1181 https://docs.nomagic.com/display/SYSMLPTWRT/Simulink+export#Simulinkexport-
ExportingmodeltotheSimulinkfile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
653
8. In the Simulink Library Browser dialog, select expand the Simulink group and select Sinks. See
the figure below.
9. Drag and drop the Scope block onto the HumidifierSystem Simulink model. See the figure
below.
10. Select signal line that connects the humidity-out port of the room block to the humidity-in port of
the humidifier block and click on the Scope block. See the figure below.
11. On the SIMULATION tab, click the arrow on the PREPARE area and select the Model Settings.
12. In the Configuration Parameters dialog, on the left side of the dialog select a Solver and
specify the following on the right side of the dialog:
- In the the Simulation time group change Start time to 0.0, Stop time to 3600.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
654
- In the Solver selection group select Type Variable-step or any other desirable solver that is
suitable.
- Click the arrow of the Solver details group and change the Max step size to 0.1.
13. Press Apply > OK.
14. Double-click the Scope block in the model. An empty black plot opens.
15. Click button. In the Configuration Properties: Scope dialog, select the Logging tab and clear
the Limit data points to last box.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
655
16. Press Apply > OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
656
17. In the Scope plot toolbar, click
and wait for the simulation results in the plot.
« Signal Processor example to Simulink model R2014a(see page 647)
Humidifier example to Simulink model R2016a »(see page 657)
Humidifier example to Simulink model R2016a
To generate a Simulink model directly from the modeling tool
1. Right-click the BlockTestCaseHumidifier::HumidifierSystem and select Tools > Export to
Simulink. Please see Generating a simulation file1182 file for more information.
2. Set the options listed below and click OK:
• Format: XML (.sdl)
• S-Function or Simscape: S-Function version 2
3. Launch Matlab with Simulink and Simscape extensions.
1182 https://docs.nomagic.com/display/SMTP190SP2/Generating+a+simulation+file
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
657
4. In Matlab’s Current Directory navigation bar, search for the file directory where the Simulink
files (as well as the SysML files) are saved, and set it as the current directory. The Current
Folder panel should display two generated Simulink “.slx” files.
5. In the Current Folder panel, double-click on the file named Environment.slx. The model will
open up in a Simulink window. Rearrange the blocks to reflect the signal flow arrowhead
directions.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
658
6. Open the Library Browser either by using the 4-block icon or by going to Tools > Library
Browser. Find and click on Sinks among the list in the Libraries panel, which will be categorized
under Simulink.
7. Pull-and-drag the Scope block from the Sinks library list into the Environment Simulink model.
Attach a signal line segment from the Scope port onto the signal line that connects the humidityout port of the room block to the humidity-in port of the humidifiersystem block.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
659
8. Go to Simulation > Model Configuration Settings. This allows selecting the types of solver and
the runtime of the simulation. Select a Start Time of 0, and a Stop Time of 3600. Under Solver
Options, select the solver Type to Variable-step (or any other desirable solver that is suitable)
and change the Max step size to 0.01. Press Apply, then press OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
660
9. Double-click the Scope block in the model. An empty (black) plot will show up. Press the ‘Scope’
parameters button (the gear icon above the empty plot). A ‘Scope’ parameters dialogue box
will pop up. Go to the History tab and uncheck the option box Limit data points to last.
Press Apply, and then OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
661
10. Go to Simulation > Run. Double-click on the Scope block to see the simulation results.
« Humidifier example to Simulink model(see page 652)
Electrical Circuit example to Simulink and Simscape model »(see page 662)
Electrical Circuit example to Simulink and Simscape model
This page describes how to simulate ElectricCircuit example model in Simulink. Learn more
about ElectricCircuit sample model >>(see page 715)
You can find the ElectricCircuit sample model in:
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> ElectricCircuit.
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\ElectricCircuit.
To simulate the Electrical Circuit model
1. Export the Circuit Block to Simulink file. How to >>1183
2. In the Simulink Export Options dialog select the following options:
• Format: XML (.slx)
• S-Function or Simscape: Simscape
• Simscape port libraries: Create new port types
• Composite Signals: Bus Creators/Selectors
3. Make sure the MATLAB tool is installed.
1183 https://docs.nomagic.com/display/SYSMLPTWRT/Simulink+export#Simulinkexport-
ExportingmodeltotheSimulinkfile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
662
4. Double-click the MATLAB icon to start it.
5. In the file directory select the location of your exported ElectricalCircuit model Simulink files and
choose the +CircuitLibrary folder. The simscape files (.ssc) are displayed in the Current
Folder panel.
6. In the Command Window type ssc_build (or sscbuild depending on the Matlab version) and
press Enter. This generates a folder sscprj in the +CircuitLibrary directory as well as
a CircuitLibrary_lib.slx file in the directory with the original Circuit.slx file.
7. Go back to the file directory, select the ElectricalCircuit package with exported Simulink files and
in the Current Folder select the Circuit.slx.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
663
8. Double-click on Circuit.slx to open the Simulink/Simscape model. Rearrange the blocks to get a
better picture of the blocks and links.
9. On the SIMULATION tab, click the arrow on the PREPARE area and select the Model Settings.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
664
10. In the Configuration Parameters dialog, on the left side of the dialog:
a. Select a Solver property group and specify the following on the right side of the dialog:
- In the the Simulation time group, change Start time to 0.0, Stop time to 60 (or any other
reasonable number of seconds).
- In the Solver selection group, select Type Variable-step or any other desirable solver that is
suitable.
- Click the arrow of the Solver details group and change the Max step size to 0.01.
b. Select Simscape property group and specify the following on the right side of the dialog:
- In the Data Logging group, change Log simulation data to All.
- Make sure Limit data points is unchecked.
11. Press Apply > OK.
12. In the Circuit Simulink window, click
.
13. Once the model has compiled, on the main toolbar, click
to open a Simscape
Results Explorer: Circuit window where you can expand the Circuit blocks to see how their
properties simulated through time. For the circuit
components c (capacitor), i (inductor), rc (resistor in series with the capacitor), ri (resistor in
series with the inductor), and s (source), the properties iThru (current) and vDrop (voltage) can
be selected to see the flow of charge (current) and its potential to flow (voltage) through each
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
665
component. To see the simulation’s specific data points, select the mouse pointer on the plot.
14. To change the default value or initial value parameters of the model, double-click the blocks in
the Circuit Simulink model. A Block Parameters dialog opens where yoy can change
parameters. Repeat steps from 5 to 12 to run the simulation with (new) block parameters.
« Humidifier example to Simulink model R2016a(see page 657)
Electrical Circuit example to Simulink and Simscape model R2016a »(see page 667)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
666
Electrical Circuit example to Simulink and Simscape model R2016a
To generate a Simulink model directly from the modeling tool
1. Right-click the Block TestCaseCircuit::Circuit and select Tools > Export to Simulink. Please
see Generating a simulation file1184 for more information.
2. Set the options listed below and click OK:
• Format: XML (.sdl)
• S-Function or Simscape: Simscape
• Simscape port libraries: Create new port types
3. Launch Matlab with Simulink and Simscape extensions.
4. In Matlab’s Current Directory navigation bar, search for the file directory where the Simulink/
Simscape files (as well as the SysML files) are saved, and set it as the current directory.
The Current Folder panel should display the generated files.
5. In the Current Folder panel, double-click on the folder named +CircuitLibrary (this sets the
current directory to this folder). Type ssc_build (or sscbuild depending on the Matlab version) in
the Command Window and press Enter. This will generate a folder sscprj in
the +CircuitLibrary directory as well as a CircuitLibrary_lib.slx file in the directory with the
original Circuit.slx file. Next, once again, search for and go back to the file directory where the
Simulink/Simscape files (as well as the SysML files) are saved, and then set it as the current
directory.
1184 https://docs.nomagic.com/display/SMTP190SP2/Generating+a+simulation+file
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
667
6. In the Current Folder panel, double-click on Circuit.slx to open the Simulink/Simscape model.
Rearrange the blocks to get a better picture of the blocks and links.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
668
7. Go to Simulation > Model Configuration Settings. This allows to select the types of solver and
the runtime of the simulation. Select a Start Time of 0, and a Stop Time of 60 (or any other
reasonable number of seconds). Change the Max step size to 0.01. Under Solver Options, keep
the solver Type to Variable-step (or any other desirable solver that is suitable). Press Apply.
8. In Model Configuration Settings, select Simscape in the Commonly Used Parameters panel.
Change Log simulation data to All. Make sure Limit data points is unchecked. Press Apply.
Press OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
669
9. In the Circuit Simulink window, go to Simulation > Run.
10. Once the model has compiled, go to Matlab’s Command
Window, type ssc_explore(simlog) (make sure that either the version of Matlab has the
function ssc_explore, or a file ssc_explore.m is in the same directory as Circuit.slx in
the Current Folder panel) and press Enter. A Simscape data logging explorer: Circuit window
will open up.
11. In the Simscape data logging explorer, the Circuit blocks can be expanded to see how their
properties simulated through time. For the circuit
components c (capacitor), i (inductor), rc (resistor in series with the capacitor), ri (resistor in
series with the inductor), and s (source), the properties iThru (current) and vDrop (voltage) can
be selected to see the flow of charge (current) and its potential to flow (voltage) through each
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
670
component. To see the simulation’s specific data points, the Data cursor icon needs to be
selected and points on the plot need to be chosen.
12. To change the default value or initial value parameters of the model, double-click the blocks in
the Circuit Simulink model. A window will pop out for block parameters that can be changed.
Run through Steps 4 through 8 to run the simulation with (new) block parameters again.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
671
« Electrical Circuit example to Simulink and Simscape model(see page 662)
Modelica export »(see page 672)
Modelica export
On this page
• Introduction(see page 673)
• Preparing SysML model for Modelica export(see page 673)
• Exporting model to the Modelica file(see page 674)
• Modelica Export Options(see page 674)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
672
Introduction
Export to Modelica tool allows quick and automatic synchronization between high-level system
architecture and behaviour model definitions and Modelica simulation models by translating and
mapping corresponding concepts and names. The Modelica export is based on SysPhS standard that is
described in details in the OMG SysPhS specification1185 (SysML Extension for Physical Interaction and
Signal Flow Simulation). You can use the Modelica export functionality in our tool to export your
model to the Modelica file. The export includes blocks, parametrics, state machines, internal structures
with ports, interfaces and connectors. The generated *.mo file is ready to open with Modelica tools. As
example of exported model to the Modelica file, see the figure below.
The ConnectedTanks Block exported to the Modelica file.
Preparing SysML model for Modelica export
No special prerequisites are required to be able to use SysML to Modelica transformation. Any existing
pure SysML models can be exported into Modelica with a high level of success. That is especially true
for black-box architecture definitions (blocks, parts, ports, parameters, interfaces and connectors).
However, if user wants to export full behavior implementation and expects it to be ready and
simulatable in Modelica, some special annotation may be required. Modelica can only solve the models
1185 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
673
where number of variables is no more than number of equations. That means all SysML properties
can’t be exported as variables, some must be marked as constants or parameters.
SysML properties
You can prepare your model by:
• Applying «PhSConstant» stereotype to a SysML property if it has fixed value and not going to
change during simulation. It is exported as Modelica parameter.
• Applying «PhSVariable» stereotype if you want to mark property as Modelica variable and fill
appropriate tags (isContinuous, isConserved and changeCycle) if needed. Read more >>(see page
631)
If SysML properties are not annotated with «PhSConstant» or «PhSVariable» stereotypes, they all are
exported equally, as you select in the Modelica Export Options dialog: all as parameters, variables or
skipped. Descriptions of export options >>(see page 672)
Diagrams
SysML IBD diagrams can be optionally converted into Modelica graphical annotations. Only one IBD
diagram per Block is exported, so if you have more, make sure that the right one is the first under the
Block in the model browser. Rename, remove or change the order if needed. Descriptions of export
options >>(see page 672)
Exporting model to the Modelica file
You can export to the Modelica file:
• Block(see page 545), Constraint Block(see page 548)- exports the whole model (Read the procedure
below).
• Instance Specification1186 - exports particular configuration with initial values and subtype
instances as specified in the instance model. How to >>(see page 678)
• Internal Block Diagram(see page 520) - partial export of parts, ports and connectors from this
diagram. How to >>(see page 676)
To export the whole model to the Modelica file
1. In the Model Browser(see page 20), select the Block you want to export and do one of the following:
• In the top-left corner of the modeling tool, click File > Export To > Modelica.
• Right-click the selected Block and then click Tools > Export to Modelica.
2. Specify export options in the Modelica Export Options dialog. Option descriptions >>1187
3. Click OK.
The Modelica (.mo) file is generated and saved to your file directory.
Modelica Export Options
Each time you export your model to the Modelica file, the Modelica Export Options dialog opens. The
detailed descriptions are provided in the following table.
1186 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
1187 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-ModelicaExportOptions
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
674
Option
Description
Export not
annotated SysML
properties as:
Select one of the following to define how the mechanism must export not annotated
properties (read the definition below):
• as Variables
• as Parameters
• Do not export
Annotated SysML properties definition
An annotated SysML properties are used in the model if
the «PhsVariable» or «PhsConstant» stereotypes are applied for the Block properties. The
detail information about «PhsVariable» or «PhsConstant» stereotypes, are provided in
the Using SysPhs variable and SysPhs constant1188 page and OMG SysPhS
specification1189.
Contrary to annotated SysML properties, not annotated SysML properties means that your
model is without «PhsVariable» or «PhsConstant» stereotypes.
You can check, if those stereotypes are used in your model by clicking
in
the Containment tab toolbar(see page 23) and selecting the Show Applied
Stereotypes option. The stereotypes becomes visible next to the element name
in the Containment tree(see page 23).
Generate diagram
layout
annotations
If selected, converts SysML IBD diagram into Modelica graphical annotations. Only first IBD
diagram of the Block is exported. If you have more, make sure the right one is the first
under the Block in the Model Browser. Rename, remove or change the order if needed.
1188 https://docs.nomagic.com/display/SYSMLPTWRT/Using+SysPhs+variable+and+SysPhs+constant
1189 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
675
Option
Description
Click to specify the location of generated file or rename the file.
« Electrical Circuit example to Simulink and Simscape model R2016a(see page 667)
Partial model export to the Modelica file »(see page 676)
Related pages
• Partial model export to the Modelica file1190
• Nested properties export to the Modelica file1191
• Extending models with Comments(see page 703)
Partial model export to the Modelica file
On this page
• Intoduction(see page 676)
• Procedure of partial export to the Modelica file(see page 677)
Intoduction
You can export to Modelica file only parts, ports, and connectors displayed in the Internal Block
Diagram(see page 520). The mechanism generates Modelica (.mo) file with an IBD name and save it to
your file directory. See the following figure as example of export result and difference between whole
(exporting Block) and partial (exporting IBD) model export. After the Circuit IBD export, only displayed
parts are exported: Source, Resistor, Capacitor and Ground. Differently, when exporting the Circuit Block all parts are exported: Source, Resistor, Capacitor, Inductor, Resistor and Ground. Learn how to export the
whole model >>(see page 672)
1190 https://docs.nomagic.com/display/SYSMLPTWRT/Partial+model+export+to+the+Modelica+file
1191 https://docs.nomagic.com/display/SYSMLPTWRT/Nested+properties+export+to+the+Modelica+file
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
676
The difference between whole (exporting Block) and partial (exporting IBD)
export.
Procedure of partial export to the Modelica file
You can use the Internal Block Diagram(see page 520) to select what to export to Modelica. Prepare the
IBD by modifying an existing or creating a new one and display parts and ports(see page 128)
automatically. Follow the procedure below, to export the Inetrnal Block Diagram to the *.mo file.
To export a part of model to the Modelica file
1. Create new or modify existing Internal Block Diagram by displaying elements you want to export.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
677
Nested properties can also be exported. Read the rules of nested properties export to
the Modelica file >>(see page 701)
2. Do one of the following:
• In the Model Browser(see page 20), select the Internal Block Diagram and in the top-left
corner of the modeling tool, click File > Export To > Modelica.
• Right-click an empty space on the Internal Block Diagram pane(see page 15) and
click Tools > Export to Modelica.
• In the Model Browser(see page 20), right-click the Internal Block Diagram and
click Tools > Export to Modelica.
3. In the Modelica Export Options dialog, specify export options. Option descriptions >>1192
4. Click OK.
The Modelica (.mo) file is generated and saved to your file directory.
« Modelica export(see page 672)
Instance Specifications export to the Modelica file »(see page 678)
Instance Specifications export to the Modelica file
You can export to the Modelica file a particular configuration with initial values and subtype instances
as specified in the instance model. The mechanism generates Modelica (.mo) file with an Instance
Specification name and save it to your file directory. In the following figure, the p Instance Specification
is exported to the Modelica file.
The export of p Instance Specification to the Modelica file.
1192 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-ModelicaExportOptions
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
678
To export a configuration with initial values
1. In the Model Browser1193, select an Instance Specification1194 you want to export and do one of
the following:
• In the top-left corner of the modeling tool, click File > Export To > Modelica.
• Right-click the selected Instance Specification and then click Tools > Export to Modelica.
2. Specify export options in the Modelica Export Options dialog. Option descriptions >>1195
3. Click OK.
The Modelica (.mo) file is generated and saved to your file directory.
« Partial model export to the Modelica file(see page 676)
Reusing and referencing existing Modelica models »(see page 679)
Reusing and referencing existing Modelica models
On this page
• Introduction(see page 679)
• Using «ModelicaBlock» stereotype(see page 680)
• Using «ModelicaParameter» stereotype(see page 681)
• Using «ModelicaPort» stereotype(see page 681)
• Referencing with Modelica library components(see page 682)
Introduction
The «ModelicaBlock», «ModelicaParameter» and «ModelicaPort» stereotypes are created to specify
which SysML properties (including ports) of its blocks correspond to Modelica library reusable
component. The semantics of these elements are given by the corresponding elements in the Modelica
libraries. For more details, read the OMG SysPhS specification1196.
The figure below shows how the «ModelicaBlock», «ModelicaParameter» and
«ModelicaPort» stereotypes are defined in the SysML profile.
1193 https://docs.nomagic.com/display/SYSMLPTWRT/Model+Browser
1194 https://docs.nomagic.com/display/MDTWRT/Instance+Specification
1195 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-ModelicaExportOptions
1196 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
679
Modelica stereotypes.
Using «ModelicaBlock» stereotype
Apply «ModelicaBlock» stereotype for a Block(see page 545) to reference its Part Properties(see page 560)
with an equivalent component in the Modelica library. The value of the name tag must be a fully
qualified name (e.g. Modelica.Electrical.Analog.Basic.Capacitor) of the corresponding component in the
Modelica library. How to reference Block properties with Modelica library component >>(see page 682)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
680
The «ModelicaBlock» stereotype applied for a Capacitor Block and created
reference to corresponding component in the Modelica library.
Using «ModelicaParameter» stereotype
Apply «ModelicaParameter» stereotype for a Value Property(see page 569) to reference it with an
equivalent parameter of a Modelica library. The stereotyped Value Property must be owned by a Block
stereotyped by «ModelicaBlock». The value of the name tag is the name of the corresponding
parameter, and the value attribute gives the value of this parameter. If the value is empty, the value of
the parameter must be given using initial values of the stereotyped property.
In the following image, after the «ModelicaParameter» stereotype is applied for the r Value Property, its
name tag value is referenced with the parameter R in the Modelica library. How to reference Value
Property with Modelica library parameter >>(see page 682)
The «ModelicaBlock» Resistor owns r Value Property stereotyped
by «ModelicaParameter» and created reference to the Modelica library
component.
Using «ModelicaPort» stereotype
Apply «ModelicaPort» stereotype for a port to reference it with an equivalent port in the Modelica
library. The stereotyped port must be owned by a Block with «ModelicaBlock» stereotype applied. The
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
681
value of the name tag gives the name of the corresponding port in the Modelica library. How to
reference port with Modelica library port >>(see page 679)
The «ModelicaBlock» Ground owns p Proxy Port stereotyped by «ModelicaPort»
and created reference to the Modelica library component.
Referencing with Modelica library components
To reference SysML elements with Modelica library components
1. Apply «ModelicaBlock», «ModelicaParameter» and «ModelicaPort» stereotypes respectively for
Block(see page 545), Value Property(see page 569) and Proxy Port(see page 562). How to apply stereotype
>>1197
1197 https://docs.nomagic.com/display/MDTWRT/Stereotype#Stereotype-Applyingastereotype
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
682
2. In the Specification window1198, make sure the Expert or All mode is selected.
3. Select the Tags property group, make sure
is switched off.
4. Select the name property and click Create Value.
5. Type the name of the corresponding component in the Modelica library as follows:
- for a Block type the fully qualified name, e.g. Modelica.Electrical.Analog.Basic.Resistor.
- for a Value Property type the parameter name, e.g. R.
- for a port type the port name, e.g. p.
6. Click Close.
The SysML elements are referenced with the component in the Modelica library.
The figure below shows a comparison between exported model without and with references to the
Modelica library components. How to export your model to Modelica file >>(see page 672)
« Instance Specifications export to the Modelica file(see page 678)
Building Modelica libraries in SysML »(see page 683)
Building Modelica libraries in SysML
Introduction
The Modelica library allows quickly to build SysML models for simulation by reusing library elements. It
provides model components in many domains that are based on standardized interface definitions.
The library components are ready to use and shareable between applications. Find all modelica
libraries >>1199
Importing the Modelica Standard Library
The Modelica Standard Library brings the main components and standard component interfaces from
many engineering domains. It provides the black-boxes of Modelica blocks that contains only ports and
parameters. The Modelica Standard Library components are imported to SysML project as follow:
1198 https://docs.nomagic.com/display/MDTWRT/Specification+window
1199 https://www.modelica.org/libraries
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
683
• All Modelica types have «ModelicaBlock» stereotype applied with a full Modelica type name
specified in the Name property.
• Modelica blocks are created as SysML Blocks.
• Modelica parameters are created as SysML Value Properties.
• Modelica connectors are created as SysML Interface Blocks.
• Primitive types are created as Value Types.
• If Modelica connector has property with flow keyword defined, it is created as SysML Flow
Property for an Interface Block.
• For Block (defined as Model in Modelica) import and create only ports (no keyword, type is
Modelica Connector/SysML InterfaceBlock) and parameters as ValueProperties.
• Units and quantities are mapped to ISO80000 units and quantities.
All modelica libraries depend from the Modelica Standard Library because of references
between components. That's why the first thing you nee to do before using Modelica libraries in SysML
projects, is to import the Modelica Standard Library.
To import Modelica Standard Library
1. Download1200 the Modelica Standard Library and extract it.
2. Open a project in which you want to use the Modelica library components.
3. In the top-left corner of the modeling tool, click the File > Import From > Modelica Library.
4. Select the ModelicaStandardLibrary > Modelica folder from your file system.
5. Click Import.
The Modelica Standard Library is imported. See the following figure. All packages with their
structure is created in the Containment tree and types are placed in corresponding packages.
Note, that file names may do not match with the element names and the file structure may do
not correspond to the location in the directory. The package structure is the same as Modelica
package structure.
In order to to avoid the import of Modelica Standard Library in each project, you can
save it as a project and reuse in other projects. For this, do the following:
a. Share project data >>1201
b. Use other projects in a project >>1202
1200 https://github.com/modelica/ModelicaStandardLibrary/releases
1201 https://docs.nomagic.com/display/MDTWRT/Sharing+project+data
1202 https://docs.nomagic.com/display/MDTWRT/Using+other+projects+in+a+project
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
684
Using Modelica libraries
Let's say we need to use OpenHydraulics modelica library components in a project. Both Modelica
Standard Library and OpenHydraulics library must be imported since some components from
OpenHydraulics library have references to standard library.
To use the Modelica libraries in SysML project
1. Create new or open existing SysML project.
2. Import the Modelica Standard Library. Follow the procedure above >>(see page 684)
3. Download1203 the OpenHydraulics library and extract it.
1203 https://github.com/modelica-3rdparty/OpenHydraulics
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
685
4. In the top-left corner of the modeling tool, click the File > Import From > Modelica Library.
5. Select the OpenHydraulics folder from your file system.
6. Click Import.
The OpenHydraulics library is imported. The figure below demonstrates the reference between
components from OpenHydraulics and Modelica Standard Libraries: the RealOuput type of a Proxy
Port y which is in OpenHydraulics library references to Modelica Standard Library.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
686
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
687
You can create model by dragging Modelica library elements directly on diagram pane. As shown in the
figure below, the simple schema is created by dragging Capacitor and Resistor Blocks on IBD diagram
pane and displaying all their ports. To complete schema creation, you need to type names c and r for
a Part Properties and connect ports.
The figure below shows exported model to Modelica file which already contains references to the
Modelica library components.
« Reusing and referencing existing Modelica models(see page 679)
Using SysPhs variable and SysPhs constant »(see page 689)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
688
Using SysPhs variable and SysPhs constant
On this page
• Introduction(see page 689)
• Using the «PhSConstant» stereotype(see page 689)
• Using the «PhSVariable» stereotype(see page 690)
Introduction
The «PhSConstant» and «PhSVariable» stereotypes extend the Property metaclass (see the figure
below) for physical interaction and signal flow simulation. Simulation modeling specifies how numeric
and boolean variable values can change in more detail than in system models. Simulation modeling
distinguishes numeric variables with values that can change continuously (possibly infinitesimally) over
time from those that always change discretely (finitely), possibly only at regular intervals. It also
identifies variables with values that can only change between simulations (constants), rather than
during simulations. For mode details, read the OMG SysPhS specification1204.
Simulation stereotypes.
Using the «PhSConstant» stereotype
Apply a «PhSConstant» stereotype to a SysML property if it has a fixed value and will not change during
simulation. It is exported as a Modelica/Simulink parameter.
Block properties stereotyped by «PhSConstant» must:
• Be typed by Real, Integer, or Boolean, or one of their specializations.
1204 https://www.omg.org/spec/SysPhS/About-SysPhS/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
689
• Have a multiplicity of 1, unless they are also stereotyped by a MultidimensionalElement.
• Not redefine more than one other property, which must have the same name and type and must
be stereotyped by a «PhSVariable» or «PhSConstant».
In the example below, the «PhSConstant» stereotype is applied for the C1 Value Property(see page 569) of
the HeatingCalculation Block (see page 545)and specificHeat, waterVolume Value Property(see page 569) of
the TemperatureIncrease Block(see page 545).
Usage of the «PhSConstant» and «PhSVariable» stereotypes.
Using the «PhSVariable» stereotype
Apply the «PhSVariable» stereotype if you want to mark property as a Modelica/Simulink variable and
fill in the appropriate tags (isContinuous, isConserved and changeCycle) if needed.
The descriptions of the «PhSVariable» stereotype tags1205:
• isContinuous - determines whether the property value varies continuously or discretely.
• isConserved - determines whether values of the property value are conserved or not.
• changeCycle - specifies the time interval at which a discrete property value may change.
Follow the rules below when applying «PhSVariable» stereotype:
• The property must be typed by Real, Integer, or Boolean, or one of their specializations.
• isContinuous may be true only when the stereotyped property is typed by Real or one of its
specializations.
• isConserved may be true only when isContinuous is true and the stereotyped property is on a
block specialized from ConservedQuantityKind.
• changeCycle may be other than zero only when isContinuous is false.
• changeCycle must be positive or zero.
• A property stereotyped by «PhSVariable» must not be stereotyped by «PhSConstant».
• Properties stereotyped by «PhSVariable» must have a multiplicity of 1, unless they are also
stereotyped by MultidimensionalElement.
• Flow properties stereotyped by «PhSVariable» that are connected and matching must have
opposite directions (in/out or out/in), the same type and multiplicity, and the same value for
isContinuous on the applied stereotype.
1205 https://docs.nomagic.com/display/MDTWRT/Tag
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
690
• Flow properties stereotyped by «PhSVariable» that have an "in" direction may connect to and
match no more than one other flow property stereotyped by «PhSVariable».
• A property stereotyped «PhSVariable» can redefine at most one other property. It must have the
same name and type and must be stereotyped by «PhSVariable».
• When a property stereotyped by «PhSVariable» with isContinuous=true redefines another
property, the «PhSVariable» applied to the redefined property must have isContinuous=true.
• When a property stereotyped by «PhSVariable» with isContinuous=false redefines another
property stereotyped by «PhSVariable» with isContinuous=false, the redefining property’s
changeCycle must be an integer multiple of the redefined property’s changeCycle.
As an example, see the figure above, where the «PhSVariable» stereotype is applied for the xlntg Value
Property(see page 569) of the HeatingCalculation Block(see page 545).
« Building Modelica libraries in SysML(see page 683)
Supported and unsupported SysML concepts »(see page 691)
Related pages
• Stereotype1206
• Tag1207
Supported and unsupported SysML concepts
SysML supported concepts
The translator can be used for both high-level black-box architecture export, when simulation engineer
have to implement all block behaviors in Modelica tool, or full or partial behavior implementation too.
Export engine takes one block as a starting point and exports all containing model structure recursively
including:
• Block 1208and interface1209 definitions.
• Parts1210, value properties1211, flow properties1212 with their default/initial values1213 and
associated units1214.
We highly recommend to use part names, otherwise the artificial names are exported.
• Proxy 1215and flow ports1216 and connectors1217 among them.
1206 https://docs.nomagic.com/display/MDTWRT/Stereotype
1207 https://docs.nomagic.com/display/MDTWRT/Tag
1208 https://docs.nomagic.com/display/SYSMLPTWRT/Block
1209 https://docs.nomagic.com/display/SYSMLPTWRT/Interface+Block
1210 https://docs.nomagic.com/display/SYSMLPTWRT/Part+Property
1211 https://docs.nomagic.com/display/SYSMLPTWRT/Value+Property
1212 https://docs.nomagic.com/display/SYSMLPTWRT/Flow+Property
1213 https://docs.nomagic.com/display/SYSMLPTWRT/Initial+Values
1214 https://docs.nomagic.com/display/SYSMLPTWRT/Unit
1215 https://docs.nomagic.com/display/SYSMLPTWRT/Proxy+Port
1216 https://docs.nomagic.com/display/SYSMLPTWRT/Flow+Port
1217 https://docs.nomagic.com/display/SYSMLPTWRT/Connectors
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
691
• Parametrics – constraints blocks1218, constraint properties1219, constraint parameters1220 and
connections among them
• State Machines1221
• IBD 1222diagrams
« Using SysPhs variable and SysPhs constant(see page 689)
Simulating exported Modelica models »(see page 692)
Simulating exported Modelica models
Four sample models are prepared to demonstrate the Modelica export usability: Humidifier, Electric
Circuit, Hydraulics and Signal Processor. Learn more about each of sample model >>(see page 703)
You can find sample models:
• In the modeling tool: Welcome window > Samples > Simulink and Modelica
Transformation.
• in the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation.
This section is dedicated to describe how to simulate exported Modelica models by using the
Dymola1223 tool. Each Modelica model simulation is described separately:
• Electrical Circuit(see page 692)
• Hydraulics example(see page 695)
• Signal Processor example(see page 698)
« Supported and unsupported SysML concepts(see page 691)
Electrical Circuit »(see page 692)
Electrical Circuit
This page describes how to simulate ElectricCircuit example model in Dymola. Learn more
about ElectricCircuit sample model >>(see page 715)
You can find the ElectricCircuit sample model in:
1218 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Block
1219 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Property
1220 https://docs.nomagic.com/display/SYSMLPTWRT/Constraint+Parameter
1221 https://docs.nomagic.com/display/SYSMLPTWRT/State+Machines
1222 https://docs.nomagic.com/display/SYSMLPTWRT/SysML+Internal+Block+Diagram
23 https://www.3ds.com/products-services/catia/products/dymola/?
12
woc=%7B%22category%22%3A%5B%22category%2Fdymola%22%5D%7D&wockw=card_content_cta_1_url%3A%
22https%3A%2F%2Fblogs.3ds.com%2Fcatia%2F%22
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
692
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> ElectricCircuit.
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\ElectricCircuit.
To simulate the Circuit Modelica model
1. Export the Circuit Block to Modelica file. How to >>1224
2. Make sure the Dymola tool is installed. How to >>1225
3. Start the Dymola.
4. Click File > Open > Load... and select saved Circuit.mo file from your file directory. A Circuit model
is displayed in the Package Browser.
5. In the Graphics tab toolbar, click
to check model for syntax and semantic errors.
The result panel displays whether the model is ready for simulation.
1224 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-
ExportingmodeltotheModelicafile
25 https://www.3ds.com/products-services/catia/products/dymola/?
12
woc=%7B%22category%22%3A%5B%22category%2Fdymola%22%5D%7D&wockw=card_content_cta_1_url%3A%
22https%3A%2F%2Fblogs.3ds.com%2Fcatia%2F%22
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
693
6. Setup the simulation run for the model:
a. Select the Simulation tab and in its toolbar click
.
b. In the Simulation Setup dialog, specify the Start time value to 0 and the Stop time value
to 60 seconds (or any other reasonable amount of time; for this model, 60 seconds is enough).
c. Click OK.
7. In the Simulation tab toolbar, click
.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
694
When the simulation is completed, the output is displayed in the panel at the bottom
and the Circuit variables are displayed in the Variable Browser.
8. To see input and output of the Circuit model, select variables in the Variable Browser as
follows: Circuit > _Circuit > c, i, rc, ri, s > iThru, vDrop. The current (iThru) and voltage (vDrop)
variable across each of the circuit’s 5 components are displayed on the Plot window: the
capacitor (c), the inductor (i), the voltage source (v), and the resistors (rc, ri). In the example
below, only iThru, vDrop of s variable are displayed.
« Simulating exported Modelica models(see page 692)
Hydraulics example »(see page 695)
Hydraulics example
This page describes how to simulate the Hydraulics example model in Dymola. Learn more
about Hydraulics sample model >>(see page 722)
You can find the Hydraulics sample model in:
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> Hydraulics .
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\Hydraulics.
To simulate the ConnectedTanks model
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
695
1. Export the ConnectedTanks Block to Modelica file. How to >>1226
2. Make sure the Dymola tool is installed. How to >>1227
3. Start the Dymola.
4. Click File > Open > Load... and select saved ConnectedTanks.mo file from your file
directory. A ConnectedTanks model is displayed in the Package Browser.
1226 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-
ExportingmodeltotheModelicafile
27 https://www.3ds.com/products-services/catia/products/dymola/?
12
woc=%7B%22category%22%3A%5B%22category%2Fdymola%22%5D%7D&wockw=card_content_cta_1_url%3A%
22https%3A%2F%2Fblogs.3ds.com%2Fcatia%2F%22
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
696
5. In the Graphics tab toolbar, click
to check model for syntax and semantic errors.
The result panel displays whether the model is ready for simulation.
6. Setup the simulation run for the model:
a. Select the Simulation tab and in its toolbar click
.
b. In the Simulation Setup dialog, specify the Start time value to 0 and the Stop time value
to 120 seconds (or any other reasonable amount of time; for this model, 120 seconds should be
enough) .
c. Click OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
697
7. In the Simulation tab toolbar, click
.
When the simulation is completed, the output is displayed in the panel at the bottom
and the ConnectedTanks variables are displayed in the Variable Browser.
8. To see the input and output of the ConntectedTanks model, select variables in the Variable
Browser as follows:
- ConnectedTanks > _ConnectedTanks > fluidReservoir1 > fluidLevel. The changing fluid level
of the first tank is displayed on the Plot window. See the following figure.
- ConnectedTanks > _ConnectedTanks > fluidReservoir2 > fluidLevel. The changing fluid level
of the second tank is displayed on the Plot window. See the following figure.
« Electrical Circuit(see page 692)
Signal Processor example »(see page 698)
Signal Processor example
This page describes how to simulate Signal Processor example model in Simulink. Learn more
about Signal Processor sample model >>(see page 733)
You can find the Signal Processor sample model in:
• the modeling tool: Welcome window > Samples > Simulink and Modelica Transformation
> SignalProcessor.
• the Installation directory: <modeling tool installation directory>\samples\SysML\Simulink
and Modelica Transformation\Signal Processor.
To simulate the TestBed model
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
698
1. Export the TestBed Block to Modelica file. How to >>1228
2. Make sure the Dymola tool is installed. How to >>1229
3. Start the Dymola.
4. Click File > Open > Load... and select saved TestBed.mo file from your file directory. A
TestBed model is displayed in the Package Browser.
5. In the Graphics tab toolbar, click
to check model for syntax and semantic errors.
The result panel displays whether the model is ready for simulation.
6. Setup the simulation run for the model:
a. Select the Simulation tab and in its toolbar click
.
b. In the Simulation Setup dialog, specify the Start time value to 0 and the Stop time value
to 20 seconds (or any other reasonable amount of time, for this model 20 seconds should be
enough) .
1228 https://docs.nomagic.com/display/SYSMLPTWRT/Modelica+export#Modelicaexport-
ExportingmodeltotheModelicafile
29 https://www.3ds.com/products-services/catia/products/dymola/?
12
woc=%7B%22category%22%3A%5B%22category%2Fdymola%22%5D%7D&wockw=card_content_cta_1_url%3A%
22https%3A%2F%2Fblogs.3ds.com%2Fcatia%2F%22
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
699
c. Click OK.
7. In the Simulation tab toolbar, click
.
When the simulation is completed, the output is displayed in the panel at the bottom
and the TestBed variables are displayed in the Variable Browser.
8. To see the input and output of the SourceToSinkModel, variables from the Variable
Browser must be chosen. Selecting SourceToSinkModel > SourceToSink > inputSignal > y will
display the input on the plotting
window. Selecting SourceToSinkModel > SourceToSink > scopeSignal > output will display the
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
700
simulation’s output on the plotting window.
« Hydraulics example(see page 695)
Advanced Modelica features »(see page 701)
Advanced Modelica features
This section contains the information about a specific situations and features to solve them:
« Signal Processor example(see page 698)
Nested properties export to the Modelica file »(see page 701)
Nested properties export to the Modelica file
When using a partial model export(see page 676), the nested properties can also be exported to the
Modelica file. Nested properties are exported in the following rules:
• If nested properties are not displayed in Compartments(see page 195), all of them are exported. As
example, see the figure below where the vaporGenerationPlant Part Property(see page
560) contains four nested parts (Heating, Evaporation, Radiation,
VaporGenerationPlantCalculation) that are exported to Modelica file.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
701
• If any of nested elements are displayed in Compartments(see page 195), only these are exported. In
the example below, only Heating and Radiation nested parts of the vaporGenerationPlant Part
Property(see page 560) are exported to Modelica file. Learn how to display parts and ports >>(see
page 128)
To export nested properties, use the procedure described in the Partial model export to the
Modelica file1230page.
0 https://docs.nomagic.com/display/SYSMLPTWRT/
123
Partial+model+export+to+the+Modelica+file#PartialmodelexporttotheModelicafileProcedureofpartialexporttotheModelicafile
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
702
« Advanced Modelica features(see page 701)
Extending models with Comments »(see page 703)
Extending models with Comments
You can extend the model using a Comment element with «ModelicaExtension» stereotype. The
Modelica Extension comment can be owned by the element it is attached to or have a different owner.
The Modelica Extension content is exported to the Modelica file together with the model. The Modelica
code is generated depending on the owner of the Modelica Extension comment.
There are several cases of the model extension with Modelica Extension comments and how the
content of the comments is exported:
• When the comment is attached to a property which is owned by the Block. In the generated
code, the Block is added as a model and the properties and content from the Modelica Extension
comments are added in the same order as it was in the model.
• When the comment is attached to a Block. In the generated code, the content from the
comment, attached to the Block is added first, and the content from the comments, attached to
the Block's properties, is added afterwards.
• When the comment is attached to an Instance. In this case, the Modelica code is generated the
same way as for Block.
You can attach the Modelica Extension comment to the nested instances. However, only
first two levels of the nested instances are supported.
Sample models
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
703
Below, a list of example cases are provided to show the usability of the Modelica/Simulink export plugin
for SysML modeling and simulation of physical interactions signal flows. Each example contains a brief
description of the example as well as capabilities of the plugin that the example attempts to display.
1. Humidifier System Example: Humidifying a Room
a. The purpose of this example is to show how a SysML model of a humidifier system, one
that is trying to control the humidity in a room, can be created with state machines and
signal flows. It is important to note that the signal flows between system components are
unidirectional, and physical conservation laws do not apply in these applications because
the same signal can be sent to multiple receiving components. In some cases, the state
machines determine a timing or event trigger for when a signal flows between
components.
b. Capabilities: Modeling & simulation of signal flows; exports SysML state machine diagrams
into state machines in Simulink’s Stateflow environment.
2. Circuit Example: Voltage Source, Resistors, Inductor, Capacitor
a. The purpose of this example is to show how a simple SysML model involving the flow of
electric charge (current) from a voltage source to resistors, an inductor, and a capacitor
can be exported into Modelica or Simulink/Simscape using the SysML extension plugin for
signal flow and physical interaction. Though the documentation should lead to generating
Modelica and Simulink/Simscape files from the SysML model, the already exported
Modelica and Simulink/Simscape files are provided in the package as examples.
b. Capabilities: Modeling & simulation of physical interactions; exports the SysML plugin's
properties into flow and effort variables for Simulink’s Simscape toolbox (electrical
domain).
3. Signal Processor Example: From Source to Sink
a. The purpose of this example is to show a SysML model of a signal processor, where a
signal is sent from a function generator to be conditioned by an amplifier, frequency
filters, and a mixer.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
704
This example portrays the signal flows between system components. The signal flow is
unidirectional, and physical conservation laws do not apply in these applications because
the same signal can be sent to multiple receiving components. In this model, the function
generator is being amplified and then sent to parallel filters (one high-pass filter and one
low-pass filter), until the mixer combines the filtered signals for the final
signal processor output.
b. Capabilities: Modeling & simulation of signal flows.
4. Hydraulics Example: Two Tanks & A Pipe
a. The purpose of this example is to show how a simple SysML model involving the flow of a
fluid between two tanks can be exported into Modelica or Simulink/Simscape using the
SysML extension plugin for signal flow and physical interaction. Though the
documentation should lead to generating Modelica and Simulink/Simscape files from the
SysML model, the already-exported Modelica and Simulink/Simscape files are provided in
the package as examples.
b. Capabilities: Modeling & simulation of physical interactions; exports the SysML plugins
properties into flow and effort variables for Simulink’s Simscape toolbox (mechanical
domain).
« Extending models with Comments(see page 703)
Creating a simple model »(see page 706)
Related pages:
• Creating a simple model(see page 706)
• Electric Circuit sample(see page 715)
• Hydraulics sample(see page 722)
• Humidifier system sample(see page 729)
• Signal processor sample(see page 733)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
705
Creating a simple model
This section explains the creation of a basic electrical circuit model using the SysML extension. The
model can be exported into Modelica® and Simulink®. The same process can be used to create more
complex models.
Read the following topics:
• Overview of the model(see page 706)
• Blocks and Parts(see page 706)
• Component variables and parameters(see page 709)
• Component Behavior(see page 709)
• Setting initial values(see page 713)
• Generating simulation files(see page 713)
« Sample models(see page 703)
Overview of the model »(see page 706)
Overview of the model
The electrical circuit is made of three simple components: a ground, an electrical source, and a resistor
(see the picture below). The source and the resistor both have two pins, and the ground has one pin.
The positive pin of the source is connected to the negative pin of the resistor. The positive pin of the
resistor is connected to the negative pin of the source. The ground is also connected to the negative pin
of the source.
« Creating a simple model(see page 706)
Blocks and Parts »(see page 706)
Blocks and Parts
The electrical circuit model has the main block and the circuit. To model the structure of the circuit,
create a Circuit Block(see page 545) and an associated Internal Block Diagram (IBD)(see page 520). The circuit
has three parts: a source, a ground, and a resistor. These parts are of a different type since they all have
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
706
a different behavior. It is necessary to create a Block for each of these parts. The picture below shows
how the Internal Block Diagram look like.
The Circuit IBD consists of three parts: source, ground and resistor.
« Overview of the model(see page 706)
Connectors »(see page 707)
Related pages:
• Connectors(see page 707)
• Block structure(see page 708)
Connectors
In the Circuit Internal Block Diagram (IBD)(see page 520), it is now possible to display the ports on the
parts and connect them using Connectors(see page 544) (see the figure below).
Ports can be displayed in IBD by selecting all existing parts, then right-clicking and from the
shortcut menu selecting the Related Elements > Display Ports.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
707
Three parts are connected trough the p and n ports.
« Blocks and Parts(see page 706)
Block structure »(see page 708)
Block structure
The three components are connected through ports that correspond electrical pins. The source and the
resistor each have both a positive and a negative pin, whereas the ground has only one positive pin.
Electrical energy (carried by electric charge) is transmitted between components through the pins. The
image below contains the Block Definition Diagram (BDD)(see page 519) that illustrates this.
A new abstract block TwoPinComponent is created to illustrate abstract components that have two ports
(pins). These two ports are named p and n, and they are both of the ChargeFlowElement type.
ChargeFlowElement belongs to the simulation library (SysPhSLibrary.mdzip), and it can be selected by
unchecking Apply Filter in the type list.
The p and n ports typed by ChargeFlow Element Interface Block.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
708
« Connectors(see page 707)
Component variables and parameters »(see page 709)
Component variables and parameters
Each of the electrical component has variables corresponding to the domain being modeled. Electrical
components have voltage and current. The voltage corresponds to the difference of potential between
the positive and negative pin (across the component), whereas the current corresponds to the amount
of charge going through the component.
Two properties v and i are created in TwoPinComponent. During the simulation, the voltage and the
current will vary over time. As a result, the properties need to be stereotyped by PhSVariable. Their type
must be a ValueType that has a unit with a symbol. Voltage and Current are already provided by the
simulation library, so they can be selected (remove filters if necessary). The resistor has an additional
property - the resistance. A property r is created in the resistor. Since the resistance will not change
during the simulation, the property needs to be stereotyped by PhSConstant. It is necessary to create a
new ValueType called Resistance that will serve as a type for this property. It must have a corresponding
SysML Unit with a symbol set to Ω. Additionally, it must be a specialization of SysML Real.
The image below shows how Block Definition Diagram (BDD)(see page 519) should look like at this point.
The i and v Value properties typed by Current and Voltage value types.
« Block structure(see page 708)
Component Behavior »(see page 709)
Component Behavior
Now that the variables and parameters are defined, the behavior of each block can be specified. To do
so, equations are used to establish the relationships among different properties.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
709
In SysML, these equations are represented as constraints within ConstraintBlocks. Their parameters
correspond to the PhSVariables and PhSConstant of the blocks (“i”, “v”, “r”) as well as the PhSVariables
present in the type of the ports (“pv”, “pi”, “nv”, “ni”). Refer to the image below to see how these
constraints are represented in a Block Definition Diagram (BDD)(see page 519).
An abstract ConstraintBlock TwoPinComponentConstraint is created to gather parameters and equations
common to the source and the resistor. These equations state that the voltage of the component is the
difference between the voltage in the positive pin and the voltage in the negative pin. The current of the
component is the current coming from the positive pin, and the current in the two pins must add up to
zero. As for the ground, the constraint states that the voltage in the pin is zero.
Constraint Blocks with specified parameters and equations in BDD.
« Component variables and parameters(see page 709)
Constraint properties and bindings »(see page 711)
Related page:
• Constraint properties and bindings(see page 711)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
710
Constraint properties and bindings
The previously created constraints need to be bound to the variable of each block. To do so, constraint
properties are created in each block, and the block variables and parameters are bound to the
constraint parameters accordingly. Images bellow show the bindings for the ground, the source, and
the resistor respectively.
To create bindings, it is necessary to display the ports as well as their parts using the shortcut
menu (Related Elements > Display Ports and Related Elements > Display Parts).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
711
The SysML Parametric Diagram of Ground Block.
The SysML Parametric Diagram of Source Block.
The SysML Parametric Diagram of Resistor Block.
« Component Behavior(see page 709)
Setting initial values »(see page 713)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
712
Setting initial values
The last step of the modeling is to set the value for the resistance in the circuit. This can be done by
creating two InstanceSpecifications, one for the source and one for the resistor. Values are used for the
amplitude of the source, and for the resistance of the resistor respectively. These InstanceSpecifications
are then set as default values of the circuit source and the circuit resistor (see the image below).
The Source and Resistor Instance Specifications with set default values.
« Constraint properties and bindings(see page 711)
Generating simulation files »(see page 713)
Generating simulation files
To generate a simulation file, right-click the Block corresponding the system being simulated (see the
image below). The shortcut menu displays the menu item Tools that contains Export to Modelica and
Export to Simulink.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
713
To export to Modelica and Simulink
1. Depending on the selected option (either Export to Modelica or Export to Simulink), do one of
the following:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
714
• Specify options such as output directory, how to export unannotated SysML properties,
and whether diagram layout annotations should be generated on export.
• Specify options such as format, output directory, S-Function or Simscape, Simscape port
libraries, and whether to apply the <<SimulinkBlock>> stereotype.
2. Click OK.
« Setting initial values(see page 713)
Electric Circuit sample »(see page 715)
Electric Circuit sample
Circuit sample:
Once the ElectricCircuit.mdzip file is opened, the model should be already opened to the Circuit internal
block diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
715
« Generating simulation files(see page 713)
Description of the ElectricCircuit.mdzip SysML models »(see page 716)
Description of the ElectricCircuit.mdzip SysML models
In this model an electric circuit is built using a source, a ground, two resistors, a capacitor, an inductor,
as well as ports that allow to connect these circuit components to show the flow (and potential to flow)
of charge from one component to the other. In total, there are 8 SysML diagrams in this model:
1. CircuitComponents Block Definition Diagram: This diagram contains a block describing a
generic two-pin (ports) electrical component class, TwoPinElectricalComponent, that serves as a
generalization of other blocks. The generalization contains a block describing the Resistor class
and its properties, a block describing the Inductor class and its properties, a block describing the
Capacitor class and its properties, and a block describing the Source class and its properties.
There is also a block describing the Ground class that is needed as a reference point for the flow
potential (voltage) of charged particles in an electric circuit.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
716
2. CircuitConstraints Block Definition Diagram: Mathematical expressions are provided in
constraint blocks ResistorConstraint, CapacitorConstraint, InductorConstraint, and SourceConstraint
that extend the mathematical constraints and parameters defined in
BinaryElectricalComponentConstraint for each of their respective constraint block classes. These
four constraint blocks, along with the mathematical expressions in the GroundConstraint
constraint block, describe the flow and potential to flow behavior of charged electric particles
that go through different components in the electric circuit.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
717
3. Circuit Internal Block Diagram: This diagram is part of the Circuit block, and it shows layout of
components in the electric circuit design. The links between the ports of the components depict
the physical interactions that occur in the electric domain, that is the flow (current) and potential
to flow (voltage) of the charged particles that move through the electric circuit.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
718
4. Capacitor Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the CapacitorConstraint constraint block are bound to the
properties and ports of the Capacitor block (from the CircuitComponents block definition
diagram).
5. Ground Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the GroundConstraint constraint block are bound to the
potential to flow property of the Ground block’s port (from the CircuitComponents block definition
diagram).
6. Inductor Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the InductorConstraint constraint block are bound to the
properties and ports of the Inductor block (from the CircuitComponents block definition diagram).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
719
7. Resistor Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the ResistorConstraint constraint block are bound to the
properties and ports of the Resistor block (from the CircuitComponents block definition diagram).
8. Source Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the SourceConstraint constraint block are bound to the
properties and ports of the Source block (from the CircuitComponents block definition diagram).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
720
« Electric Circuit sample(see page 715)
SysML Default values and instance specifications »(see page 721)
SysML Default values and instance specifications
Default values in the form of instance specifications cap, r1, r2, src and ind are assigned to the part
properties c:Capacitor, ri:Resistor, rc:Resistor, s:Source and i:Inductor in the Circuit internal block diagram,
respectively. These instance specifications cap, r1, r2, src and ind are assigned the values 0.01 Farads, 20
Ohms, 10 Ohms,10.0 Henries, 220.0 Ampere and 0.1 l respectively. These values stay the same across
each simulation run, but changes can be made by tweaking the stored values in the model’s instance
specifications.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
721
Hydraulics sample
Setup for exporting into Modelica/Simulink:
Once the Hydraulics.mdzip file is opened, the model should already be opened to
the ConnectedTanks internal block diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
722
« SysML Default values and instance specifications(see page 721)
Description of the Hudraulics.mdzip SysML models »(see page 723)
Description of the Hudraulics.mdzip SysML models
In this model two tanks filled with unequal amounts of a fluid are connected at the bottom of each tank
by a pipe. The flow of the fluid from the tank with more fluid to the tank with less fluid is modeled in
SysML, where it can be exported into Modelica or Simulink/Simscape for simulation. There are 5 SysML
diagrams in this model:
1. TwoTanksComponents Block Definition Diagram: This diagram contains a block describing
the Tank class and its properties, a block describing the Pipe class and its properties, and
interface block describing the conserved substance flow rate and potential to flow.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
723
2. TwoTankConstraints Block Definition Diagram: Mathematical expressions are provided in
constraint blocks PipeConstraint and TankConstraint to show the relationship between the flow
and pressure of the conserved substance (the fluid) that goes through Tank and Pipe
components.
3. Tank Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the TankConstraint constraint block are bound to the
properties of the Tank block (from the TwoTanksComponents block definition diagram).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
724
4. Pipe Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the PipeConstraint constraint block are bound to the properties
of the Pipe block (from the TwoTanksComponents block definition diagram).
5. ConnectedTanksIBD Internal Block Diagram: This diagram is a part of the ConnectedTanks
block. The interconnections between the blocks and ports are shown in this diagram. There are
two part properties (fluidReservoir1 and fluidReservoir2) of type Tank and a part flowMedium of
type Pipe as well as ports that determine the interface between the tanks and pipe where the
fluid flows through (characterized by flow rate and potential to flow in the connectors between
the ports).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
725
« Hydraulics sample(see page 722)
Default SysML values and instance specifications »(see page 726)
Default SysML values and instance specifications
1. Three initial values required for the simulations are determined by instance specifications that
are set in the fluidReservoir1, fluidReservoir2 and pipe part properties in the
ConnectedTanks internal block diagram. Instance specifications t1, t2 and p are assigned as the
default values to each of these part properties fluidReservoir1, fluidReservoir2, pipe respectively.
These specifications assign an initial values to the value properties that are constant throughout
each simulation run and are required to solve the constraints.
2. The Tank block is a classifier of t1 and t2 instance specifications with default numeric values
specified. The slots assigned default values are:
a. tanksufaceArea: This slot determines the surface area of the tank, and is required to
determine the amount of pressure in the tank as the fluid level changes. The unit is m2.
b. gravity: This slot is the gravity constant assumed to be 9.8 m/s2. It is is also required to
determine the amount of pressure in the tank as the fluid level changes.
c. fluidDensity: This is a slot of the fluid in the tank itself that is coupled with and assigned
to the tank. It is required for the constraints that determine the amount of fluid pressure
in the tank. The unit for this property is kg/m3.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
726
d. fluidLevel: This slot determines the height of the fluid level in each tank at the start of the
simulation but will change as the simulation runs and the fluid level height changes with
the flow of fluid from one tank to the other. Their units are m.
3. The Pipe block is a classifier of p instance specification with default numeric values specified. The
slots assigned default values are:
a. pipeLength: This is a slot of the pipe that determines the resistance of the pipe to the flow
of fluid through the pipe. The longer the pipe, the more resistance the fluid has to face to
flow through the pipe. The unit is m.
b. radius: Assuming the pipe has a circular cross-section, the radius is required to determine
the cross-sectional area of the pipe. This is in turn required to determine the resistance of
the pipe to the flow fluid through the pipe. The smaller the radius, the more resistance the
fluid has to face to flow through the pipe. The unit is m.
c. dynamicViscosity: This is a slot of the fluid in the pipe itself that is coupled with and
assigned to the pipe. It is required for the constraints that determine the amount of
resistance to fluid flow in the pipe. The unit for this property is kg/(s*m).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
727
« Description of the Hudraulics.mdzip SysML models(see page 723)
Humidifier system sample »(see page 729)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
728
Humidifier system sample
Setup for exporting into Modelica/Simulink:
Once the Humidifier.mdzip file is opened, the model is already opened to the Humidifier System content
diagram.
« Default SysML values and instance specifications(see page 726)
Description of State Machines used in this model »(see page 729)
Description of State Machines used in this model
In this model, there are two main components that interacted with each other: the room and the
humidifier system. The purpose of the humidifier is to control the humidity of the room once a user has
selected a humidity level for the room. State machines are used to show the control of humidity in the
room, both to depict the user’s input and the humidifier’s control system. For the sake of brevity, the
following SysML diagrams form only the core set of diagrams from the SysML model, and include all
three state machines used in this example.
1. HumidifierSystem Internal Block Diagram: This diagram is part of the HumidifierSystem block.
The flow between the part properties room (typed by HumidifiedRoom) and humidifier (typed by
Humidifier) are shown to be going through ports. These ports are the interfaces between the two
system components, and contain numeric information about the humidity and vapor going
between the two components.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
729
2. Humidifier Internal Block Diagram: This diagram is part of the Humidifier block. The flow within
the humidifier system are depicted in this diagram. With information about the room’s current
humidity from the humidity_in port, and control signal from the humidity control system from the
part property control (typed by Control), the part property heaterControl (typed by HeaterControl)
uses a state machine to decide whether or not to turn on the heater control system in order to
generate vapor in the part property vaporgenerationplant (typed by VaporGenerationPlant). The
part property vaporgenerationplant also uses information from the part property control to
determine the amount of vapor released into the room (and consumed from the part property
watertank, typed by WaterTank) as well as let control know the temperature of water in the vapor
generation system. The part property control also uses information from when the user wants to
turn on the humidifier from the part property usage (typed by UsageScenario) and information
about the amount of water in the water tank from the part property watertank.
3. UsageScenarioStateMachine State Machine Diagram: This state machine diagram depicts the
behavior of the part property usage in the Humidifier internal block diagram and it determines
when (as in, at which times) the humidifier system should humidify the room.
4. ControlStateMachine State Machine Diagram: This state machine diagram depicts the
behavior of the part property control in the Humidifier internal block diagram and it determines
the operation of the heater control system heatercontrol and the vapor generation plant
vaporgenerationplant based on information about the water levels in the tank from the watertank,
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
730
the temperature of vaporization from the vaporgenerationplant, and the operation of when the
humidifier system should be started from usage.
5. HeaterControlSM State Machine Diagram: This state machine diagram depicts the behavior of
the part property heaterControl in the Humidifier internal block diagram. It uses information from
the room’s current humidity from the humidity_in pin, the target humidity from the part property
targetHumidity, and the control signal from control in order to decide whether or not to turn on
the heater control system for the generation of vapor with vaporgenerationplant.
6. VaporGenerationPlant Internal Block Diagram: This internal block diagram depicts numerical
calculations for the informational flow associated with the part property vaporgenerationplant in
the Humidifier internal block diagram. Given the control signal from control for its water fan and
the control signal from the heaterControl, after the numeric calculations it gives information
about the water temperature to the control as well as information about the generated vapor
from the watertank and for the room.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
731
7. WaterTank Parametric Diagram: This parametric diagram depicts numerical calculations for
the informational flows associated with the part property watertank in the Humidifier internal
block diagram. Given the information about water consumed for vapor generation from
vaporgenerationplant, numeric calculations provide information about the volume of remaining
water and this new information is sent to the control part property.
8. HumidifiedRoom Internal Block Diagram: This diagram is part of the HumidifiedRoom block.
This internal block diagram depicts the information flow of the vapor going into the room and
the humidity that results from this vaporization. The information about the vapor being inputted
into the room goes through a unit conversion with the part property mLpH2mLpS (typed by block
VolumeConversion) before passing on the information to part property rH (typed by
RelativeHumidity). This information, along with information about current relative humidity of the
room from part property rH and information about the saturated vapor pressure from part
property sVP (typed by SaturationVaporPressure), is used to calculate the amount of humidity in
the room. The part property toPercentage (typed by PercentageConversion) converts the signal
about room humidity from fractions into a percentage value and sends this new information
about the percentage value back to the humidifier system.
9. SaturationVaporPressure Parametric Diagram: This parametric diagram depicts numerical
calculations for the informational flows associated with the part property sVP (typed by
SaturationVaporPressure) in the HumidifiedRoom internal block diagram. Numerical calculations in
this diagram provide information about the room’s vapor pressure to be sent as a signal used to
calculate current room humidity in the HumidifiedRoom internal block diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
732
10. RelativeHumidity Internal Block Diagram: This internal block diagram depicts numerical
calculations for the informational flows associated with the part property rH (typed by
RelativeHumidity) in the HumidifiedRoom internal block diagram. It calculates the current humidity
of the room given the room’s vapor pressure levels as well as the incoming vapor coming from
the humidifier system.
« Humidifier system sample(see page 729)
Signal processor sample »(see page 733)
Signal processor sample
Setup for exporting into Modelica/Simulink:
Once the SignalProcessor.mdzip file is opened, the model should already be opened to the
TestBed internal block diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
733
« Description of State Machines used in this model(see page 729)
Description of the SignalProcessor.mdzip SysML models »(see page 734)
Description of the SignalProcessor.mdzip SysML models
In this model, there are three main components: an input signal generator, a signal processor, and an
output signal scope. The signal flow from the input generator to the output scope is modeled by 10
SysML diagrams.
1. SignalProcessorComponents Block Definition Diagram: This diagram contains a block
describing a generic two-pin (ports) signal component class, TwoPinSignalComponent, that is a
generalization of other blocks. The generalization contains a block describing the Amplifier class
and its properties, a block describing the HighPassFilter class and its properties, and a block
describing the LowPassFilter and its properties. The block describing the Mixer class (and its
properties) is related to the RealSignalInElement and RealSignalOutElement interface blocks as well
as TwoPinSignalComponent block.
2. SignalProcessorConstraints Block Definition Diagram: Mathematical expressions are
provided in constraint blocks AmplifierConstraint, LowPassFilterConstraint, HighPassFilterConstraint
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
734
that make use of the parameters used in the constraint
block BinarySignalComponentConstraint.These three constraint blocks, along with the
MixerConstraint constraint block, describe the filtering and mixing of the generated signal that
goes through the signal processor. The SignalSinkConstraint constraint block expresses the
output of the signal processor as the output of the entire system, and the SinalSourceConstraint
constraint block provides the generated input signal that flows through the system.
3. TestBed Internal Block Diagram: This diagram is part of the TestBed block. The flow of signal
between the part properties inputSignal (typed by SignalSource), dSP (typed by SignalProcessor),
and scopeSignalOutput (typed by SignalSink) is shown to be going through ports typed
by RealSignalInElement and RealSignalOutElement interface blocks. These ports are the interface
between the three connected system components.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
735
4. SignalSource Parametric Diagram: The constraint parameters (variables in the mathematical
expressions of the constraints) of the SignalSourceConstraint constraint block are bound to the
properties and ports of the SignalSource block (from the SignalProcessorComponents block
definition diagram).
5. SignalSink Parametric Diagram: The constraint of the SignalSinkConstraint constraint block are
bound to the properties and ports of the SignalSink block (from the SignalProcessorComponents
block definition diagram).
6. SignalProcessor Internal Block Diagram: This diagram is part of the SignalProcessor block and
shows how the signal becomes amplified, filtered, and then remixed again. The flow of signal
between the part properties hpf (typed by HighPassFilter), lpf (typed by LowPassFiler), a (typed by
Amplifier), and m (typed by Mixer) is shown to be going through ports typed by SignalPin. These
ports serve as interfaces where the signal flows from one part to the other.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
736
7. Amplifier Parametric Diagram: The constraints of the AmplifierConstraint constraint block are
bound to the properties and ports of the Amplifier block (from the SignalProcessorComponents
block definition diagram).
8. LowPassFilter Parametric Diagram: The constraint of the LowPassFilterConstraint constraint
block are bound to the properties and ports of the LowPassFilter block (from the
SignalProcessorComponents block definition diagram).
9. HighPassFilter Parametric Diagram: The constraint of the HighPassFilterConstraint constraint
block are bound to the properties and ports of the HighPassFilter block (from the
SignalProcessorComponents block definition diagram).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
737
10. Mixer Parametric Diagram: The constraint of the MixerConstraint constraint block are bound to
the properties and ports of the Mixer block (from the SignalProcessorComponents block definition
diagram).
« Signal processor sample(see page 733)
Default SysML values and specifications of the instance »(see page 738)
Default SysML values and specifications of the instance
1. The SignalSource, Amplifier, HighPassFilter, and LowPassFilter blocks are classifiers of ss, ampfr,
hpfvar and lpfvar instance specifications. Each have a slot with numeric value defined that stays
constant throughout each simulation run and are required to solve the constraints. The value of
slot alfa in each of the hpfvar and lpfvar instance specifications are required to determine the cutoff frequency for the signal filters. The value of slot g in ampfr instance specification is required
to determine the gain factor of the Amplifier block. The value of slot amp in the ss instance
specification determines the amplitude of the generated signal.
2. Three initial values required for the simulations are determined by instance specifications that
are set in the two filter part properties and amplifier part property (parts hPF, lPF and a) in the
SignalProcessor internal block diagram. Instance specifications hpfvar, lpfvar and ampfr are
assigned as the default values to each of these part properties hPF, lPF and a, respectively. These
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
738
specifications assign an initial value for the unit-less variable x in each part that is required for
filtering the signal in the signal processor at the start of the simulation. But as the simulation
runs, these values do change.
« Description of the SignalProcessor.mdzip SysML models(see page 734)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
739
Index
A
Automatic-connections 189
Automatic-connectors 189
Autowire 189
C
Compatible-connections 192
Conjugate 152
Connect-parts 189
Context-specific-values 217
D
Default-values 217
Display-parts 128, 304
Display-ports 128, 304
E
Enable-part-compartments 128, 304
Enforce-ports-compatibility 192
H
Hide-ports 128, 304
I
Initial-values 217
Interface 152
Is_conjugated 152
M
Modelica-block 679
Modelica-parameter 679
Modelica-port 679
O
Open-api 602
P
Parametric diagram
• SysML Parametric diagram 523
Pattern 229
Phsconstant 689
Phsvariable 689
Ports 152
R
Rollup-pattern 229
Rollups 229
S
Shorthand-notation 145
Simulink-block 628
Simulink-parameter 628
Simulink-port 628
Sysml-modeling-language 10
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
740
General capabilities
No Magic, Inc., a Dassault Systèmes company, 2021
Contents
Plugin documentation 20
User Guide 20
MagicDraw getting started 21
Understanding the user interface 21
Most common shortcut keys 60
Assigning shortcut keys 62
Customizing environment options 64
Customizing and Selecting Perspective 66
Configuration files 71
Disabling inbound network activity 74
Improving performance 75
Support 82
Creating path variables 89
Launchers 91
Special characters 93
Working with projects 94
Basic concepts 95
Creating projects 95
Saving projects 102
Autosave 103
Opening projects 104
Importing data from other UML tools and formats 105
Exporting UML models 190
Creating and using project templates 192
Projects with file attachments 197
Setting project options 203
Searching 205
Filtering 221
Project partitioning 223
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
3
Contents
MOF support 258
Ecore support 260
Working with standard profiles 276
CATIA Systems Synthesis 277
Diagrams 279
UML diagrams 279
Analysis diagrams 318
Extension diagrams 363
Tables 390
Diagramming 475
Creating diagrams 475
Opening diagrams 477
Dragging objects 480
Displaying elements 483
Copying and pasting objects 510
Using diagram tabs 512
Specifying diagram properties 513
Specifying diagram style properties 514
Diagram name and its context name synchronization 515
Diagram frame 516
Drawing diagram shapes 518
Overviewing other diagrams 520
Legends 524
Table with diagram information 556
Changing diagram type 557
Working with symbols of model elements 558
Working with paths and relationships 560
Smart manipulation 570
Compartments 572
Smart shape sizing 574
Selection and multiple selections 575
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
4
Contents
Copying text or images to diagrams 577
Nesting image shapes 577
Zooming 578
Using the grid 579
Pusher and magnet 580
Layout 582
Saving as image 588
Layout templates 593
Diagram aspects 611
Complete diagrams 627
Printing 631
Presentation Mode 632
UML elements 637
Model elements and symbols. 637
Action 637
Activity 651
Activity Final Node 654
Actor 654
Anchor 656
Artifact 657
Association 659
Behavior 670
Class 675
Collaboration 687
Comment 691
Component 693
Component realization 694
Connector 694
Constraint 697
Containment 701
Control Flow 704
Data Type 704
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
5
Contents
Decision and Merge 706
Dependency 708
Device 714
Event 715
Exception Handler 717
Execution Environment 718
Extend 718
Extension 720
Flow Final Node 720
Fragment 721
Function Behavior 724
Gate 725
Generalization 728
Include 736
Information Flow 737
Information Item 739
Initial Node 741
Instance Specification 741
Interaction 745
Interface 747
Interface realization 750
Internal Transition 751
Interruptible activity region 752
Lifeline 752
Link 756
Manifestations 761
Message 762
Message Occurrence Specification 785
Metaclass 785
Model 785
Node 786
Note 796
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
6
Contents
Object Flow 799
Object Node 803
Opaque Behavior 804
Package 805
Part 810
Pin 811
Port 815
Profile 822
Profile Application 824
Realization 824
Reception 826
Report Template 827
Slot 830
Smart Package 830
State Machine 848
Stereotype 861
Substitution 865
Subsystem 866
Swimlanes 866
Tag 869
Template 871
Transition 877
Trigger 881
Use Case 881
Value Specification 904
Auxiliary diagram symbols 906
Representation of the Common category in the Diagram pallet 906
Image Shape 906
Diagram Overview 907
Separator 909
Rectangular shape 911
Text Box 912
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
7
Contents
Working with model elements 914
Model elements and symbols. 915
Creating elements from other resources 916
Importing data from Excel or CSV files 918
Specification window 953
Default property values 960
Editing property values 961
Sorting elements 974
Refactoring 976
Extracting 987
Formatting symbols 1015
Customizing lists of properties and commands 1043
Manage Navigation 1046
Selecting elements 1065
Selecting port and part types 1076
Generic numbering mechanism 1078
Favorites 1087
HTML editor 1093
Parameters synchronization 1102
Copying and opening element URLs 1107
Setting date and time 1108
Owner of model elements 1111
Selecting element types 1113
Changing the tooltips style 1116
Marking elements as auxiliary 1117
Reordering elements 1119
Tools 1120
Model Merge 1120
Metric Suites 1150
Model Transformation Wizard 1169
Executable concepts 1185
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
8
Contents
Resource Manager 1189
Creating Setters and Getters 1195
Implementing or Overriding Operations 1196
Automatic Instantiation Wizard 1198
Spelling Checker 1203
Integration with external Evaluators 1212
Project Statistics 1228
Model analysis 1231
Analyzing usages and dependencies 1231
Traceability 1240
Specifying criteria for querying model 1266
Element usage in diagrams 1319
Identifying Package Dependencies 1322
Comparing projects 1333
Validation 1348
Model Visualizer 1388
Suspect Links 1397
Collaborative modeling 1404
Basic concepts 1405
Scenario to get started 1406
Starting a collaboration session 1407
Using Teamwork Cloud 1411
Report Wizard 1551
Report Wizard dialog 1552
Report Designer 1594
MRZIP file automatic deployment 1622
Generating reports from the Containment tree 1624
Report Wizard Quick Print 1630
Report Wizard template language 1632
Template variables 1641
Helper tools 1661
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
9
Contents
Report Wizard template editor 1787
Generating Reports from Report Wizard 1793
Generating reports from the command line 1843
Configuring Report Wizard 1860
Debug report template 1870
Use Case driven 1874
Javadoc syntax tool 1883
Import tool 1890
JavaScript tool 1894
Groovy script tool 1900
Ruby Script tool 1904
Dialog tool 1907
Text tool 1918
Model validation tool 1923
Generic table tool 1929
Dependency Matrix tool 1944
Query tool 1950
Template Creation Tutorial 1960
FAQs 1997
Appendix A: report extensions 2002
Appendix B: office open XML format template 2010
Appendix C: OpenDocument format template 2025
Appendix D: HTML tag support 2035
Appendix E: DocBook Support 2071
Authentication with 3DEXPERIENCE platform 2084
UML Profiling and DSL Guide 2086
Demo 2086
Basic Concepts 2086
Working with Profiles 2087
Creating Profiles 2088
Applying Stereotypes 2094
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
10
Contents
Modifying Profile 2095
Customizing diagrams 2096
Creating new diagram type 2097
Creating new dependency matrix type 2104
Customizing diagram palette 2109
Creating new relation map type 2111
Creating new generic table type 2115
Domain Specific Language customization 2119
Creating Customization Data 2119
Using Customization Data 2145
Distributing custom diagrams 2205
Distributing custom diagrams using Resource Manager 2205
Distributing custom diagrams using Customize Diagrams dialog 2207
Distributing Profiles 2209
Exchanging Profiles via XMI 2210
Developer Guide 2210
Plugins 2211
How plugins work 2212
Writing plugins 2213
Compilation classpath 2215
Testing plugin 2215
Detail information 2217
Resource dependent plugin 2223
Creating test cases 2224
Developing plugins using IDE 2232
Distributing Resources 2238
How to distribute resources 2238
Creating required files and folders structure 2240
Resource manager descriptor file 2245
Building a resource distribution file 2248
Adding new functionality 2249
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
11
Contents
Invoking actions 2249
Creating new actions 2251
Actions' hierarchy 2258
Working with icons 2259
Running action with progress 2262
Working with project 2263
Project concept 2263
Project descriptor 2264
Projects management 2264
Working with projects from Teamwork Cloud server 2271
Project structure decomposition 2271
Project options 2272
Project life-cycle events 2274
UML model 2274
Working with UML model 2276
Event support 2302
Working with stereotypes and tagged values 2309
UML Model Implementation Using EMF 2320
Working with diagrams 2322
Diagram types 2322
Creating a diagram 2327
Presentation elements (symbols) 2328
Selection in diagrams 2348
Diagram events 2349
Custom diagram painters 2352
Creating diagram images 2353
Working with Generic tables 2353
Working with Dependency Matrix 2359
Working with Relation Map 2371
Working with Gantt Chart 2371
Managing navigation in model 2372
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
12
Contents
Customizing double-click behavior 2372
Managing hyperlinks 2372
Properties 2373
Information logging 2374
Environment Options 2375
Example of adding custom environment options 2375
Example of accessing environment options 2376
Browser 2376
Adding custom panel or tree into browser 2377
Configuring node text and icon 2377
Using and extending other UI components 2378
Configuring element Specification window 2378
Showing Element seletion dialog 2379
Showing question, error, warning dialogs 2379
Showing notifications, adding text into Message Window 2380
Creating PopupMenu or other menu 2382
Adding custom project window 2382
Annotating the elements 2383
Creating validation rules 2384
Validation rule developer's roadmap 2384
Create OCL2.0 validation rule 2385
Binary validation rule 2387
Implementing a binary validation rule 2388
Binary validation rule in the plugin 2393
Script validation rule 2393
How to provide a solution for a problem found during validation? 2394
Custom Legend Item Implementation 2395
Custom elements numbering 2395
IJavaNumberPart interface 2396
INumberingAction interface 2397
Creating Use Case Scenario 2402
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
13
Contents
Merging and differencing 2404
Code engineering using API 2405
Code engineering set 2405
Managing code engineering sets 2407
Samples of the forward and reverse engineering 2409
Oracle DDL generation and customization 2410
Understanding the Oracle DDL template structure 2411
Customizing templates 2412
Utility class 2413
Example 2421
Running programs in batch mode 2423
Specifying batch mode program classpath and required system
properties 2424
Implementing command line launchers 2429
Starting MagicDraw or other modeling tool as part of another
application 2430
MagicDraw file format 2431
File format in MagicDraw 3.6-17.0 2431
File format in MagicDraw 17.0.1 and up 2431
Jython Scripting 2433
Creating script 2434
JavaScript migration from Nashorn to Rhino engine 2436
Class object and .class property 2437
Accessing Java packages and classes from script 2437
Creating Java arrays from script 2437
Java exceptions 2437
Plugins migration 2438
Plugins migration to MagicDraw 18.2 and later Open API 2438
Plugins migration to MagicDraw 18.1 and later Open API 2438
Plugins migration to MagicDraw 18.0 and later Open API 2438
Plugins migration to MagicDraw 17.0.1 and later Open API 2444
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
14
Contents
Plugins migration to MagicDraw 15.0 and later Open API 2454
Getting licensing information 2456
Multi-threading 2456
Idle job service 2456
Application environment 2457
Attached Files 2457
Element Referencing in Texts 2457
Creating text that refers an element 2458
Setting text with element references 2459
Creating custom drag and drop handlers 2460
Code Engineering 2461
Abbreviations 2461
Code Engineering Sets 2462
Round Trip Set dialog box. Add files tab 2464
Round Trip Set dialog box. Add data from the model tab. 2465
Generating Code 2466
Code Generation for a Set 2466
Reverse Options 2469
Importing JAVA .JAR packages 2472
Rules of association or attribute creation on reverse 2474
Global options for Code Engineering 2477
Code Engineering Options for all Sets in your Project 2477
Java Documentation Properties dialog box 2483
Round Trip 2485
Type Mapping Table 2486
Files of Properties 2487
Java Code Engineering 2488
References 2488
Java support in modeling tools developed by No Magic, Inc. 2488
Java Mapping to UML 2489
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
15
Contents
Java CE Options 2511
Method Implementation Reverse 2515
C++ Code Engineering 2516
References 2516
Supported dialects 2517
C++ ANSI Profile 2518
C++ Mapping to UML 2533
Conversion from an Earlier Project Version 2568
DSL Customization 2599
ANSI Profile Constraints 2604
Project Constraints 2605
Microsoft C++ Profiles 2609
Symbian macro 2658
@see on documentation 2659
Doxygen-after-member documentation 2659
CG Properties Editor 2659
Support C++ dialects 2661
CORBA IDL Mapping To UML 2661
CORBA interface implementation 2663
Macro Engine Documentation 2664
Introducing Macro Engine 2664
Selecting a default macro language 2665
Creating a Macro 2667
Adding a Macro and editing Macro information 2667
Opening Macro Information Dialog 2668
Adding a Macro and Its Information 2669
Editing Macro Information 2674
Macro Information Dialog Mnemonic Keys 2674
Deleting and executing Macros 2676
Deleting a Macro 2677
Executing a Macro 2677
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
16
Contents
Organizing Macros Dialog Mnemonic Keys 2679
Macro keyboard shortcuts 2681
Assigning a keyboard shortcut to a Macro 2684
Removing keyboard shortcuts from Macro 2684
Opaque objects 2685
Getting an Opaque Object 2686
Getting Element Property Values 2687
Setting Element Property Values 2688
Getting the Child of an Element 2692
Getting the Owner of an Element 2693
Creating a New Element 2693
Creating a Relationship Between Elements 2693
Removing an Element 2694
Adding a Stereotype to an Element 2694
Removing a Stereotype from an Element 2694
Printing Element Details 2694
Recording Macros 2695
Supported scripting languages 2697
Using code completion to develop BeanShell scripts 2698
Using NetBeans IDE to develop Groovy Scripts 2699
Using Eclipse to develop Groovy scripts 2700
Installing Gems for JRuby 2701
Adding a scripting language to MagicDraw 2702
UML 2.5.1 Meta Model 2703
UML 2.5.1 support 2704
Profiling changes 2705
Profiling changes in the UML metamodel. 2705
Migration to UML 2 user guide 2705
Basic concepts and instructions 2706
Migration of projects using MagicDraw Project Converter 2706
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
17
Contents
Migration of used projects and profiles 2707
Converting Used Projects 2708
Solving Cyclic Usages 2708
Converting Stereotypes/Profiles 2708
Tracing migration problems 2709
To trace marked elements 2709
Problems and solutions of data mapping 2710
Class Diagram 2710
Sequence Diagram 2711
State Diagram 2711
Activity Diagram 2712
Implementation Diagram 2712
Guidelines for Working with Large Models 2713
Teamwork Cloud Operations Specifics 2713
Project Opening 2713
Committing 2714
Switching Used Project versions 2714
Merge 2714
Publishing projects to Cameo Collaborator for Teamwork Cloud 2715
Content History 2715
Teamwork Cloud Operations Troubleshooting 2715
Common Features 2716
Validation 2716
Querying the Model 2717
Diagrams 2718
Working with Model Browser 2719
Virtual Environments 2720
Antivirus 2720
Memory and Disk Space Requirements for Large Models 2721
Memory 2721
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
18
Contents
Disk Space 2721
Legal Notices 2722
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
19
Plugin documentation
SysML Plugin1
Cameo Simulation Toolkit2
Cameo Requirements Modeler Plugin3
UAF Plugin4
UPDM 2 Plugin
5
Cameo DataHub Documentation6
CSV Import Plugin7
Docs of other versions
• MagicDraw 2021x Refresh18
• MagicDraw 2021x9
• MagicDraw 19.0 LTR SP410
• MagicDraw 19.0 LTR SP311
• MagicDraw 19.0 LTR SP212
• MagicDraw 19.0 LTR SP113
• MagicDraw 19.0 LTR14
• MagicDraw 18.515
• MagicDraw 18.416
• MagicDraw 18.317
• MagicDraw 18.218
User Guide
Welcome! This user guide will walk you through the basics of using MagicDraw, including working with
projects, setting up the modeling environment, collaborating with the help of Teamwork Cloud(see page
1411), generating reports, and more.
Use the search box to find a specific topic or select one from the list below:
• MagicDraw getting started(see page 21)
• Working with projects(see page 94)
• Diagrams(see page 279)
• Diagramming(see page 475)
• UML elements(see page 637)
• Auxiliary diagram symbols(see page 906)
• Working with model elements(see page 914)
• Tools(see page 1120)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
20
• Model analysis(see page 1231)
• Collaborative modeling(see page 1404)
• Report Wizard(see page 1551)
• Authentication with 3DEXPERIENCE platform(see page 2084)
MagicDraw getting started
This section will help you get started if you are new to MagicDraw. You can get acquainted with the user
interface, learn how to register your product, customize the modeling environment and perform other
pre-modeling tasks.
Use the search box to find a specific topic or select one from the list below:
• Understanding the user interface(see page 21)
• Most common shortcut keys(see page 60)
• Assigning shortcut keys(see page 62)
• Customizing environment options(see page 64)
• Customizing and Selecting Perspective(see page 66)
• Configuration files(see page 71)
• Disabling inbound network activity(see page 74)
• Improving performance(see page 75)
• Support(see page 82)
• Creating path variables(see page 89)
• Launchers(see page 91)
• Special characters(see page 93)
Understanding the user interface
The user interface is where you will control your software installation. The MagicDraw window contains
the following:
• Main menu(see page 23)
• Main toolbars(see page 24)
• Model Browser(see page 26)
• Diagram toolbars(see page 24)
• Diagram palette(see page 2109)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
21
Watch this demo to get familiar with MagicDraw working environment, main concepts, and
functions.
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
https://www.youtube.com/watch?v=0B76lH-QtrM&
Related pages
• MagicDraw getting started(see page 21)
• Most common shortcut keys(see page 60)
• Customizing environment options(see page 64)
• Customizing and Selecting Perspective(see page 66)
• Configuration files(see page 71)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
22
Main menu
The main menu located at the top of the modeling tool window contains the following elements:
Menu
element
Description
File
Contains basic project management related commands, e.g., New Project(see page 96), Open
Project(see page 104), and Save Project(see page 102). Among other actions, this menu also allows you
to import data from external sources, export a project, or print diagrams(see page 631).
Edit
Use this menu when working with diagrams on the Diagram pane. The Edit menu contains the
commands for selecting, cutting, copying and pasting(see page 510) symbols or entire diagrams, and
finding elements in the current project.
View
Contains commands allowing you to zoom in or zoom out(see page 578) of a diagram, use and
customize a diagram grid(see page 579), manage diagram tabs (if you have several open diagrams)
and customize the toolbars(see page 24) of your modeling tool.
Layout
Use this menu for managing the layout(see page 582) of the symbols on an active diagram. To enable
certain Layout menu commands, you must select more than one symbol.
Diagrams
Allows you to create a new diagram(see page 475), access diagram wizards and history, and create a
custom diagram type(see page 2096).
Options
Use this menu to specify project options(see page 203) and environment options(see page 64), select or
customize perspectives(see page 67), and choose the style for your modeling tool.
Tools
Contains the set of commands allowing you to execute model transformations(see page 1169) for
converting models between different modeling domains, generate reports(see page 1793), evaluate
expressions(see page 1311) on the actual testing model, generate code for the selected model data,
create and organize macros(see page 2664), access the DataHub plugin19 and more.
Analyze
Use this menu to access the wizards of different types of diagrams(see page 1388), create
implementation matrices, analyze and show model dependencies, compare two project
versions(see page 1333), validate a project(see page 1348), display paths(see page 506) or related
elements(see page 501), and perform other model analysis related actions.
Collaborat
e
Contains the commands for working with server projects(see page 1404).
Window
Allows you to manage the layout of different windows in your modeling tool.
Help
Among other actions, this menu allows opening online documentation, managing resources, and
accessing modeling tool-related information.
19 https://docs.nomagic.com/display/CDH185
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
23
Customizable menus
You can choose which of these menus are shown/hidden by customizing modeling tool
perspectives(see page 67).
Related pages
• Understanding the user interface(see page 21)
• Toolbars(see page 24)
• Model Browser(see page 26)
• Image Library tab(see page 56)
Toolbars
Toolbars help to speed up your work when performing commonly used tasks. Your modeling tool has
two types of toolbars:
• Main toolbars - contain commands for basic project related tasks and are located at the top of
the modeling tool window, right under the main menu.
• Diagram toolbars - contain commands for working with diagram symbols and are located at the
top of the diagram pane.
To show or hide different toolbars
• In the main menu, click View, select either Main Toolbars or Diagram Toolbars, and in the
showed menu select/clear the check boxes of the toolbars that you want to show/hide.
• Right-click the desired toolbar area and in the shortcut menu select/clear the check boxes of the
toolbars that you want to show/hide.
Customizing toolbars
You can customize existing toolbars by adding or removing buttons, and also create new custom
toolbars.
To add a new toolbar
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
2. In the Customize Toolbars dialog, select the desired toolbar group and click the Add > New
Toolbar.
3. Enter the name of the new toolbar and click OK.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
24
After completing the above steps, a new toolbar is created in the selected toolbar group, and you can
choose to show/hide it in the shortcut menu of the respective toolbar area. Note that the newly created
toolbar does not have any buttons, so you need to add them after creating it.
To add a new button to a toolbar
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
2. In the Customize Toolbars dialog, select the desired toolbar and click the Add > Button.
3. In the Add Button dialog, select the desired button or command and click OK.
4. Click OK one more time to close the Customize Toolbars dialog.
A new button is added to the selected toolbar. To add more than one button, repeat steps 2 and 3 as
many times as you need.
To remove a toolbar or button
1. Do one of the following:
• In the main menu, select View > Main Toolbars/Diagram Toolbars > Customize.
• Right-click the toolbar area, and in the shortcut menu select Customize.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
25
2. In the Customize Toolbars dialog, select the toolbar or button you want to remove and click the
Remove button.
After completing the above steps, the selected toolbar or button is removed from the respective
toolbar area or toolbar. Toolbars that have been removed do not appear in the menu for selecting
which toolbars you want to show.
Restoring default toolbars
To undo all the actions for customizing toolbars, open the Customize Toolbars dialog, as
described in step 1 above, and click the Reset to Defaults button.
Related pages
• Understanding the user interface(see page 21)
• Main menu(see page 23)
• Model Browser(see page 26)
• Image Library tab(see page 56)
Model Browser
Model Browser provides a visual representation of the hierarchy of your model elements.
The items in the Model Browser hierarchy can be:
• Compressed – a
plus sign next to an icon indicates that the icon is compressed. This is the
default setting. It means that the element contains other model elements. Click the plus sign to
expand the icon and view its subordinate items.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
26
• Expanded – a
minus sign next to an icon indicates that the icon is fully expanded. Click the
minus sign to collapse the item.
If there is no plus or minus sign next to an icon, it does not contain other model elements.
The Model Browser is a hierarchical navigation tool that allows you to manage your model data,
including packages, components, classes, all UML diagrams, extension mechanisms, and other data.
The Model Browser may be used as an alternative tool to the MagicDraw menus and toolbars. It is
easier to work with project diagrams and data elements using the Model Browser.
You can perform the following operations in the Model Browser:
• Create and specify model elements.
• Copy, cut and paste model elements.
• Delete model elements.
• Drag model elements to the Diagram pane and inside the Model Browser.
• Drag data in the Code engineering sets (you may create data in the root package Model branch,
drag it to the Code Engineering sets, and then the round trip object is created automatically).
• View the hierarchy of all model elements.
• Create a symbol for the selected model element in the current diagram.
• Manage diagrams.
• Manage extension mechanisms, such as constraints, stereotypes, and tagged values.
• Java reverse of a class from the classpath.
• Adjust the code engineering sets.
• Generate code for particular sets.
• Filter visible items by any model type (for example, class, package, operation, component, state,
and others - for both views and dates).
• Sort the visible items of the selected model element.
• Sort all model elements.
• Display search results.
• Display locked elements in the server project.
The Model Browser window has the following tabs:
• Containment tab groups data into the logical sets.
• Structure tab represents deeply nested structures of the structured classifier.
• Inheritance tab represents the model hierarchy of the project.
• Diagrams tab groups diagrams according to the diagrams type or shows them as a list.
• Model Extensions tab represents all predefined and created constraints and stereotypes.
• Search Results tab displays search results.
The Search Results tab is not displayed by default. It appears after you perform searching.
• Lock View tab represents locked elements of the server project.
The Lock View tab is not displayed by default. It can appear if you are working on a server
project. For more information, see Representation of locked elements(see page 1447).
Related pages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
27
• Using the Model Browser(see page 28)
• Containment tab(see page 29)
• Structure tab(see page 35)
• Inheritance tab(see page 40)
• Diagrams tab(see page 42)
• Model Extensions tab(see page 44)
• Search Results tab(see page 46)
• Lock View tab(see page 47)
• Working with model elements in the Model Browser(see page 49)
Using the Model Browser
Model Browser is displayed when at least one project is open. By default, Model Browser is placed at
the left side of the main window. It is possible to move the Model Browser to any place on the
MagicDraw window. Also, all tabs can be viewed separately and you can set up the Model Browser
according to your needs by hiding the desired tabs.
To change the size of either part of the Model Browser
• Drag the bar that separates the two parts.
To change the Model Browser position
• Using the Options menu
a. From the Options menu, select Environment. The Environment Options dialog opens.
b. Click on the Browser option group.
c. In the Browser environment options pane, change the Browser Position property to
Right or Left.
• Using Toggle
In the upper-right corner of the selected tab in the Model Browser, click the Toggle auto-hide
or Toggle floating
button.
This action changes the layout of the MagicDraw interface.
To close or reopen the desired tab of the Model Browser
• Using the Window menu, choose the Model Browser tab you want to close or open.
To reset all Model Browser tabs to the default position
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
28
• From the Window menu, choose the Reset Windows Configuration command.
To sort items in the Model Browser alphabetically
1. From the Options menu, select Environment. The Environment Options dialog opens.
2. Click the Browser option group.
3. In the Browser options pane, set the Sort Alphabetically value to true (the default value is true).
Related pages
• Model Browser(see page 26)
Containment tab
On this page
• The root package Model(see page 30)
• Code engineering sets(see page 31)
• Containment tab toolbar(see page 32)
• Working with model elements in the Containment tree(see page 33)
The Containment tab displays model data grouped in logical sets. Using the Containment tab, you can
quickly access each model element, change a model element specification, or create a new model
element.
To open the Containment tab, do one of the following
• At the top of the Model Browser, click the Containment tab.
• If the Containment tab is hidden, from the Window menu, select Containment.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
29
You can change some Containment tab properties in the Environment Options
dialog(see page 64) the Browser options group.
The Containment tab consists of the following two components:
• Containment tab toolbar(see page 32)
• Containment tree(see page 33)
The Containment tree includes
• The root package Model(see page 0):
The Relations branch
The UML Standard Profile
The Hyperlinks branch
• Code engineering sets(see page 0)
The root package Model
The root package Model in the Containment tree is the top model element wherein the entire model
structure is created. The root package Model represents the model element that is named Model. All
model elements are stored in the root package Model. You can create the structure of your project by
creating packages in the root package Model. This helps to distribute model elements into logical
groups.
Along with model elements that are created by the user, the root package Model may contain the
following default items:
• The Relations branch. This branch appears when at least one relationship is created in the
project. The Relations branch collects all relationships from the particular owner. For example, if
the Relations branch is in the root package Model, that means, all relationships from the root
package Model are listed in the Relations branch owned by the root package Model. The Relations
branch can exist in other elements which may have inner elements and relations among these
elements. For example, in packages, classes, and others.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
30
• The UML Standard Profile package. This is a profile that is included in every MagicDraw project.
It contains a list of stereotypes, data types, and other elements from the UML 2 metamodel. By
default, the UML Standard Profile is hidden. To display the UML Standard Profile, click the Options
button, and in the shortcut menu, choose Show Auxiliary Resources.
.
There can be more standard profiles (such as SysML, UPDM, Java, and others).
We highly recommend not to modify our provided standard profiles and libraries as it
could cause problems with version updates, plugins, core MagicDraw tool malfunctions,
and model corruptions.
• The File View package. This package appears when at least one code engineering set is created.
The File View package contains components that are created on code reverse and represents
source files.
• The Hyperlinks branch. This branch appears when at least one hyperlink is added to the
particular element. The Hyperlinks branch contains the list of hyperlinks to the file, element/
symbol, or web page.
Code engineering sets
Code engineering is available in Professional, Architect, and Enterprise editions.
Code engineering sets can be considered a gateway between your source code and model data. Using
these sets, you can perform Java, C++, IDL, CORBA IDL, and EJB 2.0 round-trip code engineering, that is,
code generation and reverse engineering.
To display Code engineering sets
•
In the Containment tab toolbar, click the Options
Code Engineering Sets check box.
button, then click to select the Show
In the Code engineering Set branch, you can create a new code engineering set, generate code, and
perform other actions.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
31
Containment tab toolbar
The Containment tab toolbar contains the following buttons:
Button
Tooltip text
Description
Collapse All
Collapse all of the currently expanded elements in
the Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Open in New Tree
Opens the contents of the selected element in a new
tab of the Model Browser. The selected element
becomes the root node of the new tree.
You can choose to open elements in:
• New Containment Tree
• New Structure Tree
• New Inheritance Tree
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
32
Options
Click to open the Options menu and then select:
• Filter - opens the Items Filter dialog
wherein you can select element types to be
visible in the Containment tree.
• Show Auxiliary Resources - shows or hides
modules and profiles that are used in your
project.
• Show Applied Stereotypes - shows or
hides the applied stereotypes next to the
element name in the Containment tree.
• Show Full Types - shows or hides the full
types of typed elements (for example,
operations, attributes, relationships, and
other) in the Containment tree.
• Show Code Engineering Sets - shows or
hides the code engineering sets.
The same actions you may perform using the shortcut menu of the Containment tree.
Working with model elements in the Containment tree
You can work with elements in the Containment tree using the commands available from the selected
element's shortcut menu.
Particular actions are available for particular elements.
The shortcut menu contains the following commands:
Command
Function
Create Element(see page 914)
Creates a new element inside the selected element.
This command is available if the selected element can be
edited.
Create Diagram(see page 475)
Creates a new diagram inside the selected element.
This command is available if the selected element can be
edited.
Create Relation >
Outgoing / Incoming(see page 561)
Creates a new relation to or from the selected element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
33
Specification(see page 953)
Opens the element Specification window wherein you can specify
various element properties.
Validation(see page 1348)
Open the validation commands for checking the accuracy,
completeness, and correctness of a model.
Go To(see page 1046)
Opens or selects the item associated with the selected element. The
item may be a diagram, model element, or hyperlink.
Refactor(see page 557)
Converts the selected element to the element indicated by a user.
Related Elements(see page 1231)
Opens a list of functions available for the selected element.
Tools
Opens a list with tools that are available for the selected element.
Depends on the selected element.
Stereotype(see page 861)
Opens the drop-down list, wherein you can apply an existing
stereotype, or create a new one.
Find(see page 206)
Opens the Find dialog.
Apply Profiles
Opens the list of the available to apply profiles.
Project Usages(see page 232)
• This command is available in the package, model,
and system boundary shortcut menu.
• Only custom profiles can be applied.
• To see this command you have to expand the
shortcut menu, that is, click on the little arrow at
the bottom of the shortcut menu.
Opens share packages and export packages to new project
commands.
This command is available in the package and model
shortcut menu.
Generate Code
Framework
Generates code for the selected item. Opens the Notification
Window with the information.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
34
Check Syntax
Checks syntax in the model according to the default code
engineering language. Opens the Notification Window with the
information.
Generate Report(see page 1624)
Opens the list of the available report templates.
Reverse from Classpath
This command is available in the Class shortcut menu.
Related pages
• Model Browser(see page 26)
Structure tab
This tab will appear in the Window menu only if the SysML plugin is installed.
The Structure browser allows you to browse for deeply nested structures of the structured classifier in
your model. The node: diameter : mm represents the property: diameter : mm of the classifier:
Wheel and also the property: w : Wheel is the property of the classifier: WheelAssembly, as shown in
the image below:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
35
The Structure tab in the Model Browser.
Opening the Structure tab
To open the Structure tab
1. From the main menu, select Window > Structure.
The property nodes, which are shown inside the property node (the parent property node), are the
properties of the classifier that type the parent property node.
In the Structure tab, you can open any selected element in a new tree.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
36
To open a new tree
1. Select the element and in the Structure tab toolbar click
.
Displaying Inherited Structure option
The Structure tab can show the properties that are inherited from the generalization classifier.
To display inherited structures from the generalization classifier in the Structure tree
1. Click
on the right of the Structure Browser.
2. Select the Show Inherited Structure option.
Nesting Satisfied Requirements option
The Structure Tab can also show requirements nested within elements that satisfy them.
If the relationship is contextualized, its context is considered as well. Learn more about
contextual relationships >>20
To nest requirements under the satisfying elements
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
37
1. Click
on the right of the Structure Browser.
2. Select the Nest Satisfied Requirements option.
Structure tab toolbar
The Structure tab toolbar contains the following buttons:
Button
Tooltip text
Description
Collapse All
Collapse all of the currently expanded elements in
the Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Open in New Tree
Opens the contents of the selected element in a new
tab of the Model Browser. The selected element
becomes the root node of the new tree.
You can choose to open elements in:
• New Containment Tree
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
38
• New Structure Tree
• New Inheritance Tree
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
Options
Click to open the Options menu and then select:
• Filter - opens the Items Filter dialog
wherein you can select element types to be
visible in the Containment tree.
• Show Auxiliary Resources - shows or hides
modules and profiles that are used in your
project.
• Show Applied Stereotypes - shows or
hides the applied stereotypes next to the
element name in the Containment tree.
• Nest Satisfied Requirements - shows
requirements nested within elements that
satisfy them.
• Show Inherited Structure - shows
properties that are inherited from the
generalization classifier.
• Show Full Types - shows or hides the full
types of typed elements (for example,
operations, attributes, relationships, and
other) in the Containment tree.
• Show Code Engineering Sets - shows or
hides the code engineering sets.
Related pages
• Model Browser(see page 26)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
39
Inheritance tab
The Inheritance tab represents classifiers (e.g., packages, data types, and stereotypes) hierarchy within
your project. Inheritance according to the UML Specification is shown using the generalization
relationship.
If a model element has no generalization relationship, it will not be represented in the
Inheritance tab.
To open a new Inheritance tree
1. Open the Containment, Structure, or Inheritance tab.
2. In the open tab toolbar, click
and then select Open in New Inheritance Tree.
You can change some Inheritance tab properties in the Environment Options dialog(see page
64) the Browser options group.
The Inheritance tab consists of the following two components:
• Inheritance tab toolbar
• Inheritance tree
Inheritance tab toolbar
The Inheritance tab toolbar contains the following buttons
Button
Tooltip text
Description
Collapse All
Collapse all currently expanded elements in the
Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
40
Open in New Tree
Opens the contents of the selected element in a new
tab of the Model Browser. The selected element
becomes the root node of the new tree.
You can choose to open elements in:
• New Containment Tree
• New Structure Tree
• New Inheritance Tree
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
Options
Click to open the Options menu and then select:
• Invert Tree - inverts the tree hierarchy shows the child
element at the top of the hierarchy.
• Show Applied Stereotypes - shows or
hides the applied
stereotypes next to the element name in the
Containment tree.
Working with model elements in the Inheritance tree
You can work with elements in the Inheritance tree using the commands available from the selected
element's shortcut menu. The shortcut menu contains the following commands:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
41
Command
Function
Select in Containment Tree
Opens the Containment tab and selects the
current element in the Containment tree.
Select in Structure Tree
Opens the Structure tab and the structured classifier is selected.
This command is available for structured classifiers (SysML).
Related pages
• Model Browser(see page 26)
Diagrams tab
The Diagrams tab in the Model Browser represents diagrams created in your project.
In the Diagrams tab, diagrams are by default grouped by their types (see the image above).
To open the Diagrams tab, do one of the following
• At the top of the Model Browser, click the Diagrams tab.
• If the Diagrams tab is hidden, from the Window menu, select Diagrams.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
42
You can change some Diagrams tab properties in the Environment Options dialog(see
page 64) the Browser options group.
The Diagrams tab consists of the following two components:
• Diagrams tab toolbar
• Diagrams tree
Diagrams tab toolbar
The Diagrams tab toolbar contains the following button:
Butt
on
Tooltip text
Description
Collapse All
Collapse all of the current elements in the Containment tree.
Collapse Selected
Recursively
Collapses only the selected node and all subnodes in that node.
Group by Diagram
Name
Groups diagrams into packages by the first symbol of their name when the
model contains more than 99 diagrams.
Favorites
Opens the Favorites menu for choosing
to do one of the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the Containment tree
Quick Find
Opens the Quick Find dialog.
Some of these actions may be performed right in the shortcut menu of the Diagrams tree.
Working with model elements in the Diagrams tree
You can work with diagrams in the Diagrams tree using the commands available in the selected
diagram's shortcut menu. These are the commonly used commands:
Command
Function
Open
Opens the selected diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
43
Print
Opens the Print dialog.
Active for the open diagram only.
Select in Containment
Tree
Opens the Containment tab and selects the current element in the Containment
tree.
Group by Diagram Name
Groups diagrams into packages by the first symbol of their name when the model
contains more than 99 diagrams.
Related pages
• Model Browser(see page 26)
Model Extensions tab
The Model Extensions tab contains all Stereotypes that are predefined and created manually in the
project. In this tree, you can create, review, copy/paste, and delete extension mechanisms.
To open the Model Extensions tab, do one of the following
• At the top of the Model Browser, click the Model Extensions tab.
• If the Model Extensions tab is hidden, from the Window menu, select Model Extensions
You can change some Model Extensions tab properties in the Environment Options
dialog(see page 64) the Browser options group.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
44
Model Extensions tab consists of the following two components:
• Model Extensions tab toolbar
• Model Extensions tree
Model Extensions tab toolbar
Model Extensions tab toolbar contains the following buttons:
Button
Tooltip text
Description
Collapse All
Collapse all of the currently elements in the
Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes
in that node.
Group by Profiles
Groups extensions by the profiles.
Group by
Metaclasses
Groups extensions by the metaclasses.
Favorites
Opens the Favorites menu for choosing to do
one of the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Quick Find
Opens the Quick Find dialog.
The same actions you may perform using the shortcut menu of the Model Extensions tree.
Working with model elements in the Model Extensions tree
You can work with elements in the Model Extension tree using the commands available from the
selected element's shortcut menu.
For more information about commands available from the shortcut menu in the Model
Browser, see Working with model elements in the Model Browser(see page 49).
Related pages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
45
• Model Browser(see page 26)
Search Results tab
The Search Results tab is used to display search results. This tab opens only after performing the
search(see page 206) by pressing Ctrl+Shift+F, or by clicking Edit > Find.
The tab is not displayed when performing a Quick Find(see page 212).
The Search Results tab consists of two components:
• Search Results tab toolbar (see page 0)
• Search Results tree(see page 0)
Search Results tab toolbar
The Search Results tab toolbars contains the following buttons:
Button
Tool tip text
Description
Collapse All
Collapse all of the currently elements in the
Containment tree.
Collapse Selected Recursively
Collapses only selected node and all subnodes in that
node.
Find...
Opens the Find dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
46
Clear Results
Clears the results of the previous search.
Rerun Search
Reruns a search with the already specified search
criteria. Search results are updated according to
changes done in the model.
Save Search Results
Saves as a smart package either the search options or
the search results.
Favorites
Opens the Favorites menu for choosing to do one of
the following:
• Add a selected element to favorites
• Open the dialog for managing favorites
• Navigate to a desired favorite in the
Containment tree
Options
Click to open the Options menu and then select:
• Show Applied Stereotypes - shows or
hides the applied stereotypes next to the
element name in the Containment tree.
• Show Full Types - shows or hides the full
types of typed elements (for example,
operations, attributes, relationships, and
other) in the Containment tree.
The same actions you may perform using the shortcut menu of the Search Results tree. For
more information about commands available from the shortcut menu in the Model Browser,
see Working with model elements in the Model Browser(see page 49).
Working with model elements in the Search Results tree
The search results in the Search Results tree are displayed in the following two packages:
• Found in loaded diagrams – symbols that have been found in the diagram(s) are displayed in
this package.
• Found in model – elements that have been found in the model data are displayed in this
package.
Related pages
• Model Browser(see page 26)
Lock View tab
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
47
The Lock View tab is displayed only when working with server projects(see page 1404).
The Lock View tab is used to display what was locked in the project (locked elements, project structure,
symbol styles) and by which users. Next to the locked element, you can see the name of the user who
has locked it. Using the Filter by user list in the Lock View tab toolbar, you can see the elements, locked
by the particular user.
To open the Lock View tab, do one of the following
• At the top of the Model Browser, click the Lock View tab.
• If the Containment tab is hidden, from the Window menu, select Lock View.
The Locked Elements tab consists of the following two components:
• Lock View tab toolbar
• Lock View tree
Lock View tab toolbar
The Lock View tab toolbar contains the following:
• Update Lock Information button
• Filter by user list
• Collapse All button
• Collapse Selected Recursively button
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
48
Using the Filter by user list you can select to display only the elements locked by the particular user.
Working with model elements in the Lock View tree
You can work with elements in the Lock View tree using the commands available from the selected
element's shortcut menu. The shortcut menu contains the following commands:
Command
Function
Lock
Locks or unlocks the particular element for edit.
Select in Containment
Tree
Opens the Containment tab and selects the
current element in the Containment tree.
Select in Inheritance
Tree
Opens the Inheritance tab and selects
the current element in the Inheritance tree.
Related pages
• Model Browser(see page 26)
Working with model elements in the Model Browser
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
49
In the Model Browser you can do the various actions with model elements, such as, rename, cut, copy,
delete, and others. These actions are available from the particular model element shortcut menu. See
the list of the concrete actions in the following table.
Command
Function
Rename
Switches the element name into the edit mode.
You can also press F2 for this.
Copy
Copies the selected element.
Copy URL
Copies a model element URL to a
clipboard.
Copy Element Hyperlink
Copies the hyperlink of the selected element.
Cut
Cuts the selected element.
Paste
Pastes the copied element.
Delete
Deletes the selected element.
To copy/cut and paste the selected model element between different projects
1. Select the model element in the Model Browser.
2. From the model element shortcut menu, select Copy or Cut.
3. Open the project to which you want to paste the selected element(s).
4. Select the container, where you wish to paste the element(s).
5. From the container's shortcut menu, select Paste.
To change the location of an element in the Model Browser
1. Select the element in the Model Browser.
2. Drag it to the new location (possible owner).
Related pages
• Model Browser(see page 26)
Quick properties panel
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
50
The Quick properties panel has three tabs, as shown in the figure below:
Quick properties panel
• The Zoom tab zooms in on the current diagram.
• The Documentation tab shows documentation associated with the selected item.
• The Properties tab shows the specification and symbol properties of the selected element or
diagram.
Related pages
Zoom tab
The Zoom tab enables you to preview a selected diagram. To select a diagram, go to the Containment
or Diagram tab. You can also use the Zoom tab to zoom in or out of the active diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
51
The Zoom tab in the quick properties panel.
To open the Zoom tab, do one of the following
• In the Model Browser, click the Zoom tab.
• On the Window menu, click Zoom.
To zoom in or out of the active diagram
• In the Zoom tab, drag corners of the blue square.
To quickly access any part of the diagram
• In the Zoom tab, drag the blue square to the desired part of the diagram.
The selected diagram part will be displayed on the diagram pane.
To fit the diagram to the window
• In the Zoom tab, on the blue square
, click the Fit in Window button or press CTRL+W.
To show the Diagram Zoom Slider
1. From the Options menu, select Environment. The Environment Options window opens (see
the figure above).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
52
2. Select the Browser options group.
3. In the Browser category, select the Show Diagram Zoom Slider check box.
The Diagram Zoom Slider is displayed in the Zoom tab (see the figure above).
Related pages
• Model Browser(see page 26)
Documentation tab
The Documentation tab shows information associated with a selected model element in the Model
Browser or on a diagram pane.
The Documentation tab in the quick properties panel.
To open the Documentation tab, do one of the following
• In the Model Browser, click the Documentation tab.
• On the Window menu, click Documentation.
If there is no documentation for the selected element, the text area is empty.
To write documentation for the selected model element
• In the Documentation tab, click the text area and type the text.
To turn on the HTML text
• In the Documentation tab, click the HTML check box.
The HTML toolbar opens and you can type the HTML text.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
53
Related pages
• Model Browser(see page 26)
Properties tab
The Properties tab at the bottom of the Model Browser allows you to quickly access basic information
about a selected element or diagram.
An example of the Properties tab in the Quick properties panel
Multiple selection
• If multiple elements or symbols of different kinds are selected, only their common
properties are displayed in the Properties tab.
• If more than 10 elements in the Containment tree or symbols on the diagram pane are
selected, properties are displayed only by request. You need to click the link Show
common properties for the selected items.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
54
To open the Properties tab, do one of the following
• In the Model Browser, click the Properties tab.
• On the Window menu, click Properties.
The Properties tab includes the following tabs:
Tab name
Description
Element
Contains the main properties of the element's or diagram's
specification.
Symbol
Contains the element symbol's properties.
This tab is available for symbols only.
Tags
Contains the tagged values of the selected element.
When you click the Show Only Applied Stereotypes Tags button,
only the tabs with values are listed.
Language properties
Contains the same data as the Language Properties property
group in the element's Specification window.
This tab is available only for the elements used for code
generation, that is, class, attribute, operation.
Traceability
Contains the same data as the Traceability property group in the
element's Specification window.
Related pages
• Model Browser(see page 26)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
55
Image Library tab
The Image Library tab displays images grouped in logical sets. You can use a bundled image collection
or add your own set of images.
To open the Image Library tab
• From the Window menu, select Image Library.
The Image Library tab opens on the right side of the window.
To add your own set of images into Image Library, do either
• Compress a folder (.zip) with a set of desired images and place it in the MagicDraw installation
directory: \data\imagelibraries\commonsymbols.
Image formats
You can add images of the following formats: .gif, .jpg, .jpeg, .svg, .png, .wmf.
• Create an Image Library plugin. Follow up an example Writing plugins(see page 2213).
Using the Image Library tab, you can apply an image on symbol(see page 1018).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
56
The Image Library tab consist of three components:
• Quick filter(see page 58)
• Image Library tree(see page 58)
• Image Library Preview area(see page 58)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
57
Quick filter
You can search for images in the Whole hierarchy or Recently used tabs using one of the following
way:
• Simple Search: type what you want to find in the hierarchy.
• Pattern Search: type * to find any images.
For example, type "*Bank" if you want to find "Bank" somewhere in the hierarchy.
Image Library tree
You can drag an image from the Image Library tree directly:
• On the symbol (image is applied for symbol).
• To the diagram pane (image shape is created).
Image Library Preview area
You can preview the image before applying it on the symbol in the Image Library Preview area.
Changing interface style
You can change the appearance of your modeling tool windows, dialogs and menus. The Look and
Feel menu allows you to personalize the user interface using a number of predefined styles and
themes. You can also create a custom theme with your favorite colors and fonts.
To change the interface style
1. In the main menu of a modeling tool, select Options > Look and Feel.
2. Select the desired style from the list of available styles.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
58
The Look and Feel menu options.
Important
• The selected style may not look exactly like the style in related operating systems.
• Depending on your operating system, some style options may be unavailable.
Creating a custom theme
Define your own interface style by creating a custom theme. The Custom theme option is located in the
Look and Feel Themes submenu which also offers 8 predefined themes. The Custom theme allows
you to specify text fonts and sizes of the desired interface elements as well as their colors.
To create a custom theme
1. In the main menu of a modeling tool, select Options > Look and Feel > Metal.
2. In the same menu, select Options > Look and Feel > Look and Feel Themes > Custom.
3. In the open dialog, change the values of the desired style properties.
4. Click OK.
Look and Feel Themes
The themes listed in the Look and Feel Themes submenu are only available if you select the
Metal style.
Related pages
• Understanding the user interface(see page 21)
• Main menu(see page 23)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
59
• Toolbars(see page 24)
• Model Browser(see page 26)
• Image Library tab(see page 56)
Most common shortcut keys
The following table outlines the most commonly used shortcut keys:
What do you want to do?
Shortcut keys
Windows
OS X
Open the Find dialog
Ctrl+Shift+F
Cmd+Shift+F
Open the Quick Find dialog
Ctrl+Alt+F
Cmd+Alt+F
Open the Find and Replace dialog
Ctrl+R
Cmd+R
Remove both symbols from an active
diagram and element from the model
Ctrl+D
Cmd+D
Remove only a symbol from an active
diagram, but not the model element
Delete
Del
Select all shapes on an active diagram
Ctrl+A
Cmd+A
Select an element in the Containment
tree
Alt+B
Alt+B
Add more symbols to selection
Shift+Left mouse button
Shift+Left mouse button
Select elements of the same type
Alt+Left mouse button
Alt+Left mouse button
Switch from List to Tree view in the
Select Element dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
60
Open a list of possible elements to
assign when typing on a symbol
Ctrl+Spacebar
Ctrl+Spacebar
Add a new line in the compartment of
a shape, for example, create an
attribute for a class
Shift+Enter
Shift+Enter
Open element's Specification window
Enter
Enter
Open element's Symbol Properties
dialog
Alt+Enter
Alt+Enter
Open the Report Wizard
Ctrl+Shift+G
Cmd+Shift+G
See the list of recently opened
diagrams
F12
–
Cut a selected item
Ctrl+X
Cmd+X
Copy a shape or text
Ctrl+C
Cmd+C
Copy a shape
Drag the shape to the empty
place
on the diagram, while holding
down Ctrl
–
Paste
Ctrl+V
Cmd+V
Paste with new data
Ctrl+E
Cmd+E
Save
Ctrl+S
Cmd+S
Commit changes to the server
Ctrl+K
Cmd+K
Undo
Ctrl+Z
Cmd+Z
Redo
Ctrl+Y
Cmd+Y
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
61
Print
Ctrl+P
Cmd+P
Assign a shortcut key to print a report
Alt+ number 1 to 9
Alt+ number 1 to 9
Turn on the Full Screen mode
F11
–
Open a recently closed diagram
Ctrl+Shift+T
–
Paste a symbol style
Ctrl+Shift+V
Cmd+Shift+V
Reverse path direction
Draw the path while holding
down Alt
Draw the path while holding
down Alt
Reorder elements/properties in a list,
tree, and Specification window
Ctrl+Up
Alt+Up
Ctrl+Down
Alt+Down
Shift+F3
Shift+F3
F3
F3
Select a previous or next result in a tree
Related pages
• Assigning shortcut keys(see page 62)
Assigning shortcut keys
Most commonly used commands in a modeling tool have shortcut keys(see page 60), allowing you to
access the commands quicker. However, you can assign custom shortcut keys to modeling tool
commands and change or remove already-existing shortcut keys.
To assign a new shortcut key to a command
1. From the main menu of a modeling tool, select Options > Environment. The Environment
Options dialog opens.
2. From the option group list on the left side of the dialog, select Keyboard.
3. Search for the command you need to assign a shortcut key to.
You can also search by the shortcut keys.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
62
4. In the Press new shortcut key box, press the shortcut you want to assign. Do not type the
shortcut, but press the keys as you would when executing the command.
5. Click the Assign button. The assigned shortcut appears in the Current keys box.
6. Click OK.
The shortcut key is then assigned to the selected command and you can start using it.
Assigning a shortcut key.
Usage information
• You can assign multiple shortcut keys to one command.
• If you enter a shortcut key that is already assigned to another command, a notification
appears under the Press new shortcut key box.
• If you assign a shortcut key that is already assigned to another command, the shortcut
key is automatically unassigned from that command and assigned to the new one.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
63
Removing shortcut keys
You can remove both default and custom shortcut keys.
To remove a shortcut key
1. From the main menu of the modeling tool, select Options > Environment. The Environment
Options dialog opens.
2. From the option group list on the left side of the dialog, select Keyboard.
3. Search for the command you need to assign a shortcut key to.
You can also search by the shortcut keys.
4. In the Current keys box, select the shortcut key you want to remove.
5. Click the Remove button. To remove all shortcut keys assigned to the selected command, click
the Remove All button.
6. Click OK.
Restoring shortcut keys
To restore all shortcut keys to their default values, open the Environment Options dialog,
select Keyboard, and click Reset to Defaults.
Customizing environment options
You can customize the application environment according to your preferences via the Environment
Options dialog.
To open the Environment Options dialog
• From the Options menu, select Environment.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
64
The Environment Options dialog contains various project-independent options grouped by different
features (for example, diagrams, Model Browser, code engineering). Each option group is available in a
different tab. Tabs are displayed in the tab tree.
An option value can be simply changed by typing a new value, setting a value to true / false, or selecting
a value from the list. Click the Reset to Defaults button to restore default option values.
Changing options
In order to change a desired environment option, first of all you may need to find it. In this case, use
the quick filter(see page 959) in the dialog. Filtering is performed in the all available options, not only in the
selected option group.
For better understanding an option you can read its description that tells what is the effect of changing
the option value.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
65
To read the option description
1. Make sure that the Show Description mode is turned on in the Environment Options dialog. To
turn the Show Description mode on or off, click the Show Description button on the tab toolbar.
2. Click an option, whose value you want to change.
3. Read the option description in the area below the tab options list. You are ready now to
change the option value.
Customizing and Selecting Perspective
The Startup dialog appears when you launch a modeling tool (MagicDraw, Cameo Systems Modeler, or
Cameo Enterprise Architecture) for the first time. Select your work perspective in this dialog.
Due to their growing numbers, many features may be configured for the standard or expert user. The
tool better satisfies the needs of different software development process roles by using Perspective.
Use perspectives for:
• Selecting a predefined configuration and features according to your software development
process role.
• Finding features faster, because there are fewer.
• Choosing a suitable experience mode with a single click.
• Customizing a set of predefined features and configuration based on user needs.
There are four perspectives:
• Full Featured perspective provides all features available in the modeling tool and installed
plugins.
• Quick Start perspective provides basic features dedicated to modelling with an interface that is
not overcrowded, making it quicker to learn. Code engineering, transformations, and
other advanced features are hidden yet easily reachable in expert mode.
• Software Architect perspective provides features primarily involved in designing
and implementing projects. It is a set of roles consisting of Software Architect, Designer,
Interface designer, and Database designer. This is the default modeling tool configuration.
All functionalities are available for expert mode.
• System Analyst perspective provides features primarily dedicated to obtaining requirements
and modeling the system. Analysis features are highlighted. Configuration is modeling oriented.
Code engineering, transformations and other features are hidden.
To set the perspective for the modeling tool environment
• Launch he program for the first time. The Startup dialog will appear with the ability to switch
between perspectives. Select the desired perspective from the list and click OK.
• From the Options menu, choose Perspectives > Perspectives. The Select Perspective dialog
opens. Select the desired perspective and click the Apply button.
• On the Perspectives toolbar, select the desired perspective from the list.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
66
Related pages
Customizing Perspectives
Perspective customization allows grouping of functional features into standard/expert
modes. Customization also allows the user to hide unnecessary commands, making a modeling tool
more convenient.
To open the Customize Perspectives dialog
• From the Options menu, choose Perspectives and then Customize.
• In the Perspectives dialog, click the Customize button.
There are seven customizable areas in different perspectives:
• Main menu
• Main toolbars
• Diagram toolbars
• Diagram modeling elements toolbar
• Smart manipulators
• Shortcut menu actions
• Create Diagram dialog
Each of these areas has a set of commands, which can be shown in the standard / expert mode or
hidden.
To customize the selected area in a predefined perspective
1. In the Customize Perspectives dialog, select the perspective and click the Edit button near the
selected area. The appropriate Customize dialog opens.
2. Expand tree sections and select radio buttons beside the items in the tree depending on
your choice for Standard and Expert, Expert only or Hidden modes.
3. Click OK when you are done.
To switch between Standard/Expert modes, do one of the following
• From the toolbar shortcut menu, select/clear the Expert Menu Mode or Expert Toolbar
Mode check box.
• From the diagram palette shortcut menu, select/clear Expert Mode check box.
Select Perspective dialog
When you launch a modeling tool for the first time, the Select Perspective dialog appears with the
ability to switch between perspectives.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
67
Element
Name
Description
Full Featured
Quick Start
Software
Architect
System
Analyst
List of the available perspectives with the
predefined configuration.
Expert
Choose Expert mode only if you are an advanced user. All features and commands will be
loaded.
If you are a new user, you should not select Expert mode.The non-expert mode only loads the
basic and most important commands and features.
Customize
Open the Customize Perspectives dialog to customize the selected perspective. You can
make your tool less complicated by hiding irrelevant features or commands.
For example, you can group functional features, show, or hide selected commands.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
68
Customize Perspectives dialog
To open the Customize Perspectives dialog
• From the Options menu, choose Perspectives and then Customize.
Element Name
Description
Clone Selected
Copy the selected perspective to a new one.
Perspective
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
69
Element Name
Description
Rename Selected
The Enter Perspective Name dialog opens.
Change name of the perspective and click OK.
You can also rename perspectives by pressing F2.
Perspective
Remove Selected
Delete the selected perspective from the list.
Perspective
Import New
Perspective
Export Selected
Perspective
The Open dialog appears. Select *.umd extension file
and click Open to import the perspective into the
modeling tool environment.
The Save dialog opens. Type a name for the
created perspective and click Save to store it
as *.umd extension file.
Full Featured
Quick Start
Software Architect
System Analyst
List of the available perspectives with the
predefined configuration.
MagicDraw Area
List of customizable toolbars and command sections.
Edit
Click the Edit button to open the Customize Main Menu dialog.
Change he commands mode by selecting radio buttons.
Description
Learn the short description about each selected area.
Reset to Defaults
Reset all changes back to the default configuration.
Dialog for customizing selected modeling tool area
The Customize <Area> dialog enables you to customize your own environment, from simple to
complex or vice versa. You choose which menus and commands should be displayed and which should
be hidden. Customization allows you to make your own working environment.
The name of this dialog depends on the area you select. For example, if you select Main Menu, the
dialog's name is Customize Main Menu.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
70
In the open dialog, select each environment element individually and choose the mode this element
should be available in. There are three modes:
• Standard and Expert. The selected element will be visible in the Standard as well as in the
Expert mode. The Standard mode is less complicated and is meant for standard users.
• Expert. The selected elements will be visible only in the Expert mode.
• Hidden. The selected element will not be shown in any mode.
To assign an element to the mode
1. Select an element.
2. Click the radio button under the desired mode.
Configuration files
On this page
• Getting the path to configuration files(see page 73)
• Storing configuration files in the installation directory or Common Application Data location on
Windows(see page 73)
• Storing configuration files in a custom location(see page 74)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
71
A configuration file is where the initial parameters and settings of a program are defined. All default
parameter values come with a program installation but you can edit configuration files and define your
own values, for example, define the Java home directory. This page describes the locations where you
can find the configuration files of your modeling tool, how you can modify them and change their
default storage location. Configuration files can be used to:
• Define application arguments
• Set the Java Home
• Change Java parameters (such as memory allocation)
• Update default Java classpath (advanced: for plugin developers)
The configuration files can be opened and modified using any standard text or code editor. Once
modified, changing the default location of configuration files can allow you to store multiple
configuration files for different versions of the tool.
This page covers all modeling tools:
• MagicDraw
• Cameo Enterprise Architecture
• Cameo Systems Modeler
• Magic Software Architect
• Magic Cyber Systems Engineer
• Magic Systems of Systems Architect
By default the configuration and auxiliary files of a modeling tool are stored in the following location:
OS
Configuration files storage
Windows
Vista/7/8/10
C:\Users\<USERNAME>\AppData\Local\.<modeling tool
name>\<modeling tool version number>
Other OS
<user.home>/.<modeling tool name>/< modeling tool version
number>
Modeling tool file naming
In a file system, modeling tools' folders are named as follows:
Modeling tool
File name
MagicDraw
magicdraw
Cameo Enterprise Architecture
cameoea
Cameo Systems Modeler
cameo.systems.modeler
Magic Software Architect
magic.software.architect
Magic Cyber Systems Engineer
magic.cyber.systems.engineer
Magic Systems of Systems Architect
magic.systems.of.systems.architect
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
72
Getting the path to configuration files
If you do not know the exact path to your modeling tool configuration files, follow the steps below to
get it.
To get the path to configuration files
1. From the Help menu, select About <modeling tool name>. The About dialog opens.
2. Click the Environment tab.
3. Click the hyperlink next to Configuration Files. The folder containing modeling tool
configuration files opens.
You can also save configuration files in any of the following locations:
• <modeling tool installation directory>
• Common Application Data location (on Windows OS)
• Another directory
Storing configuration files in the installation directory or Common Application
Data location on Windows
Note
The Common Application Data location on Windows Vista/7/8/10 is C:\ProgramData.
To store configuration files in the modeling tool installation directory or Common Application Data
location on Windows
1. Open the <modeling tool name>.properties file, which is located in <modeling tool installation
directory>\bin.
2. In the JAVA_ARGS line, change the -DLOCALCONFIG property value according to the following
table:
-DLOCALCONFIG
=true
=false
Windows OSx
Common Application Data
Modeling tool installation directory
Other
Modeling tool installation directory
Modeling tool installation directory
Important!
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
73
It is important to add the -DWINCONFIG=false parameter on Window OS, otherwise, the
configuration files will not be stored in the modeling tool installation directory.
You may also store configuration files in your custom location.
Storing configuration files in a custom location
Note
If you have defined to store files in the modeling tool installation directory, files will not be
stored in the defined location.
To store modeling tool configuration files in a custom location
Do either:
1. Open the <modeling tool name>.properties file, which is located in <modeling tool installation
directory>\bin.
2. In the JAVA_ARGS line, add the following property:
-Dlocalconfig.location=<absolute path to a custom location>
Sample property value
-Dlocalconfig.location\=E\:\\temp\\innerPack
Or:
1. Go to the folder, where the configuration files are stored(see page 73).(see page 71)
2. Create a new file named magicdrawredirect.
3. In the file, type the absolute path to the folder, wherein modeling configuration files will
be saved, e.g., C:/<directory name>.
Related pages
• Customizing environment options(see page 64)
• Customizing and Selecting Perspective(see page 66)
Disabling inbound network activity
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
74
Note that after disabling inbound network activity, you will not be able to open the modeling tool Help
or submit an issue.
Useful information
If you disable inbound network activity, double-clicking a project file (.mdzip) opens the project
in a new modeling tool window.
To disable inbound network activity
1. Go to <modeling tool installation directory>\bin and open the properties file, e.g.,
magicdraw.properties.
2. In the JAVA_ARGS line, add the following argument:
-DDISABLEINBOUNDCON=true
3. Save and close the file.
Related pages
• MagicDraw getting started(see page 21)
• Understanding the user interface(see page 21)
• Most common shortcut keys(see page 60)
• Customizing environment options(see page 64)
• Customizing and Selecting Perspective(see page 66)
• Configuration files(see page 71)
• Support(see page 82)
Improving performance
When working with very large models or a number of diagrams at a time, the modeling tool
performance may decrease. To increase efficiency, we suggest the following solutions:
• Increase memory allocation value(see page 80) (java heap size). If you want to make sure you have
a sufficient amount of memory allocated to your modeling tool, use the memory monitor(see page
77) to track memory usage.
• Increase an active validation period(see page 81) and/or do not keep unused diagrams open.
• Split a project into several separate project files, and load only the files that you work with. This
may help only if your project contains several parts with minimal dependencies between
them. For more information, see Project partitioning(see page 223).
• Use Garbage Collector(see page 77) to free unused memory.
• Cancel the background tasks(see page 76) that run too long.
• Set the limit of open diagrams in the Environment Options dialog (Options > Environment >
General > General > Diagram Tabs Limit).
Related pages
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
75
• MagicDraw getting started(see page 21)
• Customizing environment options(see page 64)
• Customizing and Selecting Perspective(see page 66)
• Configuration files(see page 71)
• Disabling inbound network activity(see page 74)
• Support(see page 82)
Background Task Manager
Low-priority or routine tasks are moved to separate threads and are performed as background tasks.
These tasks do not stop a modeling tool from running, and you can work with your model as usual.
Background tasks are displayed in the Background Task Manager at the bottom right corner of the
modeling tool window. For example, when a search process is running, the progress bar is displayed in
the Background Task Manager, shown in the following figure.
If a background task runs for too long, you can cancel it as described below.
To end an ongoing process
• Click
in the Background Task Manager status bar to cancel the selected process. If you cancel
the last of several tasks (or only one existing process), the Background Task Manager is turned
off.
The Background Task Manager showing the progress of a searching task.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
76
Related pages
• Improving performance(see page 75)
• Memory monitor(see page 77)
• Memory allocation(see page 80)
• Active validation period(see page 81)
Memory monitor
When working with larger models, turn on the Memory Monitor to monitor memory used by a
modeling tool. The Memory Monitor shows currently used memory and the current Java heap size.
Typically, when you start working with a model, used memory increases because actions are stored in
the undo list, and opened diagrams are loaded.
The memory monitor bar showing currently used memory and the current Java
heap size.
To turn on the Memory Monitor
• In the main menu of a modeling tool, select View > Status Line > Show Memory Monitor.
The Memory Monitor bar appears in the bottom-right corner of the modeling tool window.
Running out of memory
When used memory takes more than 85% of the total heap size, the Memory Monitor bar turns
red, indicating that a modeling tool may run out of memory soon.
If a modeling tool uses all the Java heap size, you can try to recover enough memory for saving a project
with the Garbage Collector, but this may take some time.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
77
To free unused memory with the Garbage Collector
Do one of the following:
• Click anywhere on the Memory Monitor bar and select Run Garbage Collector.
The Memory Monitor pop-up window
If you find it impossible to use the modeling tool and/or see the Out of Memory error, you should
dump memory heap to the .hprof file that is created in the defined location on the computer and then
submit this file to customer support(see page 82) for further assistance regarding the memory
consumption issue.
To dump memory heap
Do one of the following:
• Click anywhere on the Memory Monitor bar, select Dump Memory Heap, and then set the
desired name and location of the memory heap file. By default, the name of the file is generated
according to the current timestamp.
• Press Ctrl+Shift+H on your keyboard and then define the name and location of the generated
memory heap file.
You must create a new file for the heap dump since the memory heap cannot be dumped to an
existing file.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
78
Dumping memory heap
If the Memory Monitor bar is still red, save the model, restart the modeling tool, and reload the model.
If the Memory Monitor bar stays red after reloading the model, you should increase the maximum Java
heap size(see page 80).
To dump memory histogram
Do one of the following:
• Click anywhere on the Memory Monitor bar, select Dump Memory Histogram, and then set the
desired name and location of the memory histogram file. By default, the name of the file is
generated according to the current timestamp.
• Press Ctrl+Alt+Shift+H on your keyboard and then define the name and location of the generated
memory histogram file.
Dumping memory histogram
Related pages
• Improving performance(see page 75)
• Background Task Manager(see page 76)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
79
• Memory allocation(see page 80)
• Active validation period(see page 81)
Memory allocation
If you receive an error message saying your modeling tool is out of memory, the application does not
have enough memory to operate. You can change the amount of allocated memory directly in the error
message dialog or by changing modeling tool properties.
Memory allocation concept
Memory allocation for the product is the same as Java heap size. To increase the amount of
memory allocated for the product, simply increase the Java heap size.
Recommended amount of allocated memory
The amount of allocated memory (or Java heap size) should be set to less than the available physical
RAM on your computer. To calculate the approximate amount of memory you should allocate, subtract
the amount of memory taken by any other processes that will run concurrently with your modeling tool
from the total amount of RAM in your computer. Otherwise, your JVM process will likely swap, and that
will slow down the application.
Do not allocate too much memory
If you increase the Java heap size too much, you will get an error message that the Java virtual
machine cannot be created, and a modeling tool will not start.
Changing the amount of allocated memory
You can set the amount of memory allocated for your modeling tool either in the Environment
Options dialog(see page 64) or in the modeling tool properties file.
To change the amount of allocated memory in the Environment Options dialog
1. In the main menu of your modeling tool, go to Options > Environment. The Environment
Options dialog opens.
2. Expand the General options group on the left side of the dialog, and select the Memory
Settings category.
3. In the option specification area on the right side of the dialog, change the value of the Maximum
Heap Size or Thread Stack Size option.
Low memory notification
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
80
While working on the project, you can get the Low memory notification. This notification is
triggered by the mechanism which tracks whether the allocated amount of memory is enough
to work with your currently opened projects. Click Open Environment Options to open
Environment options dialog where you can adjust memory settings.
To enable/disable notifications about low memory
1. Go to Environment Options > Display and find Notify about low memory option
• Set to true to show notifications about low memory.
• Set to false to disable notifications about low memory. Also, this notification can
be disabled, by clicking Do not show again option in the Low memory notification.
To change the amount of allocated memory in the modeling tool properties file
1. Go to <modeling tool installation directory>\bin and open the modeling tool properties file.
2. In the JAVA_ARGS line, change the value of the -Xmx property. For example, change the
-Xmx800M to -Xmx1066M.
3. Save and close the file.
4. Restart your modeling tool.
Related pages
• Improving performance(see page 75)
• Background Task Manager(see page 76)
• Memory monitor(see page 77)
• Active validation period(see page 81)
Active validation period
By default, an open model is periodically validated. An active validation period is the period of time
between subsequent validation occurrences. When an active validation period is short, it may have a
negative effect on the performance of your modeling tool, as it needs to constantly process model data.
If you notice that modeling tool performance has decreased, try setting a longer active validation period
or opening your model without loading its diagrams.
To change an active validation period
1. In the main menu of your modeling tool, go to Options > Environment. The Environment
Options dialog(see page 64) opens.
2. Expand the General options group on the left side of the dialog, and select the Active
Validation category.
3. In the option specification area on the right side of the dialog, change the value of the Active
Validation Period.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
81
4. Restart your modeling tool.
Related pages
• Improving performance(see page 75)
• Background Task Manager(see page 76)
• Memory monitor(see page 77)
• Memory allocation(see page 80)
Support
FAQ
Before calling or registering an issue, please have a look in our FAQ section21. It is constantly updated
and may contain an answer to your question, or issue. If your questions are unanswered in this section,
then you have the option of posting your question, or issue, in our Forum22 page. If you are interested
in reporting an issue, then please continue perusing this page to find out about all the support we
provide for you.
Forum
Discuss and get answers about our modeling tools in the No Magic Community Forum23. It already has
thousands of publicly available posts. You are welcome to post your comments and questions there.
Customer Support
We provide free professional support for:
• Registered users with a valid No Magic Software Assurance contract24 (SA). SA provides you with
technical support, software upgrades and maintenance releases at no additional cost for a
contract period.
• Pre-sales users during the evaluation period.
• New customers for 30 days.
• Inquiries about registration, licensing and product updates.
Reporting issues
To create a new issue or browse the existing ones, log in to the No Magic Customer Support System25.
Please refer to Reporting Issues(see page 86) to find instructions on how to dump threads,
memory heap, and memory histogram to files.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
82
If you are a registered user and have already connected to No Magic support system, you can create an
issue, or comment on your support issue(s), through email as well.
Reporting Issues Through Email
Reporting Issues Through Email
The e-mail address for registered users to access our customer support system
is support@nomagic.com26.
The system allows you to include keywords in the email’s subject line. These keywords will enable us
to route the issue to the proper support organization more quickly and resolve the issue in a more
timely manner. They also allow the definition of many fields for the newly created issue (reporter,
project, priority, affected components, affected version).
Support Issues
Support Issues can only be reported or commented on from the email address registered in
your www.nomagic.com27 account.
The parameters are listed below:
• #PROJECT
• #SECURITY_LEVEL
Format of the Email
For example, if you have a question about documentation in UPDM, you might submit the following
email:
This email sent from the registered user will create a support issue in the UPDM project. The Issue’s
component will be Documentation and Requirements Management and its severity will be low.
Parameters
1. Parameters should be listed in the email subject line with a single space between them.
2. No commas should be used between parameters.
3. No spaces should be used in the body of the parameter.
4. If a parameter value contains spaces, you must replace each space with two underscore
characters. For instance, #COMPONENT=Test__Component associates the issue to Test
Component. If you specify an invalid component or none at all, the issue is associated to No
Component by default.
26 mailto:support@nomagic.com
27 http://www.nomagic.com/
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
83
Emailing support requests can be faster compared to the web interface http://
knowledgebase.nomagic.com28; however, when reporting issues through email, additional
important information might be lost. This information loss can be mitigated by including parameters
from the list above.
If an email has email addresses in either the CC: or the BCC: fields, they will be added to the support
issue as External Watchers. All watchers receive email notifications about any activity on the issue.
Commenting on a Support Issue
Commenting on a Support Issue
To comment on an existing support issue, please reply to the notification email. The body of the
email will become your comment on the issue. If you send attachments with your email, they will
become attachments on the issue.
Issue ID
It is important that the issue id (e.g. [MDUMLCS-2058]) exists in the subject line.
Not a registered user
If a commenter is not registered in www.nomagic.com29, his or her comment is not recorded in the
support issue.
The support system provides:
• Submitted issues status tracking.
• Ability to submit private and public questions, suggestions, improvements, and problems.
• Ability to search through the existing public issues, view status of your issues, provide your vote
for suggestions.
Customer Support Levels
A customer support level determines customer access rights and the response time for support
requests. To find out your customer support level, please, visit the No Magic Customer Support
System30.
Support
Level
Applies For
Ensured Support
Limited
Support
Customer with no Software Assurance
(SA) 31
• Self-help: FAQ, Knowledge base,
documentation, online demos, No Magic
Community Forum.
• Inquiries about registration, licensing and
product updates.
28 http://knowledgebase.nomagic.com/
31 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
84
Support
Level
Applies For
Ensured Support
Full
Support
• Customer with SA32
• Customer with valid evaluation
key.
• Professional online support with trouble ticket
status tracking.
• Inquiries about No Magic software problems
and usage.
• Response within business hours, with 24 - 48
hours response time based on severity*.
• Reasonable No Magic efforts to provide a
usable work-around solution or to correct the
issue in an upcoming maintenance release or
update.
Premium
Support
• Customer with SA
• VIP customer** (marked as
VIP)
• Response within business hours, with 24
hours response time.
Dedicated
Support
• Block hours are purchased33
• Includes integration, customization, migration,
plugin development, remote or onsite
support.
**VIP customers are usually our partners.
Attention
* Severity let us know the impact of the problem on your business.
• Severity 1: Critical business impact or system down, this condition requires a solution.
• Severity 2: Significant business impact, this indicates the program is usable but is
severely limited.
• Severity 3: Some business impact, this indicates the program is usable with less
significant features.
• Severity 4: Minimal business impact.
Support Period
During the support period covered by our SA34, you can also report any software problems or
errors. If reported, and reproducible, an issue in the software exists, and the issue significantly
impacts the usability of the software, No Magic agrees to make reasonable efforts to provide a
usable workaround solution or to correct the problem in an upcoming maintenance release or
update.
End-of-Life Policy
The end of life policy depends on the release type in use: Long-Term Releases (LTR) or Future Releases
(FR).
32 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
33 https://www.nomagic.com/support/dedicated-support
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
85
The Long-Term Releases (LTR) are extremely reliable and rock-solid. No Magic provides guaranteed
support (including service packs and private patches) until the next Long-Term Release is released,
approximately every two years. Longer-term support, of up to five years, for a Long-Term Release, is
available for an additional charge. For more information about the Long-Term Releases, see http://
www.nomagic.com/support/long-term-releases.html35
Support for Feature Releases (FR) discontinues when the next Feature Release is released. Therefore,
bug fixes for old Feature Releases (FR) are unavailable.
Providing Patches
We support and provide patches only for the users who have Software Assurance contracts
(SA)36 on their purchased products, so please make sure that you are covered.
Public service packs are released primarily for the newest versions. As we understand that switching
from one version to another can take some time, in the case of significant issues, we provide service
packs, or private patches, when applicable.
We always strongly recommend using the newest version because it contains all the newest fixes,
usability features, new capabilities, and support for standards and technologies.
Other contacts:
• Sales and Marketing: sales@nomagic.com37
• Academic Program: academic@nomagic.com38 - e-mail address for questions regarding
academic or site license discounts and quotes.
• Training: training@nomagic.com39
• Professional Services: pso@nomagic.com40
Related pages
• Reporting Issues(see page 86)
• Configuration files(see page 71)
Reporting Issues
On this page
• Report an issue when the program is unresponsive(see page 87)
• View and Submit Internal Errors(see page 88)
35 https://www.nomagic.com/support/long-term-releases
36 https://docs.nomagic.com/display/NMDOC/Software+Assurance.+Maintenance+Contracts
37 mailto:sales@nomagic.com
38 mailto:academic@nomagic.com
39 mailto:training@nomagic.com
40 mailto:pso@nomagic.com
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
86
Need help? Send notifications of a problem, suggest improvements for our modeling tools, or ask
about new features.
Report an issue when the program is unresponsive
If you encounter an issue or the modeling tool becomes unresponsive, a separately executable tool is
provided for analyzing the status of the process to aid in bug submission. In these situations, manually
start the submit_issue.exe file (located in the <modeling tool installation directory>\bin folder). After you
start submit_issue.exe, the Report an Issue dialog opens.
In this dialog, you can easily dump threads, memory heap, or memory histogram into files and provide
those files when reporting an issue to the support team.
The Report an Issue dialog in the offline mode
First of all, select the specific instance of the modeling tool to dump reports from. Then, click one of the
following:
• Dump Threads to Log File - threads will be dumped to a Log file.
• Dump Memory Heap to File - memory heap will be dumped to a new .hprof file.
• Dump Memory Histogram to File - a memory histogram will be dumped to a new .txt file.
View and Submit Internal Errors
Internal errors are displayed as notifications by default. The internal error does not necessarily mean
damage to your data, but can be a reason for unexpected tool behavior. We highly recommend
submitting internal errors to No Magic for further investigation. We strongly recommend attaching the
log file. An internal error message appears at the bottom of the modeling tool.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
87
Example of Internal Error message in MagicDraw modeling tool
To view internal errors
To view internal errors you must open the Internal Errors dialog, using one of the two methods
outlined below:
• Click the View internal errors button in the Notification Window.
• Click the notification icon on the status bar.
To submit an error
1. Open the Internal Errors dialog.
2. Click the Export To File button.
3. Specify the name and location of the error log file and click Export.
4. Report an issue to the customer support(see page 82) and attach the exported error log file.
Internal errors will not be shown for 24 hours (or until you restart your modeling tool) after
clicking Clear And Close buttons.
To Display Internal Errors
1. From the Options menu, select Environment. The Environment options dialog will open.
2. In the General options group, click Internal Errors.
3. In the Internal Errors options list change the Display Internal Errors option value to true to
display internal errors.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
88
Related pages
• Support(see page 82)
• Configuration files(see page 71)
Creating path variables
The main purpose for the path variables feature is to give additional sharing flexibility. It enables you to
store paths in your project as named variables that can be easily adjusted on different machines.
Path Variables may be used in:
• Code engineering classpath
• Working directories
• Hyperlinks
• Modules paths
• Reports
To create a path variable
1. In the main menu, go to Options > Environment. The Environment Options dialog(see page 64)
opens.
2. In the left part of the dialog expand the General element and select Path Variables.
3. In the Path Variables area click the Add button. The Path Variable dialog opens.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
89
4. In the appropriate boxes enter the path variable name and description.
5. Next to the Value box, click
, navigate to the desired location and click Open.
6. In the Path Variable dialog, click OK. Your custom path variable is created and shown in
the Defined Path Variables list.
7. In the Environment Options dialog, click OK.
Every user can specify different values of the same path variables. However path variables should be
resolved only on demand, when they are used. If a modeling tool determines you can use path
variables, once you specify your absolute path, the application automatically opens the Use Path
Variables dialog box. For example, this dialog may open when in your project, you try to use another
project From predefined location and add a new path to the Paths to used projects list.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
90
If you do not want your modeling tool to automatically display the Use Path Variables dialog box, clear
the Show suggestion to use path variables check box. To use the original path and cancel this dialog,
click the Use Original button.
To use a suggested path variable
• In the Available forms list, select a path and click the Use Selected button.
If you have your own documentation running on the local server, you can define the path in the
documentation.server option.
Launchers
Launchers show which programs will be used for opening different file types in the application. Add
new, edit, or remove launchers and specify their properties (file extension, program path or name,
program arguments).
To open the Launcher Properties dialog
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
91
1. From the Options menu, choose Environment.
2. In the Environment Options(see page 2375) dialog, from options group list select Launchers.
To specify properties of the default launchers
1. To edit Default launcher, click the
button next to the Default Launcher or Default
Browser text boxes.
2. The Launcher Properties dialog appears.
3. You can change Launcher`s executable file and arguments.
To create the defined launcher
1. Click the Add button, found below the Defined Launchers list.
2. The Launcher Properties dialog appears.
3. Specify the file extension, which will be opened with the specified launcher.
4. Type the name of the launcher in the text box, or browse to the location of the launcher by
clicking the
button.
5. Specify external launcher arguments.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
92
Properties are described in the following table.
Property Name
Function
Extensions
Type the extensions of the files which will be opened with the specified
launcher. You can define more than one extension. Separate them using
commas (i.e., html, xls, doc, cpp, h).
Launcher
An executable file with which the extension file will be opened.
Arguments
Arguments are required by the external launcher, so the modeling tool
provides the ability to pass some common arguments to the launcher:
• $f - a file name
• $md_dir - the modeling tool installation directory
• $prj_dir - the project directory (if the project is saved)
• $r - a row (used when opening Code Engineering object source
code file with "Edit Source" action)
• $c - a column (used when opening Code Engineering object
source code file with "Edit Source" action).
Related pages
• Customizing environment options(see page 64)
Special characters
Our modeling tool can use either XML version 1.0 or XML version 1.1. Because XML version 1.0 does not
support some special characters, our modeling tool contains a mechanism that replaces certain
characters in element names with the underscore symbol ( _ ). However, only a small part of them are
replaced, including profile, stereotype and stereotype property names. Please try to avoid special
characters and use ASCII letters or numbers. In comparison, XML 1.1 supports all characters, except
code point 3000 from “Japanese-style punctuation," which means the tool will replace it with an
underscore symbol ( _ ).
The default XML version in the modeling tool is 1.0, to use XML 1.1, you need to manually change it.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
93
To change the XML version
1. In the main menu of a modeling tool, select Options > Environment. The Environment
Options dialog opens.
2. In the Environment Options(see page 2375) dialog, select General > Save/Load from the options
group list
3. Click the XML Version drop-down list in the option specification area on the right side of the
dialog, and select the desired XML version.
Working with projects
Basic concepts
The following table presents more in-depth descriptions of further material.
Concept
Description
Project
A physical working unit that consists of model, model
visualizations
(diagrams, tables, matrices, etc.), configuration data and
references
to other elements residing in used projects.
Used project
(up to 18.0 – Module)
A project having one or more shared packages. Used projects are
created for the purpose of decomposing projects into parts in
order
to manage each part separately and/or reuse those parts in
other projects.
Used project is a role that one project plays in the composition
of another project. It is not a type of project.
Each used project can be opened and modified separately.
Related pages
• Creating projects(see page 95)
• Saving projects(see page 102)
• Autosave(see page 103)
• Opening projects(see page 104)
• Importing data from other UML tools and formats(see page 105)
• Exporting UML models(see page 190)
• Creating and using project templates(see page 192)
• Projects with file attachments(see page 197)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
94
• Setting project options(see page 203)
• Searching(see page 205)
• Filtering(see page 221)
• Project partitioning(see page 223)
• MOF support(see page 258)
• Ecore support(see page 260)
• Working with standard profiles(see page 276)
• CATIA Systems Synthesis(see page 277)
Creating projects
Watch this demo to learn the basic procedures regarding creating and managing projects.
Sorry, the widget is not supported in this export.
But you can reach it using the following URL:
http://youtube.com/watch?v=0B76lH-QtrM
Related pages
• Creating a new project(see page 96)
• Project Properties dialog(see page 98)
• Working with multiple projects(see page 101)
Creating a new project
All project information is stored in a single file that has the same name as the project itself.
A newly created project consists of the following packages:
• The empty root package Model, storing all model elements.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
95
• File View package, containing components that are created during code engineering and
representing source files. Adding a resident element to a particular component causes that
element to be generated within the source file.
• UML Standard Profile, containing stereotypes that are necessary in order to work with MagicDraw,
primitive data types and constraints (which are UML standard), and UML 2 metamodel elements.
The following data types are specified in MagicDraw: boolean, byte, char, date, double, float, int,
Integer, real long, short, void, and string.
You can create your own packages for keeping model elements as well. By default, packages cannot be
deleted or renamed in a project (except for the File View package).
To start a new project, first you must create a new workspace for it. You can select a project type from
the following domains:
• General-Purpose Modeling (UML, Use Case, Guide to UML Diagrams projects)
• System Engineering (SySML project)
• Enterprise Modeling (DoDAF, DoDAF 2.0, MODAF projects)
• Software Engineering (Scrum project, Project from Existing Source Code)
• Business Process Modeling (BPMN 2.0 project)
• Service-Oriented Modeling (Cameo SOA+ project)
• Other (Project from Template, Process Guide project)
Upon creation of a new project, the General-Purpose Modeling domain opens by default.
To create a new workspace for a blank project
1. Do one of the following:
• From the File menu, select New Project.
• On the main toolbar, click the New Project button.
• Press Ctrl + Shift + N.
Any of the above actions opens the New Project dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
96
2. Select the UML Project in the General-Purpose Modeling domain.
3. Specify the file name in the Name box.
4. Click the
button to select the location to store the created project.
5. Click OK.
Related pages
• Creating projects(see page 95)
• Project Properties dialog(see page 98)
• Working with multiple projects(see page 101)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
97
Project Properties dialog
On this page
• Compatibility range(see page 99)
• Advanced options(see page 100)
The Project Properties dialog provides general information about a project. You can add a title,
author, version, and project description using this dialog.
To open the Project Properties dialog
1. Open the project.
2. Select the Project Properties command from the File menu.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
98
Project properties dialog.
Title
The project title is assigned as a value of the project Documentation property(see page 53).
Compatibility range
To specify compatibility range
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
99
1. Enter the Version value.
2. Enter the Compatible with. The value must be less or equal to the Version value.
3. Click OK after you are done.
Compatible With
Compatible With defines the compatibility range between two Standard/System profile
versions. Once specified, it helps to avoid read-only constraints in TWCloud projects when you
use earlier profile versions locally rather than those used in the server project.
When the Version of the Standard/System profile on your computer is earlier (e.g. 19.0 SP1)
than the Version of this profile on TWCloud (e.g. 19.0 SP3), but higher or equal to the value of
Compatible with (e.g. 19.0), you will still be able to edit TWCloud projects using the profile.
Advanced options
To use advanced options
1. Click More to see more options:
• See the list of shared packages in the Shared Packages tab. In this tab you can:
• Define a preferred path to the particular package. Click the ... button to select the
package(see page 1065) in the Preferred Path value box.
• Set the project as a standard/system profile by selecting the Standard/System
Profile check box.
Note
The Shared Packages tab is available for local projects only.
• The Used Projects tab shows the projects and standard/system profiles used in the open
project. Click the Open Project Usages button to open the Used Projects dialog(see page
232), where you can modify project usages.
• The Advanced tab shows project meta information. In this tab you can:
• Reset all project element IDs. All project elements have their own ID (a unique
identifier). While working with several related projects, you may receive a message
about duplicated element IDs. After clicking the Reset IDs button, new IDs will be
created for all project elements.
Note
Make sure the project you are resetting IDs for is not used in other projects.
• Reset the project ID. After clicking the Reset Project ID button, new IDs are created
for the project.
You cannot reset the project ID for server projects.
Related pages
• Creating projects(see page 95)
• Working with multiple projects(see page 101)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
100
Working with multiple projects
You may need to manage several projects at the same time, and MagicDraw allows you to do that
easily. All open projects are held in separate workspaces. Different active projects may exchange data.
Entities from one project can be copied or moved to another.
To switch between open projects, do one of the following
• From File menu, select Switch Projects and then click the name of the project you want to
switch to.
• On the main toolbar, click
and then select the name of the project you want to switch to.
To close all open projects
• Select Close All Projects from the File menu. The Question message appears.
Choose the way your projects will be closed:
Yes
The project you are currently closing will be saved (its name appears in the question). The dialog is
displayed again when the next project closes.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
101
Yes To
All
Save all projects without prompting. The Save dialog will not appear for each open project.
No
Project you are currently closing will not be saved.
The dialog is displayed again when the next project closes.
No To All
All the projects will be closed without saving or further prompting.
Cancel
Cancel saving projects.
To exchange model elements between open projects
•
Use the Cut, Copy, and Paste commands from the Edit menu or the selected element's
shortcut menu, or the appropriate shortcut keys: Ctrl + X, Ctrl + C, Ctrl + V.
Rrelated pages
• Creating projects(see page 95)
• Project Properties dialog(see page 98)
Saving projects
The native modeling tool format is *.mdzip and *.mdxml. You can also save projects as *.xml
and *.xml.zip.
To save changes for later sessions, projects must be saved. While saving, you can edit the name of the
project and its file format.
To save the project
1. From the File menu, select Save Project or Save Project As. Alternatively, you can click the Save
button on the main toolbar or press the shortcut keys Ctrl + S. The Save dialog opens.
2. Select the destination directory (where you want the project to be saved) and type the chosen file
name.
The default project saving location is set according to your operating system:
• Windows: My Documents/
• Linux: /home/<username>/
• OS X: Users/Documents/
3. Select the format for saving a project:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
102
• Packed MagicDraw File Format (*.mdzip) (default). *.mdzip is a MagicDraw native format. It
contains various parts of the project compressed. You should select it if you intend to work
with the project only in the MagicDraw environment.
• MagicDraw File Format (*.mdxml). You should choose it if you intend to analyze the
project's structure, xml, or for other purposes. You can open *.mdxml projects with other
UML tools as well.
• XML (*.xml). It is the same file format as *.mdxml, only that *.mdxml files can be opened
with MagicDraw or other UML tools, whereas *.xml files can only be opened with an XML
editor.
• If the Create Backup File check box is selected in the Environment Options dialog,
MagicDraw automatically creates a backup file of the previously saved project. The
backup is held in a file with a name identical to that of the project.
• If you want to save maximum additional information to an *.xmi file, select the Rich XMI
check box in the Environment Options dialog.
Autosave
After you stop working with MagicDraw, an idle time passes and the current project is saved to a special
file called the AutoRecovery file.
If the application is terminated normally, the AutoRecovery file is removed. If the application crashes,
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
103
the AutoRecovery file is kept. On startup, MagicDraw checks for an AutoRecovery file. If it exists,
MagicDraw suggests loading the project from this file.
To save an AutoRecovery file of the open project(s) when a system is not in use
1. Open the Environment Options dialog.
2. In the General pane, select the Save Project Recovery Data on Idle. Enter the system idle time
(in minutes) in the Idle Time to Activate Recovery Save box. This is the necessary idle time in
order to activate the AutoRecovery save.
Opening projects
The native modeling tool format is *.mdzip and *.mdxml.
Opening previously created projects
To edit or review previously created projects, do one of the following
• From the File menu, select Open Project. In the Open dialog, select the project and click Open.
• On the main toolbar, click the Open Project button.
• Drag the project from the open window of your file system to modeling tool. The project starts
immediately.
• Double-click the project file with the *.mdxml or *.mdzip extension. A new modeling tool window
opens.
To start modeling tool with the last project you worked on, select Options > Environment and
set Open Last Project on Startup to true.
XMI 2.4 / UML 2.4 is the main file format, used by MagicDraw for storing models. This format does not
specify how to store diagrams, so MagicDraw stores and opens diagram data in XMI extension sections.
Thus if you use MagicDraw to open an XMI file exported from another UML tool, only the model will be
opened, but not diagrams or views.
Accordingly, if you open a MagicDraw file in another UML tool, diagrams or views will not be opened in
that tool (unless the tool supports MagicDraw-specific file extensions).
You may open more than one project within the same MagicDraw window. A separate workspace will
be created for each opened project.
Opening projects saved with modeling tool 17.0 or earlier
Projects saved with modeling tool 17.0 or earlier can be as well opened with modeling tool of later
versions.
To update older models, simply open them with modeling tool of later versions and then re-save them.
Models will be automatically converted to the latest format.
In case your model is stored in a project that uses other projects, you should open and re-save the used
projects first and only then do the same with the main project. Be advised that having only the used
projects successfully converted to the latest format, you may expect the smooth conversion of the
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
104
project that uses them.
If you convert only the project and leave the used projects saved in an old format, you will not be able
to modify the projects used in the read-write accessibility mode.
Importing data from other UML tools and formats
If you need to open a model of a different format or created with another UML tool, you have to import
it to MagicDraw instead of simply opening it. MagicDraw allows importing projects from the following
file formats:
• Another .mdzip project
• Excel/CSV File(see page 928)
• UML 2.1/2.5 XMI File
• MagicDraw Native XML File
• MOF XMI File
• CA ERwin Data Modeler v7.x
• Requirements Interchange Format (ReqIF) File41
• OWL Ontology File
• Eclipse UML2 (v2.x, v3.x, v4.x, v5.x) XMI file
• XPDL File
• FMU File42
• Simulink File43
• Modelica Library
• Enterprise Architect UML 2.1 XMI 2.1 File. Data can be imported from an Enterprise Architect 7.1,
7.5, or 8.0 file.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
105
Please note that Enterprise Architect does not export 100% standard UML 2.1 XMI, and
this causes some data loss during the import.
• Use Sodius44 to import data from the following products:
• Publisher for Rational Software Architect
• Publisher for System Architect
• Publisher for Rhapsody
• UML diagrams from Microsoft Visio using XMI files.
Microsoft Visio 2007 and earlier requires extra add-ons for exporting UML model to XMI
files.
To import an external model
1. Select File > Import From.
2. Select a file format you want to import a model from.
Enterprise Architect Import
The Enterprise Architect Import has the functionality to import UML models conforming to various XMI
versions (including XMI 2.1) from Sparx Systems Enterprise Architect (EA), a modeling and visualization
tool based on the UML 2.3 standard. EA has the ability to import and export XMI compliant models, so
you can use EA to import UML2.1(XMI2.1). However, XMI models exported from EA contain some XMI
conflicts and EA-specific data that do not conform to UML standards.
Enterprise Architect Import allows you to migrate XMI models from EA to a modeling tool flawlessly by
using an additional transformation process with a set of mapping rules.
The main purpose of Enterprise Architect Import is to help users who need to import models from EA
by managing conflicts that can cause problems while loading the XMI models in the modeling tool, as
well as transforming some EA-specific data into UML elements with stereotypes(see page 861).
Enterprise Architect Import supports Enterprise Architect Versions 7.1, 7.5, and 8.0 (most of the testing
procedures performed on EA 7.1.833 and EA 7.5.847). The feature helps you import and transform an
EA exported XMI using the UML2.1 (XMI2.1) option into a model file (*.mdxml).
In addition to the ability to import model elements, the feature also allows for the import of diagrams.
The feature supports:
• Class diagrams
• Package diagrams
• Object diagrams
• Component diagrams
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
106
• Deployment diagrams
• Use Case diagrams
• Activity diagrams
• Sequence diagrams
• Communication diagrams
• StateMachine diagrams
• CompositeStructure diagrams
• InteractionOverview diagrams
Related pages
• Diagramming(see page 475)
• Stereotype(see page 861)
Working with Enterprise Architect Import
Enterprise Architect Import (EA) will automatically load when you start a program. You can use it to
import UML 2.1 XMI 2.1 to your modeling tool.
To import Enterprise Architect UML XMI file
1. On the main menu of the modeling tool, click File > Import From > Enterprise Architect
UML2.1 XMI 2.1 File. The Import Enterprise Architect Files dialog opens.
2. In the dialog, you must specify:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
107
• The input file - the XMI file exported from Enterprise Architecture
Note
Enterprise Architect Import supports the EA XMI files exported with the option
specified as: XMI Type = UML2.1(XMI 2.1).
• The output file name
• A conversion option
3. Click Import to import the file.
The following table describes conversion options:
Conversion Option
Description
Switch aggregation side
To configure the aggregation switch-side. This option is recommended for
XMI files exported from EA 7.1.
Exclude EA specific data
To exclude all EA-specific data from being imported (see Transforming EA
Specific Data(see page 110) to see a list of EA specific-data that can be
transformed into UML elements with stereotypes).
Open project after conversion
To load the output project file once the conversion process has been
completed.
Generate conversion log
To generate a conversion log and save it in the same folder as the output file.
The same conversion information will also be displayed on the Notification
Window.
Note
You can open the window by pressing Ctrl + M.
Related pages
• Customizing the conversion options(see page 108)
Customizing the conversion options
In addition to the options that you have in the Import Enterprise Architect File dialog, several other
conversion options exist in the modeling tool, and you can specify it in the Environment Options
dialog(see page 64).
To customize Enterprise Architect Import options in the Environment Options dialog
1. On the main menu, click Options > Environment to open the Environment Options dialog.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
108
2. In the options group list, select Enterprise Architect Import.
3. The transformation options are classified into two groups: General and Activity element
mapping:
• Options in the General group are the same as those in the Import Enterprise Architect
Files dialog.
• The Activity element mapping group provides options to convert the EA elements to
other element types as it is described in the following table:
Option
Description
Convert EA WriteVariableAction to
To convert EA WriteVariableAction to either
AddVariableValueAction or RemoveVariableValueAction.
Convert EA WriteLinkAction to
To convert EA WriteLinkAction to either CreateLinkAction or
DestroyLinkAction.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
109
Option
Description
Convert EA WriteStructuralFeatureAction to
To convert EA WriteStructuralFeatureAction to either
AddStructuralFeatureValueAction or
RemoveStructuralFeatureValueAction.
Transforming EA Specific Data
On this page
• Constraints(see page 111)
• Requirements(see page 112)
• Scenarios(see page 112)
• Files(see page 113)
• Requirements (external)(see page 113)
• Changes(see page 113)
• Issues(see page 114)
In addition to UML data, each EA-exported XMI contains EA-specific information. The Enterprise
Architect Import can transform this information into UML elements with the stereotypes applied if you
include EA-specific data before importing the XMI file. This data includes:
• Constraints: name, description, type, weight, and status.
• Requirements: name, description, type, status, difficulty, priority, and last update.
• Scenarios: name, description, type, and weight.
• Files: file path type.
• Requirements (External): type, status, difficulty, priority, last update, created, and note.
• Changes: type, status, difficulty, priority, last update, created, and note.
• Issues: type, status, difficulty, priority, last update, created, and note.
Note
You can access and specify the EA information in the Property dialog in EA.
To include EA-specific data in the transformation process, a set of stereotypes and tag definitions are
created as the EA Profile.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
110
The EA Profile in a treeview.
Constraints
Each EA constraint will be transformed into a UML constraint (see page 697)and «EAConstraint» will be
applied to the constraint. The properties of an EA constraint will be mapped either to the properties of
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
111
a UML constraint or to the tag values of «EAConstraint». The following table shows the constraint
mapping details.
EA
Modeling tool by NoMagic
name
The name property of a UML constraint.
description
EAConstraint::type tag value.
type
EAConstraint::weight tag value.
weight
EAConstraint::status tag value.
constraint owner
Constrained Element property point to the constraint owner.
Requirements
Each EA requirement will be transformed into a UML Class(see page 675). Because a requirement cannot
be created in an element that is the owner of a Class in EA, the transformed requirement will be kept in
a separate Package(see page 805), named EA Requirement. A Realization (see page 824)will then be created
from the owner of the requirement into a transformed requirement. See the following table for details.
EA
Modeling tool by NoMagic
name
EARequirement :: name tag value
description
EARequirement :: description tag value
type
EARequirement :: type tag value
status
EARequirement :: status tag value
difficulty
EARequirement :: difficulty tag value
priority
EARequirement :: priority tag value
last update
EARequirement :: name update value
Scenarios
Each EA scenario will be transformed into a UML Comment(see page 691) and «EAScenario» will be applied
to the comment. The properties of a scenario will be mapped either to the properties of each UML
Comment or to the tag values of «EAScenario». See the following table for details.
EA
Modeling tool by NoMagic
name
EAScenario::name tag value
description
The Body property of a UML Comment.
type
EAScenario :: type tag value
weight
EARequirement :: weight tag value
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
112
EA
Modeling tool by NoMagic
subject
An annotated Element property pointing to an EA subject element.
Files
EA can add files to a UML element. The information will be transformed into a Hyperlink (see page 756)in a
UML model.
EA
Modeling tool by NoMagic
Local file
File
Web address
Webpage.
Requirements (external)
An EA-created Requirement differs from the one you create as an internal element for each element.
EA requirements will appear in the Model Browser(see page 26) and can be pasted on a diagram. Each EA
Requirement will be transformed into a Class (see page 675)and «EARequirement» will be applied to the
requirement.
EA
Modeling tool by NoMagic
type
EARequirement :: type tag value
status
EARequirement :: status tag value
difficulty
EARequirement :: difficulty tag value
priority
EARequirement :: priority tag value
last update
EARequirement :: last update value
created
EARequirement :: created tag value
note
Documentation
Changes
EA can create a Change and will export it as a Class(see page 675). The Class information will be
transformed into the «EAChange» tag values. See the following table for details.
EA
Modeling tool by NoMagic
type
EAChange :: type tag value
status
EAChange :: status tag value
difficulty
EAChange :: difficulty tag value
priority
EAChange :: priority tag value
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
113
EA
Modeling tool by NoMagic
last update
EAChange :: last update value
created
EAChange :: created tag value
note
Documentation
Issues
EA can create an Issue and will export it as a Class(see page 675). The Issue information will be
transformed into the «EAIssue» tag values. See the following table for details.
EA
Modeling tool by NoMagic
type
EAIssue :: type tag value
status
EAIssue :: status tag value
difficulty
EAIssue :: difficulty tag value
priority
EAIssue :: priority tag value
last update
EAIssue :: last update value
created
EAIssue :: created tag value
note
Documentation
Importing Diagrams
Enterprise Architect Import allows you to import diagrams. The imported diagram information includes:
• Geometry Properties(see page 114)
• Color Properties(see page 115)
• Display Properties(see page 115)
Geometry Properties
The geometry properties imported to a UML model are:
• Positions on a diagram (for shape elements)
• Width and height (for shape elements)
• Path break points (for link elements)
Note
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
114
Other display properties can override geometry information. For example, if an imported
element width is shorter than the required width to display text on the element, the width will
be adjusted automatically.
Color Properties
Color properties will be imported along with the diagrams to a modeling tool developed by NoMagic.
Each color property has a different name in a modeling tool. The following table shows color properties
mapping.
EA
Modeling tool by NoMagic
Background
Fill color
Border color (for shape element)
Pen color
Font color
Text color
Line color (for link element)
Pen color
Display Properties
Display properties in EA can be categorized into three groups: shape, link, and diagram. Only those
properties corresponding to MagicDraw will be imported. For example, the Show Diagram Details
property in EA will be imported as the Show Diagram Info property(see page 556) in a modeling tool
developed by NoMagic.
Special Transformation
An EA-exported XMI contains both non-standard UML elements and elements that can break the XMI
schema. To retain standard UML elements and keep the XMI schema intact, the Enterprise Architect
Import applies specific transformation rules. The following sections describe how each model element
is transformed, enabling you to import a complete XMI model conforming to UML standards.
Use Case diagram elements
This page describes all Use Case diagram(see page 284) elements.
Actor with Properties
An Actor (see page 654)with properties will be transformed into a Class (see page 675)with the «EAActor»
stereotype.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
115
An actor with properties.
Note
An Actor that has been converted to a Class with «EAActor» will not display some properties
(such as Fill Color) because the stereotype image will be shown instead.
Use Case with Invalid Inner Elements
A NestedClassifier, ownedComment, ownedRule, ownedAttribute, or ownedOperation cannot be an
inner element of a uml:UseCase. It will be moved to a new created realized Class(see page 675).
A Use Case with invalid inner elements.
Boundary
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
116
A boundary in EA will be converted into a rectangle with rounded corners. The boundary can contain
inner elements. Unlike the rectangular boundary, the boundary in EA will take all inner elements with it
whenever it is moved.
Boundaries.
Related pages
• Use Case diagram(see page 284)
Activity diagram elements
On this page
• Activity(see page 117)
• Activity diagram(see page 119)
• Object as the inner element of an Activity(see page 119)
• Synch Node(see page 121)
• Activity Parameter(see page 121)
• Exception Handler(see page 122)
• ObjectFlow(see page 123)
• ExpansionRegion(see page 124)
• InterruptibleActivityRegion(see page 124)
• Swimlane(see page 125)
• StructuredActivity(see page 126)
• InterruptFlow(see page 127)
• ExpansionNode(see page 128)
Activity
You can directly place an Activity element in EA as an element view on an Activity diagram(see page 296).
However, this behavior conflicts with MagicDraw (CEA and CSM) and UML notation. In MagicDraw, CEA,
or CSM, if you drag an Activity from the containment tree to an Activity diagram, a new
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
117
CallBehaviorAction (see page 641)view will be created and the Behavior property of the
CallBehaviorAction will be set to the Activity. This same behavior will be used in the import process.
An Activity element created in EA and placed on an Activity diagram will be transformed into two
elements: Activity, and CallBehaviorAction elements. Both elements will have the same name and will
be linked through the property of a CallBehaviorAction element called Behavior.
After transforming the element, the following transformation message opens:
Updated element <xmi:id>: A new CallBehaviorAction was created and its
Behavior was set to the element.
EA activity.
Activity with a New CallBehavior in MagicDraw.
Note
The EA Activity and CallBehaviorAction elements have similar characteristics in that you can
attach a control flow to it and others. EA has its own CallBehaviorAction element.
Additionally, any ObjectNode elements attached to the Activity element will be transformed into
InputPin elements and attached to the newly created CallBehaviorAction element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
118
An ObjectNode converted into an InputPin.
Activity diagram
Every Activity Diagram element from EA will be placed inside an Activity element that has the same
name.
Activity diagram in the MagicDraw Containment tree.
Note
In MagicDraw, CEA, or CSM, every Activity diagram element must be placed inside an Activity
element that has the same name. However, this is not the case in EA.
Object as the inner element of an Activity
Object elements inside an Activity element in EA will be removed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
119
Object elements transformation.
Note
Object elements in MagicDraw, CEA, or CSM have their XMI types defined as uml:CentralBufferNode. However, those in EA have their XMI types defined as uml:InstanceSpecification,
which do not belong to an Activity diagram.
An Object element containing any ActivityDiagram-related elements will be removed.
Object Containing Activity-related Elements.
Note
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
120
In MagicDraw, CEA, or CSM, an Object element (CentralBufferNode) is not allowed to contain
elements other than comments and hyperlinks.
Synch Node
A Synch element in EA will be transformed into a Join (see page 852)element in MagicDraw, CEA, or CSM. It
will look exactly like a Fork/Join element.
Synch element transformation.
Note
A MagicDraw (CAE or CSM) Fork/Join element (whose type is uml:ForkNode) can be used to
construct either a Fork and Join node in an Activity diagram. The JoinNode element (whose type
is uml:JoinNode) is allowed to be placed in the Activity diagram, but the element’s image will be
displayed as the Fork/Join element’s default image.
Activity Parameter
If you create an ActivityParameter element, MagicDraw (CEA or CSM) will automatically create an
ActivityParameterNode (see page 787)element to represent it. Every ActivityParameterNode element in EA
will be transformed into a Pin (see page 811)element.
Activity parameter node.
You can specify four parameter types for each Activity Parameter element: in, out, inout, and return.
The ActivityParameterNode element of an ActivityParameter element whose parameter type is either
'in' or 'inout' will be transformed into an InputPin element. The ActivityParameterNode element of an
ActivityParameter element whose parameter type is either out or return will be transformed into an
OutputPin element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
121
Activity parameter type.
Note
Usually, if you specify the parameter type of an ActivityParameter element as inout, two Pin
elements (InputPin and OutputPin elements) will be created for the element. Since EA will only
create one ActivityParameterNode element, this element will be transformed into an InputPin
element.
Exception Handler
The Exception Handler element in EA differs from the UML’s ExceptionHandler(see page 717). This EA
element will be transformed into a CallBehaviorAction element. Any ObjectNode element attached to it
will be transformed into an InputPin element and any InterruptFlow line will be transformed into an
ExceptionHandler line in MagicDraw, CEA, or CSM.
After completing the transformation, the following transformation messages open:
Updated element <xmi:id>: EA ExceptionHandler is transformed to an
CallBehaviorAction with and input pin.
Updated element <xmi:id>: EA InterruptFlow was transformed to an
ExceptionHandler.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
122
ExceptionHandler.
ObjectFlow
An ObjectFlow (see page 799)line whose ends are not attached to any of the following elements will be
transformed into a ControlFlow.
• InputPin
• OutputPin
• ObjectNode
• CentralBufferNode
• DataStoreNode
After completing the transformation, the following transformation message opens:
Updated element <xmi:id>: uml:ObjectFlow updated to uml:ControlFlow.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
123
ExpansionRegion
Most of the elements placed inside any ExpansionRegion elements in EA will stay in their original place.
ExpansionRegion tree view.
However, if there is any Activity, Swimlane, InterruptibleActivityRegion, StructuredActivityNode,
LooNode, SequenceNode, ConditionalNode, or other ExpansionRegion contained within an
ExpansionRegion, it will be placed within a dummy Activity element. The created dummy will have the
same name and will be placed at the same level as the ExpansionRegion (see page 793)element.
Nested ExpansionRegion tree view.
After completing the transformation, the following transformation message opens:
Updated element <xmi:id>: ExpansionRegion cannot contain some inner elements.
An Activity with the same name as the ExpansionRegion was created to contain
inner elements.
InterruptibleActivityRegion
Most of the elements placed inside an InterruptibleActivityRegion element in EA will be placed at the
same level as the InterruptibleActivityRegion element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
124
InterruptibleActivityRegion tree view.
However, if there is any Activity, Swimlane, ExpansionRegion, StructuredActivityNode, LoopNode,
SequenceNode, ConditionalNode, or other InterruptibleActivityRegion contained within an
InterruptibleActivityRegion, it will be placed within a dummy Activity. The created dummy will have the
same name and will be placed at the same level as the InterruptibleActivityRegion.
Nested InterruptibleActivityRegion tree view.
After completing the process, the following transformation message opens:
Updated element <xmi:id>: InterruptibleActivityRegion cannot contain some
inner elements.
An Activity with the same name as the InterruptibleActivityRegion was created
to contain inner elements.
Swimlane
Most of the elements placed inside any Swimlane element in EA will be placed at the same level as the
Swimlane (see page 866)element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
125
Swimlane tree view.
A dummy Activity will also be created to hold any other Swimlanes that it may contain. The dummy
activity will have the same name and will be placed at the same level as the Swimlane.
If two or more Swimlanes are nested together, then every element (except Swimlane element)
contained within either of them will be placed at the same level as the Swimlane topping the nestedSwimlane-elements hierarchy.
Nested Swimlane tree view.
After completing the process, the following transformation message opens:
Updated element <xmi:id>: Swimlane cannot contain some inner elements. The XMI
structure was fixed.
StructuredActivity
Four elements are classified as Structured Activity elements in EA:
• StructuredActivityNode element
• LoopNode element
• SequenceNode element
• ConditionalNode element
Most of the elements placed inside any StructuredActivityNode, LoopNode, SequenceNode, or
ConditionalNode elements in EA will stay in their original place.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
126
StructuredActivityNode tree view.
However, if there is any Activity, Swimlane, InterruptibleActivityRegion, ExpansionRegion, or another
StructuredActivity contained within a StructuredActivity, it will be placed within a dummy Activity. The
created dummy will have the same name, and will be placed at the same level as the StructuredActivity.
Nested StructuredActivityNode tree view.
After completing the process, the following transformation messages will open, depending on the
Structured Activity elements involved:
• Updated element <xmi:id>: StructuredActivityNode cannot contain some inner elements. An
Activity with the same name as the StructuredActivityNode was created to contain inner
elements.
• Updated element <xmi:id>: ConditionalNode cannot contain some inner elements. An Activity
with the same name as the ConditionalNode was created to contain inner elements.
• Updated element <xmi:id>: LoopNode cannot contain some inner elements. An Activity with the
same name as the LoopNode was created to contain inner elements.
• Updated element <xmi:id>: SequenceNode cannot contain some inner elements. An Activity with
the same name as the SequenceNode was created to contain inner elements.
InterruptFlow
In some cases, EA InterruptFlows are ControlFlow lines. Their image will be displayed as the
InterruptFlow line in the Activity diagram. An InterruptFlow is not a ControlFlow line if the InterruptFlow
line is drawn from one element in an InterruptibleActivityRegion to another outside the
InterruptibleActivityRegion. In an XMI file, this line will be imported as a ControlFlow line, and its image
will be changed to that of the ControlFlow line.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
127
However, if either end of the line is any of the following elements, it will be transformed into an
ObjectFlow line.
• InputPin element
• OutputPin element
• ObjectNode element
• CentralBufferNode element
• DataStoreNode element
InterruptFlow.
ExpansionNode
An ExpansionNode is a Pin which can only be contained within an ExpansionRegion and will be
imported like any other Pin elements. However, if an ExpansionNode in EA is created inside another
element rather than an ExpansionRegion, that particular ExpansionNode will not be imported.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
128
ExpansionNode.
Related pages
• Activity diagram(see page 296)
Sequence diagram elements
On this page
• Lifelines(see page 130)
• Gate(see page 133)
• Endpoints(see page 137)
• Delete Messages(see page 137)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
129
• Branch Messages(see page 139)
• Boundaries, Controls, and Entities(see page 140)
• Actors(see page 141)
• General Ordering(see page 142)
• State Invariant(see page 143)
• Continuation(see page 144)
• Diagonal Message(see page 144)
• Synchronous Message behavior(see page 146)
• Asynchronous Message behavior(see page 149)
• Return Message behavior(see page 150)
• Activation options(see page 151)
Lifelines
All of the EA Lifelines will be imported, but a part or port within a Lifeline will be transformed into a new
separate Lifeline(see page 752).
Gaps between Lifelines
The position and width of any Lifeline created in EA will not be imported. Every Lifeline will be given a
fixed value and position in MagicDraw, CEA, or CSM. MagicDraw, CEA, or CSM will place the first Lifeline
on the left-hand side of the diagram and the second Lifeline on the right-hand side next to the first one.
The length of the gap between the Lifelines will be fixed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
130
Gaps between Lifelines.
Lifelines Arrangement
A Lifeline can be nested within another component, such as a Part (see page 810)or Port(see page 815). If this
is the case, every component nested within the Lifeline and the Lifeline itself will be drawn separately.
They will be arranged in order depending on the position of their Lifeline lines.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
131
Lifelines arrangement.
Class, Part, and Port
When represented as Lifelines, Classes, Parts, and Ports have different characteristics from the others.
They will be bundled according to their relationships. A Composite Structure diagram(see page 309)
provides one convenient way to create a Class(see page 675), Part, or Port.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
132
Class, Part, and Port.
Gate
A Sequence Message whose tail is connected to a Gate and head connected to a Lifeline in EA will be
transformed into a Sequence Message(see page 762) with its tail connected to one of the boundary lines
of the diagram in which it is contained. The Gate (see page 725)itself will be removed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
133
Gate.
Once the Gate has been removed and the transformation process has been completed, the following
transformation message will open:
Removed element <xmi:id>: uml:Gate.
A Sequence Message whose head is connected to a Gate and tail connected to a Lifeline line in EA will
be transformed into a Reply Message with its tail connected to one of the boundary lines of the
diagram in which it is contained. The Gate itself will be removed
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
134
Gate (EA) and Reply Message (MagicDraw, CEA, or CSM).
The Diagonal Message and Reply Message will be connected to the nearest diagram boundary.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
135
Gate (EA) and Direction of Diagonal Message (MagicDraw, CEA, or CSM).
Anything else connected to a Gate will also be removed, except the tail of a Sequence Message. For
example, if the head of a Sequence Message is connected to a Gate, the Message will be removed. If
the tail of a Message is connected to a Gate, but the head is connected to anything other than a Lifeline
line, the Message will be removed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
136
Endpoints
A Sequence Message whose head connected to an Endpoint and tail connected to a Lifeline line in EA
will be transformed into a Lost Message. The Endpoint element itself will be removed. Once the process
has been completed, the following transformation message will open:
Removed element <xmi:id>: EndPoint.
A Message whose head connected to a Lifeline line and tail connected to an Endpoint will be
transformed into a Found Message.
Endpoint.
Anything else connected to an endpoint will also be removed, except the head of a Sequence Message.
For example, if the tail of a Sequence Message is connected to an endpoint, the Message will be
removed.
If the head of a Message is connected to an endpoint, but the tail is connected to anything other than a
Lifeline line, the Message will be removed. Once the process has been completed, the following
transformation message will open:
Removed element <xmi:id>: Invalid Message. Source and Target of the Mes- sage
are not connected to any Lifeline.
Delete Messages
A Sequence Message whose property Lifecycle is set to Delete (that causes the Lifeline targeted by the
Message to end at some range after the point of contact), will be transformed into a Delete Message.
The Lifeline connected to its head will end at the point of contact, and all Messages will be removed
after that point of contact of the Lifeline. MagicDraw, CEA, or CSM will report the following
transformation message once each process has been completed:
Removed element <xmi:id>: Message is under Delete Message.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
137
Delete message.
Under certain circumstances, a Lifeline connected to the head of a Delete Message does not end at the
point of contact. Instead, an Activation will be created and started from the point of contact. The
Lifeline will then end at the end of the Activation. However, that Activation should not interact with any
Message.
Special case of delete message.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
138
Under certain circumstances, an X sign (normally drawn after a Delete Message) in EA will be drawn on
a Lifeline line whose Lifeline is being pointed by a Create Message. If this is the case, the X sign has no
significant meaning and can be ignored.
The X sign.
Branch Messages
If the Branch with previous Message option of a Sequence Message is enabled, the tail of the
message connect to the tail of its previous Message on the same Lifeline line. The message will be
called Branch Message from that time on.
Every Branch Message in EA will be transformed into a normal Message in MagicDraw, CEA, or CSM.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
139
Branch Message.
After the transformation process has been completed, the following transformation message will open:
Updated element <xmi:id>: Branch Message updated to regular Message.
Boundaries, Controls, and Entities
The Boundary, Control, and Entity elements in a Sequence diagram context in EA are Lifeline elements
whose stereotype property types are set to Boundary, Control, or Entity. They will be imported like any
other normal Lifelines. However, an XMI exported from EA has an «entity» stereotype problem. This
means the Lifeline with the «entity» stereotype applied is unable to show the stereotype icon. You can
solve this problem by placing an «entity» stereotype in EA_Profile.xml. The converted model can then
use it instead of the one from EA.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
140
Boundary, Control, and Entity.
Actors
An Actor element in the Sequence diagram context in EA is not a regular Lifeline element. It is a special
Lifeline element whose property type is uml:Actor. It will be transformed into a regular Actor and a
Lifeline element will be created to represent it. The figure below shows an Actor (see page 654)element in
the MagicDraw, CEA, or CSM Containment tree.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
141
Actor.
General Ordering
Not every General Ordering element in EA will be imported, as MagicDraw, CEA, or CSM does not
support it in the current release.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
142
General ordering.
After completing the transformation process, the following transformation message will open:
Updated element <xmi:id>: General Ordering will not be imported.
State Invariant
A State Invariant in EA will be transformed as is. MagicDraw, CEA, or CSM does not support State
Invariants in the current release.
State Invariant.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
143
Continuation
Continuations from EA can be imported to MagicDraw, CEA, or CSM. They are viewable in the
Containment Tree(see page 702), but without a picture displayed in the diagram. MagicDraw, CEA, or CSM
does not support Continuations in the current release.
Continuation.
After completing the transformation process, the following transformation message will open:
Updated element <xmi:id>: Continuation will not be displayed.
Diagonal Message
A Diagonal Message is a Message whose destination's height is adjustable. A diagonal Message may
change Activations.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
144
To create a Diagonal Message in EA, you must specify the Timing Details property of the Message and
add a numeric value to the Duration Constraint input field.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
145
Creating a Diagonal Message.
Synchronous Message behavior
The placement of Synchronous Messages in EA affects the way Activations are created.
Order
A Message in EA has a Sequence Number that indicates the order of the message in the diagram. This
information can be found in the exported XMI file. Knowing it helps predict how Activations will be
created. The order starts from the top and goes downward, so the first Message in the diagram is the
one drawn at the top of the diagram. Its Sequence Number will be set to '1'.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
146
Message sequence number.
Process
Generally, in EA, any two Synchronous Messages will be in the same process if they meet the following
conditions:
• Both of their tails are placed on the same Lifeline.
• The head of the upper Message and the tail of the lower Message are on the same Lifeline.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
147
Process.
Activation level
The Activation Level starts from level 0. It will increase in increments of 1 as an ongoing process that
receives a Message that is not a Return Message (Reply Message in MagicDraw, CEA, or CSM).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
148
Activation level.
Asynchronous Message behavior
If a Message is an Asynchronous Message in EA, its source Activation will end if there is no other
Message in the same group with a higher Sequence Number. Its source will be attached to the same
Lifeline.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
149
Asynchronous Message.
Return Message behavior
A Return Message in EA is called a Reply Message in MagicDraw, CEA, or CSM. When it is pointed to an
Activation, it will not create an Activation at the top of the existing Activation, unlike other normal
Synchronous Messages.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
150
Return message.
Activation options
You can control how Activations behave at some level through the Message options. You can access
Message options by right-clicking any Message, and then selecting the Activations option. However,
MagicDraw, CEA, or CSM does not support Activation options in the current release.
Activation options.
Related pages
• Sequence diagram(see page 288)
Communication diagram elements
On this page
• Object, Boundary, Entity, and Control(see page 152)
• Exception Elements(see page 153)
• Association(see page 154)
• Message(see page 156)
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
151
• Operations(see page 157)
Object, Boundary, Entity, and Control
All Object, Boundary, Entity, Control elements in EA are InstanceSpecifications(see page 741). After
conversion, their UML element types will remain, and a Lifeline (see page 752)and an OwnedAttribute
element will be created to represent each of them in the Communication diagram(see page 286) in which
they occur.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
152
Object, Boundary, Entity, and Control (diagram view).
Object, Boundary, Entity, and Control (Containment tree).
Other elements that can be drawn in a Communication diagram will be handled in a similar manner.
Exception Elements
Some of the elements that can be drawn in a Communication diagram using EA are not supported by
MagicDraw, CEA, or CSM. Consequently, their displaying parts will not be imported. These elements
include Package(see page 805), Activity(see page 296), Action(see page 637), DiagramFrame(see page 516), State(see
page 853), Interaction(see page 745), ExceptionHandler(see page 717), CentralBufferNode(see page 803),
InterruptibleActivityRegion(see page 856), MergeNode(see page 803), Trigger, ExpansionRegion(see page 793),
and InteractionFragment(see page 745).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
153
Exception elements.
Realization and Nesting
The Realization element type in EA is uml:Realization. The Nesting element type in EA is exported in XMI
as uml:Dependency. The Realization and Nesting lines in EA are not supported in the Communication
diagram; therefore, only their model data will be imported, not the displaying parts.
Realization and Nesting.
Association
Every Association relationship drawn in a Communication diagram in EA will have a Connector line
created for each of them. The elements attached to both ends of the Association (see page 662)line will
have a Lifeline element created to represent each of them. The Association lines and the elements
attached to them will not be removed. However, the elements that will be shown in the diagram frame
will be the Lifeline elements and the Connector lines created to represent them.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
154
Association.
If an Association line is connected to the InstanceSpecification elements, its data will be removed. If an
Association line is linked between two InstanceSpecification elements, it will be transformed into an
InstanceSpecification (see page 741)element. This is one of the constraints belonging to the
Communication diagram.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
155
Association Line between InstanceSpecifications.
Message
Messages can be created on Connectors and will be imported to MagicDraw, CEA, or CSM.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
156
Message.
Operations
An InstanceSpecification cannot contain Operation elements. If the XMI file from EA has some
InstanceSpecification elements containing Operation elements, those Operations will be removed.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
157
Operations.
Related pages
• Communication diagram(see page 286)
State Machine diagram elements
On this page
• StateMachine(see page 158)
• State(see page 159)
• StateMachine placed on a diagram(see page 162)
• Object(see page 162)
• Synch(see page 164)
• EntryPoint / ExitPoint(see page 165)
• Object Flow connecting State Machine elements(see page 166)
• Information Flow connecting State Machine elements(see page 167)
• Trigger(see page 168)
• Self Transition(see page 168)
• Removed element(see page 169)
StateMachine
After conversion, a dummy StateMachine element will be created. The dummy StateMachine is either
created by the XMI exporter from EA or by EA Import. A StateMachine diagram(see page 293) will be
placed inside the dummy StateMachine and a dummy Region element will be created to contain all of
the StateMachine elements.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
158
A dummy StateMachine element and a dummy Region element.
State
State containing other elements
A State element containing other elements will be transformed to a Composite (see page 853)State(see page
853). All of the contained elements will be placed inside the Region (see page 856)element of the State
element.
State Containing Other Elements.
State Containing StateMachine
If a State element contains a StateMachine element, the StateMachine element will be brought out and
placed at the same level of the Region element of the State element.
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
159
State Containing StateMachine.
State containing Attribute and Operation
If a State element contains Attribute and Operation elements, the Attribute (see page 680)and Operation
(see page 685)elements will be removed from both the Diagram pane(see page 21) and Containment tree(see
page 702).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
160
State Containing Attribute and Operation.
The following transformation messages will open:
• Removed element <xmi:id>: State cannot contain Attribute.
• Removed element <xmi:id>: State cannot contain Operation.
State containing Diagram Element
If a diagram element is placed inside a State element, it will be removed.
State Containing Diagram Element.
The following transformation message will open:
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
161
Removed element <xmi:id>: State cannot contain diagram element.
StateMachine placed on a diagram
If a StateMachine element is drawn in a StateMachine diagram, an additional SubMachineState will be
created to represent the StateMachine.
Note
A SubMachine State is a State whose SubMachine property is set to a StateMachine.
StateMachine Represented by a SubMachine State.
Object
An Object element placed in a State Machine diagram will be removed from the Diagram view.
However, its data will be preserved in the Containment tree as an InstanceSpecification(see page 741).
Copyright © 1998 – 2021 No Magic, Incorporated, a Dassault Systèmes company.
162
Object.
The following transformation message will open:
Removed view <xmi:id>: The view represents element that does not support in
State Machine Diagram.
Object containing a St
0
You can add this document to your study collection(s)
Sign in Available only to authorized usersYou can add this document to your saved list
Sign in Available only to authorized users(For complaints, use another form )