MapleMBSE 2024.1 Virtual
Features Guide

Copyright © Maplesoft, a division of Waterloo Maple Inc.
2024

MapleMBSE 2024.1 Virtual Features Guide

Contents
Preface ........................................................................................................ xi
1 Introduction ................................................................................................. 1
1.1 Scope and Purpose of this Document .......................................................... 1
1.2 Prerequisite Knowledge ........................................................................... 1
1.3 Motivation for Using MapleMBSE Virtual Features ...................................... 1
1.4 Importing the MapleMBSE Ecore .............................................................. 3
1.5 General Syntax for the MapleMBSE Virtual Features .................................... 3
2 Stereotypes .................................................................................................. 5
2.1 metaclassName ...................................................................................... 5
Description ............................................................................................ 5
Syntax .................................................................................................. 5
Using the metaclassName Virtual Feature .................................................... 5
Example ................................................................................................ 6
2.2 featureName .......................................................................................... 6
Description ............................................................................................ 6
Syntax .................................................................................................. 7
Using the featureName Virtual Feature ........................................................ 7
Example ................................................................................................ 8
2.3 stereotypeNames .................................................................................... 9
Description ............................................................................................ 9
Syntax .................................................................................................. 9
Using the stereotypeNames Virtual Feature .................................................. 9
Example .............................................................................................. 10
3 Associations ............................................................................................... 11
3.1 associatedProperty ................................................................................ 11
Description .......................................................................................... 11
Syntax ................................................................................................ 11
Using the associatedProperty Virtual Feature .............................................. 12
Example .............................................................................................. 13
3.2 directedAssociatedProperty ..................................................................... 14
Description .......................................................................................... 14
Syntax ................................................................................................ 14
Using the directAssociatedProperty Virtual Feature ..................................... 14
Example .............................................................................................. 15
3.3 otherAssociatedEnd ............................................................................... 16
Description .......................................................................................... 16
Syntax ................................................................................................ 16
Using the otherAssociatedEnd Virtual Feature ............................................ 16
Example .............................................................................................. 17
3.4 nestedDirectedComposition .................................................................... 19
Description .......................................................................................... 19iii

iv • Contents

Syntax ................................................................................................ 19
Using the nestedDirectedComposition virtual feature ................................... 19
Example .............................................................................................. 20
4 Blocks ....................................................................................................... 21
4.1 recursivePartProperties .......................................................................... 21
Description .......................................................................................... 21
Syntax ................................................................................................ 21
Using the recursivePartProperties Virtual Feature ........................................ 21
Example .............................................................................................. 22
4.2 propertyDefaultValue ............................................................................. 22
Description .......................................................................................... 22
Syntax ................................................................................................ 22
Using the propertyDefaultValue Virtual Feature .......................................... 22
Example .............................................................................................. 22
4.3 getAllProperties .................................................................................... 23
Description .......................................................................................... 23
Syntax ................................................................................................ 25
Using the getAllProperties virtual feature ................................................... 25
Example .............................................................................................. 26
5 Connectors ................................................................................................. 27
5.1 connectedPropertyOrPort ....................................................................... 27
Description .......................................................................................... 27
Syntax ................................................................................................ 27
Using the connectedPropertyOrPort virtual feature ...................................... 28
Example .............................................................................................. 28
5.2 otherConnectorEnd ............................................................................... 29
Description .......................................................................................... 29
Syntax ................................................................................................ 29
Using the otherConnectorEnd Virtual Feature ............................................. 29
Example .............................................................................................. 29
6 Dependencies ............................................................................................. 31
6.1 clientDependencies ............................................................................... 31
Description .......................................................................................... 31
Syntax ................................................................................................ 31
Using the clientDependencies Virtual Feature ............................................. 31
Example .............................................................................................. 31
6.2 supplierDependencies ............................................................................ 32
Description .......................................................................................... 32
Syntax ................................................................................................ 33
Using the supplierDependencies Virtual Feature .......................................... 33
Example .............................................................................................. 34
6.3 featureImpact ....................................................................................... 34
Description .......................................................................................... 34

Contents • v

Syntax ................................................................................................ 35
Using the featureImpact Virtual Feature ..................................................... 35
Example .............................................................................................. 35
6.4 Multiple Dependencies Class .................................................................. 36
Introduction ......................................................................................... 36
Creating a Multiple Dependencies Class in an MSE file ................................ 36
7 Enumeration ............................................................................................... 37
7.1 EnumerationName ................................................................................ 37
Description .......................................................................................... 37
Syntax ................................................................................................ 37
Using the enumerationName Virtual Feature ............................................... 37
Example .............................................................................................. 38
7.2 EnumerationLabel ................................................................................. 38
Description .......................................................................................... 38
Syntax ................................................................................................ 38
8 Util ........................................................................................................... 41
8.1 multiplicityProperty .............................................................................. 41
Description .......................................................................................... 41
Syntax ................................................................................................ 41
Using the multiplicityProperty Virtual Feature ............................................ 41
Example .............................................................................................. 42
9 Activity Diagrams ....................................................................................... 43
9.1 ActivityControlFlow .............................................................................. 43
Description .......................................................................................... 43
Syntax ................................................................................................ 43
Using the ActivityControlFlow Virtual Feature ........................................... 43
Example .............................................................................................. 44
9.2 ActivityObjectFlow ............................................................................... 45
Description .......................................................................................... 45
Syntax ................................................................................................ 45
Using the ActivityObjectFlow Virtual Feature ............................................ 45
Example .............................................................................................. 46
10 StateMachines ........................................................................................... 47
10.1 VertexTransition .................................................................................. 47
Description .......................................................................................... 47
Syntax ................................................................................................ 47
Using the VertexTransition Virtual Feature ................................................. 47
Example .............................................................................................. 48
11 Comments ................................................................................................ 49
11.1 ownedComments ................................................................................. 49
Description .......................................................................................... 49
Syntax ................................................................................................ 49
Using the ownedComments Virtual Feature ................................................ 49

vi • Contents

Example .............................................................................................. 50
12 Instance Matrices ....................................................................................... 53
12.1 SlotValue ........................................................................................... 53
Description .......................................................................................... 53
Syntax ................................................................................................ 53
Using the SlotValue Virtual Feature .......................................................... 54
Example .............................................................................................. 55
12.2 InstanceTree ....................................................................................... 55
Description .......................................................................................... 55
Syntax ................................................................................................ 56
Using the InstanceTree Virtual Feature ...................................................... 56
Example .............................................................................................. 57
12.3 InstanceWithSlots ................................................................................ 58
Description .......................................................................................... 58
Syntax ................................................................................................ 58
Using the InstanceWithSlots Virtual Feature ............................................... 58
Example .............................................................................................. 59
12.4 RecursiveInstanceWithSlots .................................................................. 59
Description .......................................................................................... 59
Syntax ................................................................................................ 60
Using the RecursiveInstanceWithSlots Virtual Feature .................................. 60
Example .............................................................................................. 61
12.5 AttachedFile ....................................................................................... 61
Description .......................................................................................... 61
Syntax ................................................................................................ 61
Using the attachedFile Virtual Feature ....................................................... 62
Example .............................................................................................. 62
12.6 Slots ................................................................................................. 62
Description .......................................................................................... 62
Syntax ................................................................................................ 62
Using the slots Virtual Feature ................................................................. 62
Example .............................................................................................. 63
12.7 ArrayName ........................................................................................ 63
Description .......................................................................................... 63
Syntax ................................................................................................ 63
Using the arrayName Virtual Feature ........................................................ 63
Example .............................................................................................. 64
12.8 MultiplicityOfInstance ......................................................................... 64
Description .......................................................................................... 64
Syntax ................................................................................................ 65
Using the multiplicityOfInstance Virtual Feature ......................................... 65
Example .............................................................................................. 65
13 Recursivity ............................................................................................... 67

Contents • vii

13.1 getRecursively .................................................................................... 67
Description .......................................................................................... 67
Syntax ................................................................................................ 67
Using the getRecursively Virtual Feature ................................................... 68
Example .............................................................................................. 68
14 Constraints ............................................................................................... 71
14.1 durationConstraint ............................................................................... 71
Description .......................................................................................... 71
Syntax ................................................................................................ 71
Using the durationConstraint Virtual Feature .............................................. 72
Example .............................................................................................. 72
15 Generalization ........................................................................................... 75
15.1 specificClass ...................................................................................... 75
Description .......................................................................................... 75
Syntax ................................................................................................ 75
Using the specificClass Virtual Feature ...................................................... 75
Example .............................................................................................. 75
16 Working with sysML Diagrams .................................................................... 77
16.1 downloadDiagram ............................................................................... 77
Description .......................................................................................... 77
Syntax ................................................................................................ 77
Using the clientDependencies Virtual Feature ............................................. 77
Example .............................................................................................. 77
16.2 diagramType ...................................................................................... 78
Description .......................................................................................... 78
Syntax ................................................................................................ 78
Using the supplierDependencies Virtual Feature .......................................... 78
Example .............................................................................................. 78
17 File Attachments ....................................................................................... 79
17.1 AttachedFile ....................................................................................... 79
Description .......................................................................................... 79
Syntax ................................................................................................ 79
Using the attachedFile Virtual Feature ....................................................... 79
Example .............................................................................................. 79
18 Element Type ............................................................................................ 81
18.1 elementType ....................................................................................... 81
Description .......................................................................................... 81
Syntax ................................................................................................ 81
Using the elementType Virtual Feature ...................................................... 81
Example .............................................................................................. 81
Index .......................................................................................................... 83

