MagicDraw and Cameo features and tips Note pages

This site contains a massive number of pages with tips and info about MagicDraw® UML, the MagicDraw SysML Plugin, Magic Cyber-Systems Engineer ® (Cameo Systems Modeler®), and the Magic Model Analyst® (Cameo Simulation Toolkit®). A lot of the best info is captured in Note pages that are linked to relevant content pages (especially tutorial slide trail pages) demonstrating features, tips, and capabilities. Enjoy!
You can also search the MagicDraw and Cameo ISSUES pages or search for content by UML/SysML keyword or SysPhS keyword.
Learn how to best use the MagicDraw and Cameo tools for Systems Modeling Language (SysML®) from the experts by attending our IT Training course:
SysMLv1.x: MagicDraw/Cameo: Contextual relationships feature (links)
Webel + Mathematica + MTools + SysML
MagicDraw/Cameo/CATIA Magic: Getting your software tools ready for the Webel IT training courses in SysML/MBSE
HOWTO access custom (user-defined) Mathematica functions using Mathematica v12.3.1.0 as an external maths engine for SysML Parametrics (ConstraintBlocks) in Magic Model Analyst (Cameo Simulation Toolkit) version 2021x or 2021xR1
HOWTO use Mathematica v12.3.1.0 as an external maths engine for SysML Parametrics (ConstraintBlocks) in Magic Model Analyst (Cameo Simulation Toolkit) version 2021x or 2021xR1
Cameo Simulation Toolkit: You can assign the results of simulations calculations on instances to the default values of properties of the Classes/Blocks that type the instance.
TIP/GOTCHA: MagicDraw SysML/Cameo: In Parametric Diagrams create BindingConnectors involving part properties by selecting the constraint parameter symbol first and use the smart manipulator (otherwise you might accidentally create a regular Connector)
UML/SysML: MagicDraw/Cameo: 19SP3: Instance Table Diagram sometimes does not display the values for nested value properties
UML/SysML: MagicDraw/Cameo: Instance Table Diagrams are one of the most powerful features of MagicDraw/Cameo! Learn to use them to progressively test, debug, and evolve your models as you work!
UML/SysML: MagicDraw/Cameo 19SP3: GOTCHA/TIP: An Instance Table will not display a row for instances typed by an abstract Class/Block (although one can show such instances as InstanceSpecification symbols on a Class Diagram or Block Definition Diagram)
UML/SysML: Cameo Simulation Toolkit 19SP3: GOTCHA/TIP: ConstraintBlock constraints: Not every available constraint language can handle Enumeration literals (if in doubt choose 'English')
Webel electronics modelling recipe for SysML: Diagrams can be made less verbose by using stereotype icon shape display mode, by not showing names and types on obvious Ports, by hiding context-specific values, and by omitting {net} tagged values.
MagicDraw/Cameo: Rule: Internal Block Diagram and Block structure compartment: only one symbol for a given Property may be shown.
MagicDraw/Cameo: Display option: You can choose whether to show Domain Specific Language (DSL) stereotypes: 'None', 'All', 'Only Last'
Webel Parsing Analysis: If you have a unique URL for a domain source «document» you MAY additionally set it as an external hyperlink in the MagicDraw/Cameo tool (as well as setting it as the unique 'url' tagged value that acts as the '/uri').
MagicDraw/Cameo v19SP3: UML/SysML: HOWTO Set an OpaqueExpression on a Slot that seems to be stuck on a numerical value.
MagicDraw/Cameo: Modelica export: Need environment option to disable generation of layout annotations (not just on individual export dialog)
Cameo Simulation Toolkit: Before you run a simulation consider emabling Auto Open Diagrams under Environment Options -> Simulation. Alternatively, consider using split horizontal or vertical window groups (if there are only a few relevant diagrams).
MagicDraw SysML/Cameo: If you have a SINGLE Allocate from an Activity to a Block it will set that Block to be the Behavior::/context for that Activity.
MagicDraw SysML/Cameo has a nice feature 'Tools > Delegate Port(s)' accessible from the context menu for splitting Connectors that cross block boundaries into multiple Connectors with "exporting" Ports.
Progressively "exporting" internal Ports of usages of Blocks to the boundary of their using Block may seem like a bit of extra work, but it means you can progressively develop with clean black box views without the Connectors crossing Block boundaries.
MagicDraw/Cameo: SysML Parametrics: To colour instance table cells to indicate broken constraints you need to create at least one Simulation Configuration Diagram, which loads a validation profile with colour coding rules.
GOTCHA: MagicDraw SysML/Cameo 19SP3: Export to Modelica: The name of a redefining Property must be exactly the same as the Property it redefines or it will not export properly!
MagicDraw/Cameo: If you drag a Behavior from the model browser onto the SYMBOL of a State (that does not already own the Behavior) and set it as an 'entry', 'doActivity', or 'exit' Behavior a "wrapper" Behavior owned by the State will be created.
MagicDraw SysML/Cameo 19SP3: GOTCHA: If you drag a Behavior from the model browser onto the 'entry', 'doActivity', or 'exit' field in a specification dialog of a State it WILL BECOME OWNED by the State (which "steals ownership")!
MagicDraw/Cameo: Display options: On an 'entry', 'doActivity', or 'exit' Behavior of a State you may choose to display the specification code of an OpaqueBehavior or just its name.
MagicDraw/Cameo: HOWTO: Create a redefining value property with a default value using drag-n-drop
MagicDraw/Cameo: On dragging a Property onto another Property set it as redefining, the multiplicity of the redefining Property is set to [0..*] if the redefined (dragged) Property only has <UNSPECIFED> Multiplicity
SysML: When using Property::defaultValue and Property::redefinedValue to carry a "shadow hierarchy" of redefinitions across an entire system hierarchy, considering using a user-defined keyword such as «configuration» or «scenario» on each redefining Block
UML/SysML: Navigation: Try to offer a way out of a diagram (usually up a hierarchy, but possibly across) using a navigable symbol (linked to a diagram) and/or a diagram symbol. Avoid "cul-de-sacs"!
MagicDraw SysML/Cameo: You can customise the generic query table diagram kind to check that the context Blocks of your Parametric Diagrams only contain BindingConnectors (not Connectors)
MagicDraw/Cameo: You can drag a Class symbol onto a Class symbol (in a Class Diagram) or a Block symbol or ValueType symbol onto or Block symbol (in a Block Definition Diagram) to create a new part property or value property
MagicDraw/Cameo: You can drag out a Property (or Port) from a Class or Block symbol to create an Association with the Property (or Port) as one end
MDSysML/Cameo 19SP3: Showing stereotype keywords on FlowProperty rows is UNSUPPORTED
SysPhS: MagicDraw/Cameo: In the sysphs_profile the properties for PhSVariable have multiplicity [1], so the defaults always appear explicitly (but may be overridden): isContinuous: Boolean = true, isConserved: Boolean = false, changeCycle: Real = 0
GOTCHA: MD SysML/Cameo 19SP3 vs SysPhS-1.1: Export to Modelica does not see a 'doActivity' on a State (does not write it to a Modelica algorithm), you MUST use an 'entry'!
GOTCHA: MagicDraw SysML/Cameo 19SP3: Export to Modelica: 'entry', 'doActivity', or 'exit' Behaviors of a State must be directly owned (not just "wrapped") or they won't be seen on export!
MagicDraw SysML/Cameo: SysPhS: Export to Modelica: It does not seem to matter whether you give the language of Constraints as 'Modelica' or 'sysphs' (although SysPhS specifies a restricted SysPhS expression grammar)
MagicDraw SysML/Cameo: GOTCHA: Export to Modelica only includes owned Constraints (not just applied Constraints) under the 'equation' export
MagicDraw SysML/Cameo: GOTCHA: A Constraint created and applied to a ConstraintBlock via the sidebar menu is NOT owned by the ConstraintBlock!
MagicDraw SysML/Cameo: For export of more complex physical interaction and flow cases to Modelica or Simulink/Simscape/Stateflow load the SysPhS ModelLibrary using SysPhSLibrary.mdzip as a shared project.
MagicDraw SysML/Cameo: You do not always need to load the entire SysPhS ModelLibrary for simpler black box exports to Modelica or Simulink/Simscape/Stateflow (sometimes the sysphs_profile within the MD Customization for SysML is enough)
Not every task in Activity Diagrams is well-suited to graphical modelling; consider using Action Language Helper (ALH) or Action Language for Foundational UML (Alf)
Cameo Simulation Toolkit matches the Parameters of an effect Behavior and a trigger Operation on a Transition under the hood.
Cameo Simulation Toolkit: GOTCHA: In the Variable pane reference properties are hidden by default (show them using the Options pulldown menu)
Cameo: You can create a Simulation Configuration element in a Simulation Configuration Diagram (and you may then copy it to a BDD or Package Diagram if desired).
MagicDraw/Cameo: You can import excel spreadsheets with data into instance tables easily!
MDSysML/Cameo: Unless a custom ValueType is otherwise specified through specialisation it is behaves like a Real for the purposes of data entry for value properties typed by that ValueType
MagicDraw/Cameo: A structured ValueType can have value properties (each typed by a ValueType), but they list in an 'attributes' compartment (not a 'values' compartment)
MagicDraw/Cameo supports embedding images in diagrams
Webel Parsing Analysis: MagicDraw/Cameo: In parsing diagrams use the element compartment properties to only display the features relevant to the context of a particular snippet's text extract.
GOTCHA: Cameo: If you run a parametrics calculation from an instance symbol in a diagram it will just show computed values in the simulation window; if you run from an Instance Table diagram it will populate the instance Slots with the computed values.
MagicDraw/Cameo: TIP: tagged values with no specified type or String types optionally support HTML.
MagicDraw/Cameo: AVOID the "default" SysML Item Flow Creation Mode 'Between Part Types' completely. Use 'Direct' mode, change it as soon as you start any SysML project under Options → Project → General → SysML.
MagicDraw/Cameo: On EVERY project of ANY kind set the Environment Perspective to Full-Featured and check the Expert box, even if you are a "novice".
Cameo/MagicDraw: The Classifier specification setting 'isAbstract' is (for reasons that beggar belief or engineering reason) not by default visible in the Element specification dialog. Enable expertise level 'All' (and for always everwhere).
MagicDraw/Cameo: Set EVERY element properties and symbol properties filter to 'All' (yes, not just 'Expert', to 'All', even if you are a "novice" on your first project) in EVERY dialog and every project option setting. Use the dialog search filters!
MagicDraw/Cameo: HOWTO turn off verbose context information in SysML-style diagram frames
MagicDraw/Cameo: You can control how or whether applied Sterotypes are displayed on most Element symbols using the 'Show Stereotypes' display option (and in some cases this affects how the entire symbol is displayed).
MagicDraw/Cameo: You can assign values to 'tagged values' of Stereotypes via the Tags section in the specification dialog. Make sure you have one of the 'On Shape' or 'In Compartment' Show Tagged Values display options enabled.
MagicDraw/Cameo: You can assign or un-assign one or more Stereotypes to one or more selected Elements at once using the 'Stereotype' context menu item
MagicDraw/Cameo: You can drag-n-drop most applicable Stereotype types from the model browser onto an Element's symbol in a Diagram to apply it to that Element (does not work in all cases).
MagicDraw/Cameo: You and can drag-n-drop the icon for most Diagram types from the model browser onto a symbol in a Diagram to make it the default hyperlink for that Element; clicking on that Element symbol will then open up that Diagram.
MagicDraw/Cameo: You and can choose which Features, element properties, or tagged values of Stereotypes to show on most symbol compartment types
Not every task in Activity Diagrams is well-suited to graphical modelling and LoopNode and ConditionalNode are notoriously fiddly to setup; consider using Action Language Helper (ALH) or Action Language for Foundational UML (Alf)
MagicDraw: Has an additional tool-specific notation and feature sometimes called "ball-and-socket dependency wiring" for use with provided and required Interfaces in Class Diagrams and some other definition-level diagrams.
MagicDraw/Cameo: The context menu item 'Tools > Define Context-Specific Value' will only ever be available in an Internal Block Diagram on a part property symbol typed by a Block that has a value property!
MagicDraw/Cameo: The context menu item 'Tools > Define Context-Specific Value' will only be available UNTIL you have assigned one! Thereafter it does not appear anymore because the tool will have already created a tree of instances to carry the values.
MagicDraw/Cameo: For context-specific values you do not have to deal with fiddly instances, you can edit the values directly in the 'initialValues' compartment! Enable 'Tools > Define Context Specific Initial Value' on a part whose Block has a value.
MagicDraw/Cameo: When you create an InstanceSpecification in a diagram it will a Select Classifier dialog. It is often faster to Cancel that and then just drag a Classifier onto the instance symbol from the diagram or model tree.
MagicDraw/Cameo: In a BDD the diagram sidebar menu item for Enumeration is a UML Enumeration with ValueType applied (so properties typed by it will list as value properties in the 'values' compartment on a Block).
MagicDraw/Cameo has many tool-specific Stereotype icons, most of which can be hidden in most diagrams using Stereotype and icon display options.
MagicDraw/Cameo: If you want to show a Property or Port listed both in its corresponding compartment on a Class or Block symbol and as the end of an Association in the same diagram, set the display option Show Association Ends As Attributes/Ports to 'all'
MagicDraw/Cameo: You can set a Property as redefined/subsetted by another in a Class Diagram or BDD by dragging its label from an Association end onto the label of another Property on an Association end then choosing 'Set As Redefined/Subsetted Property'
MagicDraw/Cameo: If you make a copy of the SYMBOL of an Element in a Diagram you have only copied the SYMBOL, it represents the same Element! If you make a copy of an Element in the model browser you have indeed made a unique new (distinct) Element!
MagicDraw/Cameo support for the SysML Parametric Diagram and ConstraintBlocks for equations and mathematics is excellent, and it integrates with powerful maths engines such as Mathematica. It CAN be used on industrial strength real-world projects.
MagicDraw/Cameo: You can set many fields in an Element's specification dialog just by dragging compatible elements from the model browser onto the value area of the field.
MagicDraw/Cameo: supports HTML hyperlinks directly on model elements, and they are launchable from model element symbols in diagrams.
MagicDraw/Cameo: supports HTML (including hyperlinks) in String based tagged value (Stereotype property) fields. Just activate HTML mode during tagged value editing.
MagicDraw/Cameo: Many table cells are interactive! You can, for example, edit the 'name' of elements. Most columns are also sortable. And you can navigate from element cells to elements in the model browser via context menu items.
MagicDraw/Cameo: The default swimlanes in SysML Activity Diagrams are AllocateActivityPartition swimlanes with the «allocate» keyword applied.
MagicDraw/Cameo: In SysML Activity Diagrams you can only set the allocation mode in to 'usage' or 'definition' for an entire AllocateActivityPartition group at once, not for individual AllocateActivityPartition columns or rows.
MagicDraw/Cameo: You can allocate an Action to any NamedElement in the model via its specification box under the Allocations section by dragging and dropping an element (such as a part Property) from the model browser onto the Allocate To field.
MagicDraw/Cameo: Use a Customization to set the «keyword» on a custom Stereotype. Make sure to save, close, then re-open the project afterwards!
MagicDraw/Cameo: You can easily create your own extensions of Block to act as subjects of UseCases. The tool knows how to handle the rectangular ‘subject’ notation on Use Case Diagrams
MagicDraw/Cameo: Learn how to effectively use and customise the powerful table, matrix, and relation map diagrams and how to create custom queries, implied relations, and custom properties. It will open up a whole new world of enjoyable power modelling!
MagicDraw/Cameo: The default 'Implied Satisfy' relation will claim a Requirement is satisfied by any direct composite aggregation parent Block or composite aggregation ancestor Block of a part property
MagicDraw/Cameo: In a Dependency Matrix the mode 'Show Element = All' can lead to very large matrices (but it enables you to interactively create relationships for elements that don't yet have any).
MagicDraw/Cameo does not explictly support tracking of satisfaction and verification of composite/compound requirements, but the "implied relations" facility can help.
MagicDraw/Cameo: A Requirement may appear on many kinds of such as a Block Definition Diagram or Package Diagram, not just a Requirement Diagram
Magicdraw/Cameo has a powerful "implied relation" facility for use in query tables, dependency matrices, and as element properties
MagicDraw/Cameo: If a particular symbol for a tool does not support compartments for the requirements relationships 'refines', 'satisfies', 'tracedFrom' and 'verifies' use a callout into a Note instead
MagicDraw/Cameo: HOWTO get back an InformationFlow or ItemFlow when it vanishes from a redrawn Connector
MagicDraw/Cameo: You can easily find all elements a Stereotype has been applied to via the Stereotype's specification dialog.
MagicDraw/Cameo: To callout the element properties of Diagram's context Element into a Note in that Diagram use the context menu item Represent Diagram Context on the Note!
MagicDraw/Cameo: For the "rake" symbol to show on a CallBehaviorAction typed by a Behavior you must have the Show Rake Icon display option on AND the Behavior must have a Diagram (such as an Activity Diagram)
MagicDraw/Cameo: Supports embedding of one or more Diagrams in another via the Diagram Overview feature. Awesome!
Webel recommends (usually) display the header of a Package, Model, ModelLibrary, or Profile in the 'tab' (rather than 'top')
MagicDraw/Cameo: To show the type of initialValues (context-specific values) use the display option Show Slot Type
MagicDraw/Cameo: The display option Apply SysML Callout Style shows elements with their Metaclass or Stereotype keywords and no vendor-specific icons
MagicDraw/Cameo: HOWTO redisplay the name and type of a SysML ItemFlow on a Connector if it vanishes (such as when the Connector is redrawn)
MagicDraw/Cameo 19SP3: if Continuous or Discrete are applied to the Parameter of an ActivityParameterNode the keywords «continuous» or «discrete» can be optionally displayed on the ActivityParameterNode symbol
Prefer the Name Display Mode 'both' on CallBehaviorAction symbols (rather than 'Show Action Name', 'Show Behavior Name', or 'Show Both or Behavior Name')
MagicDraw/Cameo: Consider showing the constraint parameter name and type label inside the small rectangular parameter symbol on SysML Parametric Diagrams!
MagicDraw/Cameo 19SP3: Does not seem to directly support compartment for decomposition of Views as properties of Views (but one can create properties in an IBD and they will show in the 'attributes compartment')
MagicDraw/Cameo: Offers a customised Views and Viewpoints Diagram type with dedicated menus and some Viewpoint types.
MagicDraw/Cameo: To access the Expose relationship use a View and Viewpoints Diagram (non-normative) or create a Dependency in a Package Diagram then use: Refactor > Convert To > Expose
MagicDraw/Cameo: you can make relationships between elements that are not visible in one diagram using the Relations section of the specification dialog for an element
MagicDraw/Cameo: Consider showing the Port name and type label inside the Port symbol! CAVEAT: This loses the direction indicators on Ports typed by Blocks with flow properties (but is fine if ItemFlows show the direction, or for "contract ports").
The MagicDraw/Cameo feature "Enable Parts Compartments" really means "Enable SysML Compartments"
MagicDraw/Cameo: the (not so well named) "Enable Parts Compartment" feature on Ports is highly recommended and can make diagrams much easier to read.
In MagicDraw/Cameo an assigned stereotype of a Classifier that types an instance-like element (such as a part Property) "shines through" unless it has an instance-level stereotype assigned. This is sometimes called a "secondary stereotype".
In MagicDraw/Cameo if the Type of a Property has a Composite Structure Diagram or Internal Block Diagram defined it will act as the default hyperlink target for the Property
In MagicDraw/Cameo one can just drag the IBD or BDD of a Block from the model browser onto parts that are typed by that Block to make them the default hyperlink target for that part (so one can just "open the parts up" recursively to navigate the system).
Nobody said that UML or SysML modelling is only about diagrams!
Magicdraw/Cameo has powerful relationship maps!
Magicdraw/Cameo has powerful query tables!
Magicdraw/Cameo has powerful relationship Dependency Matrix diagrams, and in many cases one can assign or remove relationships directly in the cells of the matrix just by clicking!
SysML: MagicDraw/Cameo can optionally indicate Requirement IDs in tables
MagicDraw/Cameo query tables use a single row (with a group of elements) to represent multiple targets/hits from a relationship, rather than one row per hit.
MagicDraw/Cameo derived relationships and metachain navigation are very powerful and worth exploring
In MagicDraw/Cameo one can display many element properties (and metamodel properties) directly in compartments on most element symbols
In MagicDraw/Cameo one can "call-out" many element properties (and metamodel properties) into a Note using the Edit Compartments context menu item
In MagicDraw/Cameo the name and any stereotype keywords of a Classifier subject of a UseCase may be shown in the top-middle (not just top-left)
In the Webel recipe for SysML, DO use a "standard" Port until you have a truly compelling reason to commit to a FullPort or ProxyPort
HOWTO get at and display "standard" Ports that have been unnecessarily hidden and suppressed in MD SysML 19SP3 and Cameo 19SP3
HOWTO easily "hack" the SysML-1.6 ~InterfaceBlock conjugation and «~interfaceBlock» keywords in MagicDraw/Cameo (until it is supported)
Cameo Simulation Toolkit 19SP3 SUPPORTS (at least partially) State Chart XML (SCXML) the State Machine Notation for Control Abstraction
MagicDraw, Cameo Systems Modeler, and Cameo Simulation Toolkit use the name 'English' for a "default" vendor-specific action scripting language
Cameo Simulation Toolkit 19SP3 DOES NOT support ValuePin
Cameo Simulation Toolkit 19SP3 SUPPORTS StructuredClassifier and Connector
Cameo Simulation Toolkit 19SP3 SUPPORTS Port and EncapsulatedClassifier
Cameo Simulation Toolkit 19SP3 SUPPORTS UseCase
Cameo Simulation Toolkit 19SP3 SUPPORTS StateMachine
The vendor-specific Action Language Helper (ALH) API can be accessed from all of the various action scripting languages available in MagicDraw, Cameo Systems Modeler, and Cameo Simulation Toolkit
HOWTO set a ValueSpecificationAction to use the * LiteralUnlimitedNatural to drive an 'insertAt' InputPin on an AddStructuralFeatureValueAction in Cameo Simulation Toolkit and Cameo Systems Modeler
Cameo Simulation Toolkit 19SP3 SUPPORTS TimeEvent
Cameo Simulation Toolkit 19SP3 SUPPORTS ChangeEvent
Cameo Simulation Toolkit handles OpaqueExpression and OpaqueBehavior including these action scripting languages: English (built-in), Alf (via plugin), BeanShell, JavaScript, JavaScript Rhino, Groovy, ...