viii • Contents

List of Figures
Figure 2.1: metaclassName Example ................................................................... 6
Figure 2.2: The appliedStereotypeInstance Structure ............................................... 7
Figure 2.3: featureName Example ....................................................................... 8
Figure 2.4: stereotypeNames Example ............................................................... 10
Figure 3.1: associatedProperty Example ............................................................. 13
Figure 3.2: directAssociatedProperty Example ..................................................... 15
Figure 3.3: otherAssociatedEnd Example ............................................................ 18
Figure 5.1: connectedPropertyOrPort Example .................................................... 28
Figure 5.2: otherConnectorEnd Example ............................................................ 30
Figure 6.1: clientDependencies Example ............................................................ 32
Figure 6.2: supplierDependencies Example ......................................................... 34
Figure 8.1: multiplicityProperty Example ........................................................... 42
Figure 9.1: ActivityControlFlow Example .......................................................... 44
Figure 9.2: ActivityObjectFlow Example ............................................................ 46
Figure 10.1: VertexTransition Example .............................................................. 48ix

x • List of Figures

Preface
MapleMBSE Overview
MapleMBSE™ gives an intuitive, spreadsheet based user interface for entering detailed
system design definitions, which include structures, behaviors, requirements, and parametricconstraints.

Related Products
MapleMBSE 2024 requires the following products.
• Microsoft® Excel® 2010 Service Pack 2, Excel 2016 or Excel 2019.
• Oracle® Java® SE Runtime Environment 8.
Note: MapleMBSE looks for a Java Runtime Environment in the following order:
1) If you use the -vm option specified in OSGiBridge.init (not specified by default),
MapleMBSE will use it.
2) If your environment has a system JRE ( meaning either: JREs specified by the environment
variables JRE_HOME and JAVA_HOME in this order, or a JRE specified by the Windows
Registry (created by JRE installer) ), MapleMBSE will use it.
3) The JRE installed in the MapleMBSE installation directory.
If you are using IBM® Rational® Rhapsody® with MapleMBSE, the following versions
are supported:• Rational Rhapsody Version 8.1.5, 8.3 and 8.4• Teamwork CloudTM server 2021.x, 2022.x and 2024.x• Magic Collaboration Studio 2021.x, 2022x and 2024.x
If you are using Eclipse CapellaTM with MapleMBSE, the following version is supported:• 5.1, 5.2
If you are using EclipseTM, the following version is supported:• 2023-3Note that the architecture of the supported non-server products (that is, 32-bit or 64-bit)must match the architecture of your MapleMBSE architecture.

xi

xii • Preface

Related Resources
Resource

MapleMBSE Installation
Guide

Description
System requirements and installation instructions for
MapleMBSE. The MapleMBSE Installation Guide is available
in the Install.html file located in the folder where you installed
MapleMBSE, or on the website.

https://www.maplesoft.com/documentation_center/
MapleMBSE Applications Applications in this directory provide a hands on demonstrationof how to edit and construct models using MapleMBSE. They,
along with an accompanying guide, are located in the Application
subdirectory of your MapleMBSE installation.
MapleMBSE Configuration This guide provides detailed instructions on working withGuide
configuration files and the configuration file language.
MapleMBSE User Guide Instructions for using MapleMBSE software. The MapleMBSE
User Guide is available in the folder where you installed
MapleMBSE.
Frequently Asked
You can find MapleMBSE FAQs here:
Questions
https://faq.maplesoft.com
Release Notes
The release notes contain information about new features, known
issues and release history from previous versions. You can findthe release notes in your MapleMBSE installation directory.

For additional resources, visit http://www.maplesoft.com/site_resources.

Getting Help
To request customer support or technical support, visit http://www.maplesoft.com/support.

Customer Feedback
Maplesoft welcomes your feedback. For comments related to the MapleMBSE productdocumentation, contact doc@maplesoft.com.

1 Introduction
1.1 Scope and Purpose of this Document
The purpose of the MapleMBSE Virtual Features Guide is to describe MapleMBSE virtualfeatures and explain how to use them.
The intended audience for this document are users who are familiar with UML, SysML andModel-based Systems Engineering concepts and who intend to create their own MapleMBSE
configuration files.

1.2 Prerequisite Knowledge
To fully understand the information presented in this document the reader should be familiar with the following concepts:• The Eclipse Modeling Framework ecore serialization. In particular, knowing how to
use any tool of your choice to track all the eReferences independently of the eSuperTypes.
• Thus, some basic concepts of Meta Object Facility like eClassifiers and eStructuralFeatures. A correct mse configuration file has within each qualifier a concrete UML eClassifiers and each dimension should be accessed using a non-derived StructuralFeaturedefined in the UML.ecore or a virtual one inside this guide.
• MapleMBSE Configuration Language elements (especially dimension and qualifiers,
and the syntax for importing the MapleMBSE ecore). For more information on the
MapleMBSE Configuration language, see the MapleMBSE Configuration Guide.

1.3 Motivation for Using MapleMBSE Virtual Features
SysML provides a high level of abstraction to cover as many modeling scenarios as possible
with the diagrams offered. It is a powerful and complex language that is extremely difficult
to master because of its complexity (there are hundreds of pages of technical specificationsfor SysML).
Many different concrete and abstract Classifiers, with very specific semantics, are part of
the SysML technical specifications. These Classifiers should not be used interchangeably.
Even "linking" elements changes depending on the "linked" elements. For example, SysML
Associations are to Classes as Connectors are to Ports, or, what ControlFlows can be for
ActivityNodes. However, these elements are not interchangeable.
An end user, defined as a user who will be updating model information using the
MapleMBSE spreadsheet interface but likely will not be involved in creating or editing
configuration files, who interested in taking advantage of the modeling capabilities of
SysML, should not need to know its complexities. MapleMBSE helps to hide this complexity

12 • 1 Introduction

from the end user, through virtual features. They are called virtual features because, although
they extend the capabilities of native SysML, they themselves are not part of SysML.
With the right choice of labels within an Excel template and a well designed configuration(.mse) file that implements MapleMBSE virtual features, an end user can enter a couple of
inputs in a spreadsheet and create Blocks and the Associations linking them, or Ports andConnectors, or other combinations of elements.
For example, consider the following code snippet from a MapleMBSE configuration filein the figure below. This figure illustrates the scenario where a configuration file is designed
without the use of virtual features to represent SysML Associations between Blocks.
Notice in the generated Excel worksheet, the number of inputs required of the end user torepresent the Association between Customer and Product. This requires knowledge of
SysML on the part of the end user.

Now consider an example that represents the same Association between Customer andProduct, as shown in the figure below. This time, the configuration file is designed using
the MapleMBSE virtual features, specifically, the associatedProperty virtual feature. Notice,
the only inputs required of the end user are the two SysML Blocks, Customer and Product.
The cross-references need for the Association are completed automatically.

1.4 Importing the MapleMBSE Ecore • 3

1.4 Importing the MapleMBSE Ecore
Loading MapleMBSE virtual features is analogous to the way you would load UML
Structural Features using UML Ecore. The corresponding MapleMBSE Configuration language uses import-ecore.
The general syntax isimport-ecore "URI"
For example, to specify the NoMagic ecore:"http://www.nomagic.com/magicdraw/UML/2.5"
To specify the MapleMBSE ecore:"http://maplembse.maplesoft.com/common/1.0"
You must create an alias for the ecore using the syntax:
import-ecore "URI" as Alias
For example, to specify an alias for the MapleMBSE ecore:
import-ecore "http://maplembse.maplesoft.com/common/1.0" as
mseThis allows you to use the short form, mse, instead of the whole syntax.

1.5 General Syntax for the MapleMBSE Virtual Features
The general syntax for the virtual features is[./]?alias::virtualfeature4 • 1 Introduction

The first character can be a dot, a forward slash, or a blank. There is no strict rule of thumbfor this. For specific syntax, see the Syntax subsection for each virtual feature.
alias - This is the alias for the ecore importvirtualfeature - This is the virtual feature name you want to use, for example, associatedProperty.

2 Stereotypes
SysML can be explained as a subset of elements defined in the UML specifications plus
some additional features not included in UML. One of these features is a Stereotype. Stereotypes are applied to those elements adding extra meaning or modeling semantics.
MapleMBSE offers several virtual features to apply Stereotypes and navigate their extended
modeling capacities.

2.1 metaclassName
Description
Use the metaclassName virtual feature to apply Stereotypes while creating elements using
MapleMBSE. To use this virtual feature you need to identify the qualified name of theStereotype that you want to apply and whether the element is compatible with that stereotype.

SyntaxAny Element of the Model can have a list of appliedStereotype but only certain Stereotypes
should be applied to certain Element. This is one of the few virtual features that is used asa filter inside the qualifier and it does not require a dot or slash notation prior to the alias.
The metaclassName virtual feature must be followed by an equals symbol and the qualified
name of the Stereotype between quotation marks.
alias::metaclassName="qualified::name"
It is important to note that this qualified name is basically a path and the name that identifies
uniquely each Stereotype, and each substring is concatenated with a double colon notation.

Using the metaclassName Virtual Feature
The following steps illustrate what you need to do to use the metaclassName virtual feature:
1. The MapleMBSE ecore is imported and its alias is mse.
2. Two data-sources are used for this example with metaclassName to filter Blocks andRequirements. Note: both of those SysML concept are UML Classes but with different
Stereotypes.
3. Defining synctable-schemas, one for Blocks and another for Requirements. Note:
To avoid problems with MapleMBSE it is a good practice to use the same qualifier andStereotype filter in the data-source and the first dimension of the schema.
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook.

56 • 2 Stereotypes

ExampleThe following example showcases how to use metaclassName to create Classes applying
2 different Stereotypes.

Figure 2.1: metaclassName Example

2.2 featureName
Description
As mentioned in the introduction of this section, once you applied a Stereotype to any Element, you are changing its semantics and extending it. Use featureName to access thoseextended properties stored in Slots using their qualified names.
The class diagram in Figure 2.2 (page 7) shows the different EClasses that need to bequeried in order to access those Slots. Remember that Element is an abstract EClass and it
should not be used as the qualifier. Basically all elements in a Model implement Element,
thus EClasses like Class have the structural feature appliedStereotypeInstance to query InstanceSpecification.

2.2 featureName • 7

Figure 2.2: The appliedStereotypeInstance Structure

SyntaxUse featureName the same way metaclassName is used within a qualifier as a filter,meaning that no dot or slash notations are needed before the alias. It expected, following
the virtual feature, an equal symbol and a string between quotation marks; this string is thequalified name of the property to access.
alias::featureName="qualified::name"
This qualified name is similar to the one used to identify the Stereotype but it differs slightly
at the end with extra information concatenated to identify a single extension. As mentioned
before this virtual feature is usable while querying a Slot inside a InstanceSpecification inside
an concrete Element, but you must also know that this Element must be filtered by metaclassName with the qualified name that identifies the Stereotype.

Using the featureName Virtual Feature
To access extra Properties added after applying a Stereotype:
1. Import the MapleMBSE ecore.
2. Inside a synctable-schema navigate to a MultiplicityElement, in this case, /ownedAttribute[Property] within a Class.
3. Within that dimension, define a regular column using /mse::multiplicityProperty.
4. Complete the rest of the configuration as usual: worksheet-templates, synctable andworkbook.

8 • 2 Stereotypes

ExampleThe following example illustrates how to access extra Properties added after applying a
Stereotype.
1. Import MapleMBSE ecore, for this example use mse as the alias.
2. Create a data-source using the metaclassName virtual feature mentioned before tofilter Requirements.
3. Define a synctable-schema for Requirements. Note: use the same qualifier and Stereotype
for the first dimension as for the data-source.
4. To access the SysML::Requirements::Requirement::Text Property added
to a Class after applying the Requirement Stereotype you must:
1. Navigate appliedStereotypeInstance to get an InstanceSpecification.
2. Then slot to recover all the Slots within the InstanceSpecification
3. Use featureName with the Slot qualifier to filter the Property that you want to access
Note: The qualified name of that Property is the name of the qualified Stereotype plus 2colons and the name of the Property.
Stereotype: SysML::Requirements::Requirement
Property: SysML::Requirements::Requirement::Text
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook.

Figure 2.3: featureName Example

2.3 stereotypeNames • 9

2.3 stereotypeNames
Description
Use the stereotypeNames virtual feature to filter and create Model Elements with the specific combination of Stereotypes. To use this virtual feature you need a complete and necessary list of Stereotypes and their qualified names, and concatenate those qualified names
into a single String. Only Elements which Stereotypes match in number and in qualified
name are accepted by this filtering. The order of those Stereotypes is not important.

SyntaxThis virtual feature is used as a attribute filter inside the qualifier and it does not require a
dot or slash. The stereotypeNames virtual feature must be followed by an equal symbol
and a String with Stereotypes. That String must separate the Stereotypes qualified nameswith a comma to work properly.
alias::stereotypeNames="one::qualified::name,another::qualified::name"
It is important to know that the order of the qualified names are not important. They can beswapped and the same result is to be expected. On the other hand, the String must include
the exact number of Stereotypes the filter should use. Meaning if you have a model with N
Elements with Stereotypes A and B, filtering using the String "A;B;C" would not show anyof those N Elements as they do not have the same number of Stereotypes.

Using the stereotypeNames Virtual Feature
The following steps illustrate what you need to use the stereotypeNames virtual feature:
1. The MapleMBSE ecore is imported and its alias is mse.
2. A couple data-sources are used for this example with stereotypeNames to filter
Packages and Classes.
3. To use this feature to apply Stereotypes, you need to define a synctable-schema.
Note: To avoid problems with MapleMBSE it is a good practice to use the same qualifierand Stereotypes filter in the data-source and the first dimension of the schema.
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook.

10 • 2 Stereotypes

ExampleThe following example showcases how to use stereotypeNames to create and filter
Elements with different Stereotypes.

Figure 2.4: stereotypeNames Example

3 Associations
An Association between two Blocks creates cross references for two UML Classes with
SysML Block Stereotypes (<<block>>) to one Association using two properties and also
makes some cross references, like Type and Association, within those properties .

3.1 associatedProperty
Description
In MagicDraw, with a couple clicks from one block to another, all of these elements arecorrectly created. Similarly in MapleMBSE, the associatedProperty virtual featureprovides the ability to connect two SysML Blocks, creating a bidirectional Association at
the same hierarchicallevel in the diagram as the source Block.

When MapleMBSE queries the model, the associatedProperty returns the target
Block (the Block that is related to a Property through an Association).

SyntaxThe general syntax for using the associatedProperty virtual feature is as follows:.alias::associatedProperty
Where alias is the alias you assigned to the MapleMBSE ecore. For more information
on assigning aliases, see Importing the MapleMBSE Ecore (page 3).

1112 • 3 Associations

The associatedProperty virtual feature must be used when querying the Property
of a Block.

Using the associatedProperty Virtual Feature
The following example illustrates what you need to do to use AssociatedProperty virtualfeature.
1. In line two, the maplembse ecore is imported with an alias.
2. Use an ownedAttribute[Property] as the queried dimension.
3. Make a reference-query to a class using mse::associatedProperty.
4. Complete the reference-decomposition.

3.1 associatedProperty • 13

ExampleFigure 3.1: associatedProperty Example

14 • 3 Associations

3.2 directedAssociatedProperty
Description
To create Associations with navigability in one direction MapleMBSE uses directedAssociatedProperty, using this virtual feature links two Classes and adds a Property to the source
Block and other Property to an Association.
Based on the aggregation value we can use this virtual feature to create Association, Aggregation and Composition with direction.

SyntaxThe general syntax for using the directedAssociatedProperty virtual feature is
as follows:.alias::directedAssociatedProperty
Where alias is the alias you assigned to the MapleMBSE ecore (hyperlink to above).
The directedAssociatedProperty virtual feature must be used when querying theProperty of a Block.

Using the directAssociatedProperty Virtual Feature
The following example illustrates what you need to do to use directedAssociatedProperty.
1. In line two, the maplembse ecore is imported with an alias.
2. Use an ownedAttribute[Property] as the queried dimension.
3. Make a reference-query to a class using mse::directedAssociatedProperty.
4. Complete the reference-decomposition.

3.2 directedAssociatedProperty • 15

ExampleFigure 3.2: directAssociatedProperty Example

16 • 3 Associations

3.3 otherAssociatedEnd
Description
otherAssociationEnd is used in the case when two classifiers have to be linked and the information about the properties of these classifiers are owned by the association and not theclassifiers themselves, such as in the case of UseCase diagram where association exists
between an actor and usecase and these two classifiers do not own any property that defines
the other classifier.

SyntaxThe general syntax for using the otherAssociationEnd virtual feature is as follows:.alias::otherAssociationEnd
Where alias is the alias you assigned to the MapleMBSE ecore (hyperlink to above).
The otherAssociationEnd virtual feature must always be used when querying a Class.

Using the otherAssociatedEnd Virtual Feature
The following example illustrates what you need to do to use otherAssociationEnd.
1. In line two, the maplembse ecore is imported with an alias.
2. Use when a Class as the queried dimension.
3. Make a reference-query to a class using mse::otherAssociationEnd,unlike
other virtual features in this section otherAssociationEnd should not be used when aproperty is querried.
4. Complete the reference-decomposition.

3.3 otherAssociatedEnd • 17

Example18 • 3 Associations

Figure 3.3: otherAssociatedEnd Example

3.4 nestedDirectedComposition • 19

3.4 nestedDirectedComposition
Description
MapleMBSE is powerful enough to change any SysML feature, in particular a nestedClassifier. The effort to change the model in a desired way is always related to creating the right
schemas and data sources to offer intuitive views. Unfortunately, creating a nested blockand a directed composition to it is not an easy task without this virtual feature. The creationof composition association to non-existing nested block should be possible just by mentioning
the name of the target block in the right dimension.

SyntaxThe general syntax for using the nestedDirectedComposition virtual feature is as follows:
dim /alias::nestedDirectedComposition[Association]
Where alias is the alias you assigned to the MapleMBSE ecore (hyperlink to above).
The nestedDirectedComposition virtual feature must be used when querying the Block andAssociation in a dimension. It always needs to be used in conjunction with another virtualfeature to set up the target Block: targetBlockName.
The general syntax for using the targetBlockName virtual feature is as follows:
key column /alias::targetBlockName
This targetBlockName virtual feature should be the only key column for a nestedDirectedComposition dimension.

Using the nestedDirectedComposition virtual feature
The following example illustrates what you need to do to use nestedDirectedComposition
1. In line two, the maplembse ecore is imported with an alias.
2. Use a Class or an Association qualifier in the querried dimension, as shown in line 8, 12
and 16.
3. Create a targetBlockName key column for each nestedDirectedComposition dimension

20 • 3 Associations

Example4 Blocks
4.1 recursivePartProperties
Description
The recursivePartProperties virtual feature helps finds all the related blocks and sub-blocks
and part properties, recursively.
Displaying a block and related sub-blocks in the same syncview is difficult if they are indifferent packages, and there is a chance that relevant blocks are missing in the syncview.
The recursivePartProperties virtual feature helps find all the related blocks, sub-blocks andpart properties, recursively. This makes it easier to create a corresponding configuration
file.
The recursivePartProperties virtual feature works in a similar fashion to recursiveInstanceWithSlots, and a common use case is to use both of these in conjunction for instance matrices.

SyntaxThe configuration file syntax for using recursivePartProperties is illustrated below.
datasource blocks = Root/packageElement[Package|name=”Test”]/packageElement[Class|name=”B1”]/mse::recursivePartProperties[Class];
synctable-schema TestSchema {record dim[Class]{
key column /name as mainBlock}
Dim /mse::recursivePartProperties[Class]{
Key column /name as subBlocks}}

Using the recursivePartProperties Virtual Feature
The following example illustrates one way to use the recursiveIPartProperties virtual feature:
1. Import the MapleMBSE ecore with an alias.
2. Create a datasource that has the context/main block for which you want to find theproperties(for example, ../packageElement[Class|name="B1"] ).
3. Use recursivePartProperties[Class] to return all the classes linked to thecontext/main block and sub-blocks.

2122 • 4 Blocks

4. Create a sync-schema and synctable and after that use that datasource in thesynctable.

Exampledatasource blocks = Root/packageElement[Package|name=”Test”]/packageElement[Class|name=”B1”]/mse::recursivePartProperties[Class];

4.2 propertyDefaultValue
Description
Previously, to view or edit the default value of the value property or property without any
Stereotype, the author/editor of the configuration file editor had to write the line column/value[LiteralReal]/value. If the property contains a value other than a real value thenMapleMBSE will not display this value in the cell. If the configuration editor were to write
the MSE file in such a way as to view the value of every type of value property, It willcomplicate the MSE file and still, the end user will not able to view the values in one single
column. The propertyDefaultValue virtual feature fixes this problem and helps the configuration file editor and the end user to view and edit the value in one column.

Syntax/mse::propertyDefaultValue

Using the propertyDefaultValue Virtual Feature
1.Import the MapleMBSE ecore with an alias.
2. Create a datasource that has the blocks/classes for which you want to find the properties(forexample, ../packageElement[Class] ).
3. Use ownedAttribute[Property] to get properties from the block/Class
4. Use the propertyDefaultValue to get the value from the property
5. Create a sync-schema and synctable and then use that datasource in the synctable.

Examplesynctable-schema Schema{
record dim [Class|mse::metaclassName="SysML::Blocks::Block] {key column /name as BlockName}
record dim /ownedAttribute[Property mse::metaclassName |="MD Customizationfor SysML::additional_stereotypes::ValueProperty"] {4.3 getAllProperties • 23

key column /name as pName
column /mse::propertyDefaultValue as pvalue}}

4.3 getAllProperties
Description
The getAllProperties virtual feature retrieves properties under a block. These properties can be direct or indirect. If the block has generalization it can go as much as possible
in the upper direct to get the properties but for the composition it can only go one step down.
The images below show the model, MSE file, and the view in MapleMBSE. In the model
block, Comp11, and Comp2 are generalized to GenBlock using this feature MapleMBSE
can query and modify the properties that are also inherited from the GenBlock.

24 • 4 Blocks

Note: This feature can be used with the recursivePartProperties to get the flatview or can be used alone for the hierarchical view.

4.3 getAllProperties • 25

Syntaxdim /mse::getAllProperties

Using the getAllProperties virtual feature
1.Import the MapleMBSE ecore with an alias.
2. Create a datasource that has the blocks/classes for which you want to find the properties(forexample, ../packageElement[Class] ).
3. Use mse::getAllProperties[Property] to get properties from the block/Class (directly
owned properties or inherit properties)
4. Create a sync-schema and synctable and after that use that datasource in the synctable.

26 • 4 Blocks

Example5 Connectors

A Connector is used to link ConnectableElements (for example, Ports or Properties) of aClass through a ConnectorEnd. A Connector has two ConnectorEnds.
Based on the connection between Properties of a Class the connection can be of two types:
Delegation (connecting Ports or Properties from the system to Ports or Properties insidea Class) or Assembly (connecting Ports or Properties within a Class).

5.1 connectedPropertyOrPort
Description
To achieve this connection MapleMBSE uses connectedPropertyOrPort virtualfeature.
The connectorPropertyOrPort virtual feature connects Ports or Properties of aClass. It automatically detects the kind of relation required between the Properties being
connected and creates the appropriate connection.
When MapleMBSE queries the model, the connectedPropertyOrProt return the listof target properties.

SyntaxThe general syntax for using the connectedPropertyOrPort virtual feature is asfollows:.alias::connectedPropertyOrPort
Where the alias is alias you assigned to MapleMBSE ecore.

2728 • 5 Connectors

When the connection is created through connectedPropertyOrPort, the owner ofthe connected Property is determined automatically by MapleMBSE, regardless of whether
this is a Delegation or Assembly type connection.

Using the connectedPropertyOrPort virtual feature
In general, to use the connectedPropertyOrPort virtual feature:
1. First, import the MapleMBSE ecore with alias
2. Use an ownedAttribute[Property] as the queried dimension.
3. Make a reference-query to a property using mse::connectedPropertyOrPort.
4. Complete the reference-decomposition.

ExampleA specific example of how to use the ConnectedPropertyOrPort virtual feature isshown below.

Figure 5.1: connectedPropertyOrPort Example

5.2 otherConnectorEnd • 29

5.2 otherConnectorEnd
Description
To achieve this connection MapleMBSE also use otherConnectorEnd virtual feature.
This virtual feature can connect between ports or properties of a class, otherConnectorEnd automatically create the relation required between the properties being connected and creates appropriate connection.
When MapleMBSE queries the model, the otherConnectorEnd return the list of connectorEnds which is associated with the property.

SyntaxThe general syntax for using the otherConnectorEnd virtual feature is as follows:.alias::otherConnectorEnd
Where the alias is the alias you assigned to the MapleMBSE ecore.
When the connection is created using otherConnectorEnd, the owner of the connected
Property is determined automatically by MapleMBSE, regardless of whether this is a Delegation or Assembly type connection.

Using the otherConnectorEnd Virtual Feature
How to use the otherConnectorEnd virtual feature is shown in the example below:
1. First, import the MapleMBSE ecore with an appropriate alias
2. Use an ownedAttribute[Property] as the queried dimension.
3. Make a reference-query to a property using mse::otherConnectorEnd.
4. Complete the reference-decomposition.

ExampleA specific example of how to use the otherConnectorEnd virtual feature is shown
below.

30 • 5 Connectors

Figure 5.2: otherConnectorEnd Example

6 Dependencies
A Dependency is used between two model elements to represent a relationship where achange in one element (the supplier element) results in a change to the other element (client
element).
A Dependency relation can be created between any namedElement. Different kinds of Dependencies can be created between the model elements such as Refine, Realization,
Trace,Abstraction etc.

6.1 clientDependencies
Description
The clientDependencies virtual feature creates a relation between the client being
the dependent and supplier who provides further definition for the dependent.

SyntaxThe general syntax for using the clientDependencies virtual feature is as follows:/mse::clientDependencies
This virtual feature is used while querying a Class that has to be assigned as client to thedependency that is being created and is used in a following dimension the class that is being
queried.

Where alias is the alias you assigned to the MapleMBSE ecore.

Using the clientDependencies Virtual Feature
In general, the following steps outline how to use clientDependencies:
1. It should be used when a named element is queried.
2. Information about the type of relationship is specified as [Dependency], [Abstraction] etc.
3. When querying the model element with mse::clientDependencies, the reference
decomposition should be to a supplier element.

ExampleThe example below is an illustration of how to use the clientDependencies virtualfeature.

31

32 • 6 Dependencies

Figure 6.1: clientDependencies Example

6.2 supplierDependencies
Description

6.2 supplierDependencies • 33

Similar to clientDependencies, supplierDependencies is used to create a relation between two named elements. The only difference between the two virtual features
is supplierDependencies is used when the relationship has to be made from supplier
to client instead of client to supplier, as in the case of clientDependencies.

SyntaxThe general syntax for using the supplierDependencies virtual feature is as follows:/mse::supplierDependencies
This virtual feature is used while querying a Class that has to be assigned as supplier to thedependency that is being created and is used in a dimension following the class that is being
queried.

Where alias is the alias you assigned to the MapleMBSE ecore.

Using the supplierDependencies Virtual Feature
The following example illustrates what you need to do to use supplierDependencies
1. It should be used when a named element is being queried.
2. Information about the type of relationship is specified as [Dependency], [Abstraction]etc.
3. When querying the model element with mse::supplierDependencies the reference decomposition should be to a client element.

34 • 6 Dependencies

ExampleFigure 6.2: supplierDependencies Example

6.3 featureImpact
Description
The featureImpact virtual feature is used in context with the MBPLE profile. Using thisprofile a user can model a 150% model and use the feature impact (Dependency) relation
to link the Existence with the Feature Model. When a feature impact relationship is created,
the tag values should also be set based on the client and supplier. Adding the relation withreal features requires the user to add additional details that complicates the user actions.

6.3 featureImpact • 35

Using featureImpact, just by specifying the source and target, the tag values are updated
automatically. The featureImpact virtual feature works similar to the clientDependencies
virtual feature. The constraint is always set as client and the supplier is the feature.

Syntax/mse::featureImpact

Using the featureImpact Virtual Feature
1. Import the MapleMBSE ecore with an alias.
2. Create a datasource for the existence (constraints with stereotypes) to which the features
has to be linked.
3. Use /mse::featureImpact and this will set the constraint as client, and to set the supplieruse the supplier feature.

Example36 • 6 Dependencies

6.4 Multiple Dependencies Class
Introduction
Earlier on in this guide, when the Matrix concept was introduced, the focus was on a Matrix
where you can view only one type of relation in a Matrix.
However, through the use of a virtual mse::MultipleDependencies Eclass and the multipleDependencies virtual feature, multiple types of relations can be displayed at once in a
Matrix, where the user can pass a parameter to the virtual feature to control the type of relations displayed in the matrix.

Creating a Multiple Dependencies Class in an MSE file
The syntax for creating the multiple dependencies is:data-source deps = <previous-ds>/mse::multipleDependencies(StringFilters)[mse::MultipleDependencies]
where where <previous-ds> represents the needed navigation to all the dependencies expected
to be displayed, e.g. Root/packagedElement[Package|name="Dependencies"].
Next, mse::multipleDependencies(StringFilters) represents the virtual feature, multipleDependencies. In this case, StringFilters represents the parameters passed to multipleDependencies
used to select the type of relations displayed in the matrix.
An example:
This example is taken from the TWCSysML-RelationMatrix.MSE model file from theApplication\TWCSysML\2021x directory of your MapleMBSE installation.
data-source multiDep = sysStructurePkg/mse::multipleDependencies("SysML::Requirements::Satisfy","SysML::Requirements::Verify")[mse::MultipleDependencies]
The data-source, multiDep is defined as a multi-relational datasource. Here sysStructurePkg
represents the Package data source where the virtual feature, multipleDependencies willfind the Dependencies. Here, the string filters provided are two dependencies, "Satisfy" and"Verify". The [mse::MultiDependencies] part of this code represents the output from themultiDependences virtual feature, which is a MultipleDependencies object.
Note: If you do not specify a stereotype as a parameter to multiDependencies, then all stereotypes attached to the dependencies will be used and they will appear in the model
worksheet as a list of stereotypes.

7 Enumeration
Enumeration is a special DataType that can be compared to a list of possible values, theway that "colors" can be an enumeration and possible values can be: red, blue, green, etc.
These Enumerations are composed of EnumerationLiterals which are the different values
and the actual Elements to be referenced. MapleMBSE supports a couple virtual featuresthat need to be used in conjunction to access and reference any Enumeration and its EnumerationLiterals independently of where in the TWCloud project those values are stored(for example, under Model or customized profile)

7.1 EnumerationName
Description
MapleMBSE, to simplify Enumeration identification, supports an enumerationName
virtual feature that allows simpler access to a specific Enumeration while creating an MSE
configuration. Note that MapleMBSE, while using this virtual feature, will by default instantiate the accessed Element to the first EnumerationLiteral of the Enumeration. Nonetheless,enumerationLabel can be used to change to another EnumerationLiteral. See the next section
for further details.

SyntaxThe general syntax for using the enumrationName virtual feature is as follows:
alias::enumrationName="qualified::name"
Where alias is the alias you assigned to the MapleMBSE ecore and qualified::nameis the qualifiedName of the Enumeration. For more information on assigning aliases,
see Importing the MapleMBSE Ecore (page 3).
The enumrationName virtual feature must be used while querying an Element with a
Stereotype that supports some Property with an Enumeration type. For more information
on how to access a Slot, see the sections in the guide on the metaclassName and featureName
virtualFeatures. Once you get the specific Slot, retrieve its value and within its Qualifierfilter use enumrationName.

Using the enumerationName Virtual Feature
The following example illustrates what you need to do to use the enumerationName
virtual feature:
1. Import the maplembse ecore with an alias.
2. Create a schema that takes an Element with a Stereotype and navigate down to its InstanceValue for a Property with an Enumeration type. See lines 15 to 18 in the example
code in the next section for an illustration.

3738 • 7 Enumeration

3. Make sure you are using the right combination of qualified names for Stereotypes, Slot
Properties and Enumeration.
4. Complete the /value[InstanceValue] navigation with an enumerationLabel (see next
section for further details).

Example7.2 EnumerationLabel
Description
As shown in the previous sections on EnumerationName, MapleMBSE allows you to makea reference to Enumeration using a qualifiedName. However, without the right mechanism
to translate from String to EnumerationLiterals and vice versa, the end user will be forced
to deal with strange Object references or unusable Excel cells. This is exactly the problem
enumerationLabel was designed to solve. Using this virtual feature allows the end user to
see the String name of the EnumerationLiteral without forcing any reference-decomposition
and it allows also the end user to change the reference from the Slot Property using theString name of the desired EnumerationLiteral

SyntaxThe general syntax for using the enumerationLabel virtual feature is as follows:/alias::enumerationLabel
Where alias is the alias you assigned to the MapleMBSE ecore. For more information
on assigning aliases, see Importing the MapleMBSE Ecore (page 3).
The enumerationLabel virtual feature must be used while querying an InstanceValue
with a Stereotype that supports some Property with a Enumeration type and which was7.2 EnumerationLabel • 39

filtered with enumerationName. For more information how to access this kind of InstanceValue, see the previous section.

40 • 7 Enumeration

8 UtilThis section contains all other virtual features that do not create elements but offer a better
alternative to access and map model information.

8.1 multiplicityProperty
Description
The UML specification contains several MultiplicityElements like Properties that have upperand lower features to describe their multiplicity. Use the multiplicityProperty
virtual feature to make a configuration that translates a string into those upper and lower
values and the other way around.
This virtual feature recognizes the UML commonly used notation for multiplicity (e.g. 0..*).
Supporting this notation makes MapleMBSE much easier to use without adding complexity
and thus the final user has less to input into Excel.

SyntaxThe general syntax for using the multiplicityProperty virtual feature is as follows:/alias::multiplicityProperty
Where the alias is the alias you assigned to the MapleMBSE ecore.
This virtual feature can only be used while querying a concrete EClass implementing a
MultiplicityElement like a Property or a Pin. A slash notation is needed prior to the alias,
the 2 colons, and multiplicityProperty.
As mention previously multiplicityProperty uses a string to represent the multiplicity, meaning that this particular virtual feature cannot being used as a dimension with aqualifier. It is intended to be used only at a column declaration.

Using the multiplicityProperty Virtual Feature
The following example shows you how to map the multiplicity of a concrete MultiplicityElement like Property and a string.
1. Import the MapleMBSE ecore, as usual the alias used is mse
2. Inside a synctable-schema navigate to a MultiplicityElement, in this case /ownedAttribute[Property] within a Class
3. Within that dimension, define a regular column using /mse::multiplicityProperty

41

42 • 8 Util

4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook

ExampleFigure 8.1: multiplicityProperty Example

9 Activity Diagrams
An Activity Diagram is a diagram with a direct connection, ActivityEdge, that connects a
node, ActivityNode, to another ActivityNode. An Activity Diagram is useful to abstract
behavioral information within a system. In order to improve MSE configurations,
MapleMBSE supports control and object flow, the 2 kind of ActivityEdges, with two distinct
virtual features.

9.1 ActivityControlFlow
Description
A ControlFlow is an ActivityEdge that is used to control the execution of ActivityNodes
within an Activity.
In MapleMBSE, the virtual feature ActivityNode is used as a reference to create ControlFlows. Note that in MapleMBSE, abstract classes such as ActivityNode cannot be instantiated. Thus, you must instantiate concrete classes such as CallActionBehavior, ActivityParameterNode, or InitialNode. See the example section for further details.

SyntaxThe general syntax for using the activityControlFlow virtual feature is as follows:.alias::activityControlFlow
Where alias is the alias you assigned to the MapleMBSE ecore. For more information
on assigning aliases, see Importing the MapleMBSE Ecore (page 3).
The activityControlFlow virtual feature must be used when querying the ActivityNodeof Activity.

Using the ActivityControlFlow Virtual Feature
The following example illustrates what you need to do to use activityControlFlow
virtual feature:
1. Import the maplembse ecore with an alias.
2. Create a schema that navigates until an ActivityNode or an element that has an ActivityNode as its first dimension
3. Make a dimension reference-query to another ActivityNode using.mse::activityControlFlow.
4. Complete the reference-decomposition.
This example has extra schema, CallBehaviorActionSchema used to create concrete
ActivityNodes. The other schemas in this example will fail to instantiate Element because4344 • 9 Activity Diagrams

ActivityNode is an abstract class.
Note: Some data sources specific to a fictional project were created to simplify the reference-decomposition. In a real life scenario you might need to identify the Package,
the Activity and the ActivityNode that you want to connect to.

ExampleFigure 9.1: ActivityControlFlow Example

9.2 ActivityObjectFlow • 45

9.2 ActivityObjectFlow
Description
An ObjectFlow is an ActivityEdge that represents the flow of object data between ActivityNodes within an Activity. Sometimes, the ObjectFlow directly connects two ActivityNodes.
However, due to UML specifications, some ActivityNodes cannot be connected directly
using an ObjectFlow. In these cases Pins are required. Pins are objects that accept andprovide values to actions. These values represent an input to an action or output from anaction.
If an ActivityNode that requires Pins, such as CallBehaviorAction, also has a Behavior thatfurther describes it’s functionality, then both the ActivityNode and Behavior need to havetheir Pins (specifically ActivityParameterNode and Parameters) synchronized, both inquantity and direction.

SyntaxThe general syntax for using the activityObjectFlow virtual feature is as follows:.alias:: activityObjectFlow
Where alias is the alias you assigned to the MapleMBSE ecore. For more information on
assigning aliases, see Introduction (page 1).
The activityObjectFlow virtual feature must be used when querying the ActivityNodeof Activity.

Using the ActivityObjectFlow Virtual Feature
The following example illustrates what you need to do to use activityObjectFlow
virtual feature:
1. Import the maplembse ecore with an alias.
2. Create a schema that navigates until an ActivityNode or an element which has an ActivityNode as its dimension.
3. Make a dimension reference-query to another ActivityNode using .mse::
activityObjectFlow.
4. Complete the reference-decomposition.

46 • 9 Activity Diagrams

ExampleFigure 9.2: ActivityObjectFlow Example

10 StateMachines
StateMachine diagrams are used to define the different states that a system will exist in.
This kind of diagram helps modelers to describe discrete, event-driven behaviors of thewhole system or its parts.

10.1 VertexTransition
Description
MapleMBSE, in order to simplify Transition between Vertexes, supports a vertexTransition virtual feature that allows a better end user experience while inputting data.Notethat MapleMBSE will fail to instantiate abstract classes like Vertex and it will be required
to instantiate instead concrete classes like Pseudostate, State or FinalState. Nonetheless,
Vertex can be used as reference to create Transitions. See the example section for further
details.

SyntaxThe general syntax for using the vertexTransition virtual feature is as follows:.alias:: vertexTransition
Where alias is the alias you assigned to the MapleMBSE ecore. For more information
on assigning aliases, see Importing the MapleMBSE Ecore (page 3).
The vertexTransition virtual feature must be used when querying the any kind of
Vertex within a given Region of a StateMachine.

Using the VertexTransition Virtual Feature
The following example illustrates what you need to do to use the vertexTransition
virtual feature:
1. Import the maplembse ecore with an alias.
2. Create an schema that navigates till an Vertex or which first dimension is an Vertex.
3. Make a dimension reference-query to another Vertex using .mse:: vertexTransition.
4. Complete the reference-decomposition.
This example has some extra schema, called StateSchema, used to create concrete States.
The other schemas in this example will fail to instantiate Element because Vertex is an abstract class.
Note: some data sources specific to a fictional project were create in order to simplify thereference-decomposition, in a real life scenario you might need to identify the
Package, the StateMachine, the Region and the Vertex that you want to connect to.

47

48 • 10 StateMachines

ExampleFigure 10.1: VertexTransition Example

11 Comments
11.1 ownedComments
Description
A comment is an element that represents a textual annotation that can be attached to otherelements or a set of elements.
A comment can be owned by any element.
This virtual feature creates a comment and annotated it with the owner element.

SyntaxThe general syntax for using the ownedComments virtual feature is as follows:/alias:: ownedComments
Where the alias is the alias you assigned to the MapleMBSE ecore.

Using the ownedComments Virtual Feature
The following example shows you how to use the ownedComments feature.
1. Import the MapleMBSE ecore, as usual the alias used is mse
2. Inside a synctable-schema navigate to a Class
3. Within that dimension, define a regular column using /mse::ownedComments[Comment]
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook49

50 • 11 Comments

Example11.1 ownedComments • 51

52 • 11 Comments

12 Instance Matrices
SysML permits users to create an instance of the classifiers with their properties. If theclassifier is defined with some properties, the instances will own slots that contain theproperties defined. This instance allows users to create concrete elements from the moregeneral model. In order to simplify the task related to InstanceSpecification, MapleMBSE
proposes the following virtual features to support the creation, edition, and removal of instances and their Slots.

12.1 SlotValue
Description
SysML has a complex structure to access the values within Slots. Those values change
widely depending on the type of the property defining the owing Slot. Imagine a real property
defining Slot, which, in order to contain that value, requires a LiteralReal, and then the realvalue will be stored within that literal. Each type has its own literal class, and for reference
to other instances the mechanisms are another matter altogether. This is just a reminder of
how much complexity this InstanceSpecification modeling has, but thanks to this virtualfeature, MapleMBSE simplifies and hides that complexity. Using a single access point andwithout caring about the concrete type of the property, SlotValue will return a string representing the value given Slot. MapleMBSE proposes an easy mechanism to display, create,
and edit that first value associated to any Slot. Emphasis in first, SysML metamodel allows
to associate several values to a single Slot, it is by design that MapleMBSE does not use
this virtual feature for a different multiplicity.

SyntaxThe general syntax for using the slotValue virtual feature is as follows:column [Slot]/alias::slotValue as column_nameWhere alias is the alias you assigned to the MapleMBSE ecore. For more information on
assigning aliases, see Importing the MapleMBSE Ecore (page 3).
The slotValue virtual feature must be used while querying a Slot, and the return string canonly be used within a column.

53

54 • 12 Instance Matrices

Using the SlotValue Virtual Feature
The following example illustrates what you need to do to use the slotValue virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing a Slot from an InstanceSpecification,
see line 24.
3. Make sure that you are using the right combination of applied Classifier to the InstanceSpecification and the Slot’s definingFeature.
4. Access that Slot’s value using the slotValue virtual feature, see line 30

12.2 InstanceTree • 55

Example12.2 InstanceTree
Description
SysML forces each Slot to be owned by an InstanceSpecification. The regular way to navigate would be from InstanceSpecification to Slot, and without any other mechanisms it

56 • 12 Instance Matrices

would be hard get a list of the InstanceSpecification tree for a given Slot. Remember thata Slot can have, as values, references to other InstanceSpecifications, and those would bepart of tree for that given Slot. Returning this special tree list of InstanceSpecifications is
the goal of instanceTree virtual feature.

SyntaxThe general syntax for using the instanceTree virtual feature is as follows:
dim .alias::instanceTree[InstanceSpecification]
Where alias is the alias you assigned to the MapleMBSE ecore.
For more information on assigning aliases, see Importing the MapleMBSE Ecore (page 3).
The instanceTree virtual feature must be used in a dimension level after querying a Slot,the return type is a list of reference to the InstanceSpecifications which belong to the treeof the queried Slot.

Using the InstanceTree Virtual Feature
The following example illustrates what you need to do to use the instanceTree virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing a Slot from an InstanceSpecification,
see line 24.
3. The dimension after the Slot one should use the instanceTree, see line 32

12.2 InstanceTree • 57

Example58 • 12 Instance Matrices

12.3 InstanceWithSlots
Description
It is well known that InstanceSpecifications and their Slots are an essential part of a usefuland meaningful model. They are necessary to achieve results, but the task of instantiating,editing, and removing those elements is slow and error prone. MapleMBSE helps to create
very complex structures using InstanceWithSlots, when you pass Class as parameter to an
InstanceSpecification using this virtual feature, you will see how:
• MapleMBSE updates the list of classifiers that are applied to a given InstanceSpecification• For each defining property related to that applied class, MapleMBSE will create a Slotdefined by a property with its default value.

SyntaxTo use instanceWithSlots virtual feature as a column within an InstanceSpecification dimension, the syntax is as follows:reference-query .alias::instanceWithSlots @reference_name
This configuration line needs to be completed with a reference-decomposition that uses a
Class schema, see the example for further information. Also remember that alias is the alias
you assigned to the MapleMBSE ecore.
For more information on assigning aliases, see Importing the MapleMBSE Ecore (page 3).

Using the InstanceWithSlots Virtual Feature
The following example illustrates one way to use the instanceWithSlots virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing an InstanceSpecification, see line 16.
3. Reference-query instanceWithSlots, see lines 18/19

12.4 RecursiveInstanceWithSlots • 59

Example12.4 RecursiveInstanceWithSlots
Description
The RecursiveInstanceWithSlots virtual feature does the same thing that InstanceWithSlots
does but for all possible InstanceSpecifications in the tree. If a Class A is composed byother Class B and you use recursiveInstanceWithSlots to create an InstanceSpecificationof Class A, MapleMBSE will also create an InstanceSpecification for Class B with Slots.

60 • 12 Instance Matrices

SyntaxTo use recursiveInstanceWithSlots virtual feature as a column within an InstanceSpecification
dimension, the syntax is as follows:reference-query .alias::recursiveInstanceWithSlots @reference_name
This configuration line needs to be completed with a reference-decomposition that uses a
Class schema, see the example for further information. Also remember that alias is the alias
you assigned to the MapleMBSE ecore. For more information on assigning aliases, see
Importing the MapleMBSE Ecore (page 3).

Using the RecursiveInstanceWithSlots Virtual Feature
The following example illustrates one way to use the recursiveInstanceWithSlots virtualfeature:1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing an InstanceSpecification, see line 16.
3. Reference-query recursiveInstanceWithSlots, see lines 18/19

12.5 AttachedFile • 61

Example12.5 AttachedFile
Description
The attachedFile virtual feature supports MagicDraw file attachments, which are accessible
through comments. It downloads all the relevant file attachments, and displays hyperlinks
to temporary locations in the user interface. When the user clicks on the link, the user interface will open the file.

SyntaxThe syntax to use attachedFile is as follows:column /mse::attachedFile as fileName62 • 12 Instance Matrices

Using the attachedFile Virtual Feature
The following example illustrates one way to use the recursiveInstanceWithSlots virtualfeature:1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing an ownedComment line 5, in the column
level call the attached VF see line 6 in the example code

Examplesynctable-schema AttachedFileSchema {record dim[Package]{
key column /name as PkgName}
dim /ownedComment[Comment|mse::stereotypeNames="UML Standard
Profile::MagicDraw Profile::AttachedFile"]{column /mse::attachedFile as fileName}}

12.6 Slots
Description
Use the slots virtual feature to add a new slot and display all the slots recursively under a
top-level instance. The slots virtual feature can also be used to delete a child slot under a
top level instance and then recreate the child slot.

SyntaxThe syntax to use slots is as follows:
dim /mse::slots[Slot]

Using the slots Virtual Feature
The following example illustrates one way to use the Slots virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing slots using the slots virtual feature (shownin line 6 in the slots VF get all the slots Recursively under a instance specification

12.7 ArrayName • 63

Examplesynctable-schema InstanceTable(blk : BlocksTable){record dim [InstanceSpecification] {key column /name as instanceName}dim /mse::slots[Slot] {key reference-query .definingFeature[Property] @ dfRef
reference-decomposition dfRef = blk {foreign-key column bName as bName
foreign-key column valName as valName}
key column /mse::slotValue as cValue}}

12.7 ArrayName
Description
This feature is used to display the classifier of an instance along with its multiplicity. Thisfeature gets a list of the sub-instance values for a given instance and returns the classifier,along with numbering, based on the list length. In the case of only one instance, numberings
are not displayed. For example, if an Instance has two sub-instances due to the properties
multiplicity, MapleMBSE will display the classifier name with array numbering i.e., Classifier[1], Classifier[2]Syntax/ alias::arrayName

Using the arrayName Virtual FeatureThis feature works only in the context of instance specification.
The following example illustrates the use of the arrayName virtual feature.
1. Navigate to the sub-instance from a top-level instance as shown below.
2. Use the arrayName virtual feature to get the classifier name along with the sub-instancemultiplicity.

64 • 12 Instance Matrices

Example12.8 MultiplicityOfInstanceDescription
This feature is used to increase or decrease the number of sub-instances of the template instance (Top level instance based on which the rows of the instance matrix are displayed)that is defined for the rows of an instance matrix. It navigates using the instance classifier
to get details of the property multiplicity, based on this value defined for the property in themodel user can update the value in the table for the template instance.

12.8 MultiplicityOfInstance • 65

SyntaxThe general syntax for using the multiplicityOfInstance virtual feature is as follows:/alias::multiplicityOfInstance

Using the multiplicityOfInstance Virtual Feature
1. Multiplicity of Instance should be used in a table view that queries the InstanceSpecification and its sub-instances as shown in the example.
2. It is recommended that multiplicityOfInstance be used with the arrayName feature sothat the tables can display all the available Instances and its sub-instances.

Example66 • 12 Instance Matrices

13 Recursivity
13.1 getRecursively
Description
The getRecursively virtual feature works as a chained data source, traversing all subelements
recursively under the owner data source or QPE and then filters out elements matching thequalifier and filter.
Note: This virtual feature only works for packaged elements.

SyntaxThe general syntax for using the getRecursively virtual feature is as follows:
data-source packages = Root/packagedElement[Package|name="C3"]/getRecursively[Package]
Where C3 is the name of the package. All packages under C3 will be retrieved.
data-source packages = Root/packagedElement[Package]/getRecursively[Package]
In the above data source syntax example, all the packages under root are retrieved. After
that, all the elements (packages) under those packages are retrieved, recursively. When you
are adding a new element, in this case, it will go under one of the packages which was retrieved from the root.
Note: This feature only works with elements supporting the packageElement feature.
data-source packagesC3Class = Root/mse::getRecursively[Package|name="C3"]/packagedElement[Class]In the syntax example above, first, getRecursively finds the packages under the model. The
model may have more than one C3 package. After you have all the packages then you display
classes under those packages only, not recursively.
Note that this is maybe very inefficient when the model is big, and it would be much fasterto explicitly specify the path for each existing C3 package.
data-source packagesC3Class = Root/mse::getRecursively[Package|name="C3"]/ mse::getRecursively[Class]This data source gets all packages recursively and then sorts them and shows the ones named

6768 • 13 Recursivity

C3. After that, you get all classes under these C3 packages and any of their subpackages.

Using the getRecursively Virtual Feature
The following example shows you how to use the ownedComments feature.
1. Import the MapleMBSE ecore, as usual the alias used is mse
2. Inside a synctable-schema navigate to a Package
3. In the next dimension, use /mse::getRecursively[Class] to get all the classunder the top package(Previous dim/root dim) and sub packages
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook

ExampleIn this example, the code snippet retrieves all the packages and sub packages under the
package C3This feature can be used anywhere in a QPE or data source, but not at the start of QPE ordata source.

13.1 getRecursively • 69

70 • 13 Recursivity

14 Constraints
SysML makes it hard to accessing the minimum and maximum constraint data in SysML
can be difficult because the model is forced to use LiteralString and other elements (e.g.
TimeExpression, Constraints). The main purpose of the virtual feature in this chapter is toallow the MSE file to access this data with ease and aggregate it into simple double period
notation (..). Another benefit to the use of a virtual feature for working with constraint datais that the end user has fewer inputs to provide, reducing human error.

14.1 durationConstraint
Description
To display and set duration constraints, MapleMBSE provides a virtual feature that allows
the simultaneous creation and editing of the min and max limits of the constraint using asimple double dot notation (for example, minConstraint..maxConstraint). In the case of both
minConstraint and maxConstraint representing numerical values (in decimal or scientificnotation), MapleMBSE performs a check to determine if the minConstraint value is lessthan or equal to the maxConstraint value.

SyntaxThe general syntax for using the durationConstraint virtual feature is as follows:column /mse::durationConstraint as dcValueFor user input, the durationConstraint virtual feature accepts numerical values as well as
arbitrary string values.These values are joined by double periods (..). In addition, you can
use an escape character (\) to include periods as part of the minimum and maximum constraint values.

The table below gives specific examples of both valid and invalid syntax for use of double
periods.

71

72 • 14 Constraints

User Input Minimum Constraint Maxim
Comment
Example Value
Constraint Value
Valid
2..3.52
3.5-1..3.2

-1

2.3

Valid

5.5..25.5

2

2.3 ..
2.3

2.3

2.3

Invalid. The upper bound is less than lower
bound
Valid. Numerical values are trimmed, andboth bounds are allowed to be equal

1….3

1

..3

abc..foo abc
bar

foo bar

Valid. First double dot is taken as theseparator
Valid. String values can contain spaces

1.3

Invalid. No double period present..

Valid. Empty Min/Max is allowedmin..

Valid. Empty max

min

..max

max

Valid. Empty min

escape\....dots escape.

.dots

Valid. Escaping first period
Invalid. No double period present

invalid\..input
2 . 5 .. 2 .5
2.4

2.4

Valid. The min is not a valid number
because of the space.

Using the durationConstraint Virtual Feature
The following example shows you how to use the durationConstraint feature.
1. Import the MapleMBSE ecore, as usual the alias used is mse.
2. Inside a synctable-schema navigate to a DurationConstraint, in this case/ownedRule[DurationConstraint] within an Activity.
3. Within that dimension, define a regular column using /mse::durationConstraint.
4. Complete the rest of the configuration as usual: worksheet-templates, synctable
and workbook.

Examplesynctable-schema Schema {record dim [Activity] {14.1 durationConstraint • 73

key column /name as aName}
record dim /ownedRule[DurationConstraint] {key column /name as dcName
column /mse::durationConstraint as dcValue}}74 • 14 Constraints

15 Generalization
This section contains all other virtual features that do not create elements but offer a better
alternative to access and map model information.

15.1 specificClass
Description
The specificClass virtual feature provides a simple, more direct way of creating
generalizations between a more generalized element and a more specialized element. The
specificClass virtual feature also sets the values for the specific and general elements
and then stores the generalization relationship information in the specific class.

SyntaxThe general syntax for using the specificClass virtual feature is as follows:.mse::specificClass

Using the specificClass Virtual Feature
The following example illustrates one way to use the specificClass virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a datasource which query the Blocks from the model ”../PackageElementClass|mse::metaclassName="SysML::Blocks::Block"]”
3. In the synctable schema start from the generalized block
4. For the next dimension, use the virtual feature which uses the reference decomposition
to create the generalization between the generalized block and the specific block

Examplesynctable-schema BlockpropertiesTable(blocks: BlocksTable){record dim [Class|mse::metaclassName="SysML::Blocks::Block"] {key column /name as generalClassName}
record dim .mse::specificClass[Class] @genname{reference-decomposition genname = blocks{
foreign-key column BlockName as specificClassName}75

76 • 15 Generalization}}

16 Working with sysML Diagrams
This chapter describes how to work with a sysML Diagram.

16.1 downloadDiagram
Description
Use the downloadDiagram feature to download the sysML diagram associated with yourmodel, using the MagicDraw or Cameo.
To use this feature, first install the MapleMBSE plugin (see the MapleMBSE Installation
Guide for instructions) into MagicDraw and Cameo. Start MagicDraw or Cameo and open
the Project from which you want to download the diagram in MapleMBSE. Start
MapleMBSE.

Syntaxmse::downloadDiagram

Using the clientDependencies Virtual Feature
1. Import the ecore statement e.g “import-ecore "http://maplembse.maplesoft.com/common/1.0" as mse”
2. In the Synctable schema start the dimension from the Diagram object.
3. Inside the Diagram dimension use the downloadDiagram feature “mse::downloadDiagram”

Example77

78 • 16 Working with sysML Diagrams

16.2 diagramType
Description
The diagramType virtual feature shows the type of diagram which was downloaded using
the downloadDiagram feature. It cannot be used individually. It can only be used after the
downloadDiagram virtual feature.

Syntaxmse::downloadDiagram

Using the supplierDependencies Virtual Feature
1. Import the ecore statement e.g “import-ecore "http://maplembse.maplesoft.com/common/1.0" as mse”
2. In the Synctable schema start the dimension from the Diagram object
3. Inside the Diagram dimension use the downloadDiagram feature “mse::downloadDiagram” after that use the “mse::diagramtype”

Example17 File Attachments
17.1 AttachedFile
Description
The attachedFile virtual feature supports MagicDraw file attachments, which are accessible
through comments. It downloads all the relevant file attachments, and displays hyperlinks
to temporary locations in the user interface. When the user clicks on the link, the user interface will open the file.

SyntaxThe syntax to use attachedFile is as follows:column /mse::attachedFile as fileName

Using the attachedFile Virtual Feature
The following example illustrates one way to use the attachedFile virtual feature:
1. Import the MapleMBSE ecore with an alias
2. Create a schema that has a dimension accessing an ownedComment line 5, in the column
level call the attached VF see line 6 in the example code

Examplesynctable-schema AttachedFileSchema {record dim[Package]{
key column /name as PkgName}
dim /ownedComment[Comment|mse::stereotypeNames="UML Standard
Profile::MagicDraw Profile::AttachedFile"]{column /mse::attachedFile as fileName}}7980 • 17 File Attachments

18 Element Type
This chapter describes virtual featues that can be used to find the type of model element

18.1 elementType
Description
The elementType virtual feature helps to identify the metaclass type of model element (Class, Activity, etc) that is displayed in MapleMBSE.

SyntaxThe general syntax for the elementType virtual feature is as follows:/alias::elementType
Where:• alias is the alias you assigned to the MapleMBSE ecore.
• elementType virtual feature is used to display the metaclass Type of an element.

Using the elementType Virtual Feature
1. Import the ecore statement e.g “import-ecore "http://maplembse.maplesoft.com/common/1.0" as mse”
2. In the data-source we add the elementType to the Qualifier sorting feature.

Exampledata-source elementsNew*[NamedElement||elementFilter|mse::elementType]
Where:• NamedElement can be any of Class, Activity, StateMachine, etc.
• elementFilter can be name, visibility, stereotype, etc.
• mse::elementType refers to the elementType virtual feature.
import-ecore "http://www.nomagic.com/magicdraw/UML/2.5.1.1"
import-ecore "http://maplembse.maplesoft.com/twc/1.0" as mse
data-source Root[Model]8182 • 18 Element Typedata-source elementList = Root/packagedElement[Package|name="Structure"]
synctable-schema DifferentElementTypeSchema{
dim [NamedElement]{
key column /name as differentElementName
column /mse::elementType as typeName}}
synctable differentElementTypeSchema =DifferentElementTypeSchema<elementList>
worksheet-template DifferentElements(fis : DifferentElementTypeSchema){vertical table featureTable at (5,4) = fis {key field differentElementName
key field typeName
sort-keys differentElementName}}
workbook{
worksheet DifferentElements(differentElementTypeSchema)}using, 21

Index

C
comments, 49
ownedComments, 51
description, 49
syntax, 49
using, 49
connectors, 27
connectedPropertyOrPort, 27
description, 27
syntax, 27
using, 28
otherConnectorEnd, 29
description, 29
syntax, 29
using, 29constraints, 71
durationConstraint, 73
description, 71
syntax, 71
using, 72A
activity diagrams, 43
ActivityControlFlow, 43
description, 43
syntax, 43
using, 43
ActivityObjectFlow, 45
description, 45
syntax, 45
using, 45
associations, 11
associatedProperty, 13
description, 11
syntax, 11
using, 12
directedAssociatedProperty, 15
description, 14
syntax, 14
using, 14nestedDirectedComposition, 19
description, 19
syntax, 19
using, 19
otherAssociatedEnd, 17
description, 16
syntax, 16
using, 16Ddependencies, 31
clientDependencies, 31
description, 31
syntax, 31
using, 31
supplierDependencies, 33
description, 32
syntax, 33
using, 33

Bblocks, 21
getAllProperties, 25
description, 23
example, 26
syntax, 25
using, 25
propertyDefaultValue, 22
recursivePartProperties, 21
description, 21
syntax, 21E
Element Type, 81
elementType, 81
description, 81
example, 81
using, 81
elementType syntax, 81
enumeration, 37

83

84 • Index

enumerationLabel, 39
description, 38
syntax, 38
enumerationName, 37
description, 37
syntax, 37
using, 37

example, 65
syntax, 65
using, 65
RecursiveInstanceWithSlots, 59
description, 59
syntax, 60
using, 60
slots, 62
description, 62
syntax, 62
using, 62
slotValue, 53
description, 53
syntax, 53
using, 54F
File Attachments, 79
attachedFile, 79
description, 79
syntax, 79
using, 79

G
Generalization, 75
specificClass, 75
description, 75
example, 75
syntax, 75
using, 75

I
Instance Matrices, 53
arrayName, 63
description, 63
syntax, 63
attachedFile, 61
description, 61
syntax, 61
using, 62
instanceTree, 57
description, 55
syntax, 56
using, 56
instanceWithSlots, 58
description, 58
syntax, 58
using, 58
multiplicityOfInstance, 65
description, 64

MMultiple Dependencies, 36
Creating, 36
Example, 36
Introduction, 36

Rrecursivity, 67
getRecursively, 69
description, 67
syntax, 67
using, 68S
specificClass, 75
statemachines, 47vertexTransition, 47
description, 47
syntax, 47
using, 47
stereotypes, 5featureName, 7
description, 6, 7
syntax, 7
metaclassName, 5
description, 5Index • 85

syntax, 5
using, 5stereotypeNames, 9
description, 9
syntax, 9
using, 9sysML Diagrams, 77
diagramType, 78
description, 78
example, 78
syntax, 78
using, 78
downloadDiagram, 77
description, 77
example, 77
syntax, 77
using, 77Uutil, 41
multiplicityProperty, 41
description, 41
syntax, 41
using, 41

86 • Index