Webel's "super-relational" Note pages!

A Note is a short categorised statement, claim, policy, tip, or issue tracker Throughout this site, content is often related to supporting Notes, and each Note page links back to the content pages that reference it! The Note and Snippet concepts are very closely related and they support each other.
Look for "super-relational" Note page links at the bottom of most content pages!
Note kind Note Sort ascending Spec tag UML keywords SysML keywords Keywords
CAVEAT, ISSUE, LIMITATION, TOOL Mathematica: Wolfram Player Pro 13.1: NotebookDelete[] does not work Wolfram, Mathematica, Wolfram Player Pro
ASSERTION, TIP Mathematica: Webel: You get compelling incremental value out of Mathematica even if you don't yet command all of the syntax and massive powers of the Wolfram Language! Wolfram Language, Wolfram, functional, functional programming, object-oriented, ADTs, Abstract Data Types, Mathematica, symbolic algebra
NAMING, OPTION, PATTERN, TIP Mathematica: Webel: You CAN/MAY use $ in variable names and function names - just not as the first character before a Capital - and it's extremely useful. You won't get sent to Azkaban prison if do you use a $ character! Wolfram, Mathematica, Mathematica:Entity, Wolfram Language, notation
TIP Mathematica: Webel: ADT pseudo classes: TIP: Prefer the Decorator Pattern over multiple inheritance of ADT-Method UpValues! (But not because "inheritance is evil", it isn't.) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Decorator Pattern, multiple inheritance, inheritance
POLICY Mathematica: Webel: ADT pseudo classes: There is an 'ADT' universal base class that has no supers. It "blesses" every other sub-class ADT by populating it with some common ADT-method UpValues against its signature pattern via the 'adt$def$All[]' definer. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:All, Webel:ADT, Mathematica::UpValue
EXPLANATION Mathematica: Webel: ADT pseudo classes: The term 'Abstract Data Types (ADTs)' is used informally (the ADTs do not always adhere to strict mathematical definitions of ADTs). Just please think of it here as meaning a "strong type" for Mathematica. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The expression '$$' is reserved as the primary named parameter for the defining pattern of all ADT classes that extend the universal base 'ADT' class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The ADT-Methods of an ADT-Class are created as TagSetDelayed UpValues using the 'signature' of the ADT-Class and its defining 'pattern' as 1st argument Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: The Abstract Data Types (ADTs) are stateless functional (although inheritance and overrides are supported), with no caching by default (although there is nice optional caching using CreateUUID[] and Once[]). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
CONVENTION, POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Every named concrete Abstract Data Type (ADT) class has a ONE unique "signature" (which is the pattern passed to the "definer" functions). To vary a signature, define another unique ADT class name. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional
POLICY Mathematica: Webel: ADT pseudo classes: POLICY: Definer functions MUST return the self-declared or injected 'pattern' that determines the unique "ADT-signature" of the defined ADT class. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer, Webel:ADT:signature
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: POLICY/DEFINITION: Every "hard coded" definer or defining client of a definer has a corresponding ADT ArchetypeClass. Example ("hard coded"): The definer 'my$def$MY$SmartList' has ArchetypeClass 'MY$SmartList'. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:ArchetypeClass
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: DEFINITION/CONVENTION: Functions that populate ADTs with reusable ADT-method UpValues are called 'definers' and include '$def' in the name after a Package scope indicator: Example: adt$def$ADT, my$def$MY$CleverList Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT, Webel:ADT:Definer
CONVENTION, NAMING, POLICY Mathematica: Webel: ADT pseudo classes: CONVENTION: PROVISIONAL: The infix operator for calling ADT-Methods on ADT "objects" is the CircleDot (⊙ in Notebooks). ISSUE: \[CircleDot] is NOT GOOD FOR USE IN IDEs! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT:Definer, singleton, Webel:ADT:infix, Webel:ADT:Object
CONVENTION, TIP Mathematica: Webel: A concise i:/o: notation is often used for indicating input/output cells in Mathematica notebooks in Webel's online help pages and tutorials, instead of 'In[n]:=' and 'Out[n]='. (Also learn how to hide them completely in notebooks.) Wolfram, Mathematica, Wolfram Language, Mathematica:notebook
CONVENTION, POLICY, TIP Mathematica: Webel ADT pseudo classes: A tricky POLICY & CONVENTION: Client packages MUST access the special "wrapped" primary named ADT-parameter '$$' via $ContextAliases! The recommended alias is "A`" (which stands of course for ADT). Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Class, Webel:ADT, Webel:ADT:A`, Mathematica:$ContextAliases
CAPABILITY, FEATURE, TIP, TOOL Mathematica: v13.1: There is an undocumented command MessagesNotebook[] Wolfram Language, Mathematica, coding, Mathematica::MessagesNotebook
TIP Mathematica: v12.3.1.0: How to obtain values of physical constants Mathematica, physical quantity, quantity, magnitude, units, Wolfram
ISSUE, LIMITATION Mathematica: Use of UnitConvert (or even just multiplication or division by a unit Quantity) MASSIVELY slows the calculations down! Wolfram, Mathematica, Mathematica:Compile, compilation, performance, SI unit, quantity, units
TIP Mathematica: TIPS for living with the user-contributed MTools for Object-Orientation (until a vendor-supported OO solution is eventually provided) Mathematica, Mathematica:MTools, object-oriented, Wolfram, Wolfram Workbench
CAPABILITY, FEATURE, MODELLING, STYLE, TIP, TOOL Mathematica: TIP: Wolfram Notebooks are the best testing environment I've ever used! Mathematica, Mathematica:notebook, Wolfram, Wolfram Language
Mathematica: TIP: Use And@@ to test whether all elements of a List are True Wolfram Language, Wolfram, Mathematica::And, Mathematica::Apply, logic, logic::and, Mathematica::List, Mathematica::AllTrue
FEATURE, TIP, TOOL Mathematica: TIP: Try //Dataset on just about anything and be amazed! Click on nearly anything to navigate through nearly anything in impressively interactive human-readable format. Mathematica, Wolfram, Wolfram Language, Mathematica:Dataset
TIP Mathematica: TIP: The ThermodynamicData function of Mathematica uses NIST's RefProp under the hood. Wolfram, Mathematica, thermodynamics, HVAC&R, RefProp
TIP Mathematica: TIP: Start with With, update to Module as needed. Mathematica, Mathematica::With, Mathematica::Module, Wolfram, Wolfram Language
CONVENTION, PATTERN, POLICY, TIP Mathematica: TIP: Protecting against computations breaking verbosely because of Null, None, Undefined. And about using Undefined as a return policy. Wolfram, Wolfram Language, Mathematica, Mathematica::Null, Mathematica::None, Mathematica::Undefined
CAPABILITY, FEATURE, TIP, TOOL Mathematica: TIP: Package Editor mode: Use cell division between every function in .wl library files to make them more readable (and to make it easier to apply at least some degree automated code formatting per function). Wolfram, Mathematica
FEATURE, TIP, TOOL Mathematica: TIP: OverDot: Type CTRL & and then . to enter an OverDot directly Mathematica, Wolfram, notation
FEATURE, TIP, TOOL Mathematica: TIP: OverBar: Type CTRL & and then _ to enter an OverBar directly Mathematica, Wolfram, notation
FEATURE, GOTCHA, ISSUE, TIP, TOOL Mathematica: TIP: Notebooks: Automatic Cell Grouping driving you up the wall? Try Manual Grouping and make it part of your workflow! Mathematica, Wolfram, Mathematica:notebook
CAPABILITY, FEATURE, TOOL Mathematica: TIP: LINKS: Filename chooser dialogs Wolfram, Mathematica, GUI, Mathematica::Manipulate
TIP Mathematica: TIP: How to change a value within an Association inline within a Module (like pass by reference) Mathematica, Wolfram Language, Wolfram
EXPLANATION, GOTCHA, TIP Mathematica: TIP/GOTCHA: When using a Table loop variable within a Module always declare a module variable for it or you can get very hard to track side-effects elsewhere in your project due to exposed scope. Yes, it's obvious (yet easy to miss). Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language
ISSUE, LIMITATION, MODELLING, TOOL Mathematica: The slightly less painful ultimate list of links on Object-Orientation (or the lack thereof) and a public plea to Wolfram Research Wolfram, Mathematica, object-oriented, OOP
GOTCHA, WARNING Mathematica: The output form of Mathematica follows internal rules that may not always correspond exactly to how a human might typeset it. Wolfram Language, Mathematica, Wolfram, equation
TIP Mathematica: The Entity system: useful links Mathematica, Wolfram, Mathematica:Entity
ASSERTION, TIP Mathematica: The awesome Quantity system for values with units is everything the SysMLv1.x Quantity/Unit system should have been (and hopefully SysMLv2 will be). But it comes at a high performance cost! Mathematica, Mathematica::Quantity, Wolfram, Wolfram Language, quantity, scientific unit system, SI unit, deep value
EXPLANATION, TIP Mathematica: SUPER TIP: Use CreateUUID[] to trigger recalculation against Once[] to create a flexible optionally caching function! Mathematica, Wolfram, Wolfram Language, Mathematica::CreateUUID, Mathematica::Once
POLICY Mathematica: POLICY: Webel: ADT pseudo classes: Multiple inheritance is supported via ONE (only) ADT-Class and one or more ADT-MemberInterfaces (which have no ADT-Method UpValues) Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface, Webel:ADT:Class, inheritance, multiple inheritance
POLICY Mathematica: POLICY: Webel: ADT pseudo classes that define membership of ADT-classes in a domain package have ADT-signature MemberInterface[$$:None] and MUST NOT populate ADT-method UpValues in their definers. Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:MemberInterface
QUESTION Mathematica: Objectica 3rd-party commercial package for OO in Mathematica. Earth calling Objectica, do you still exist? Mathematica, Wolfram, object-oriented
ISSUE, TIP, WORKAROUND Mathematica: Notebooks: Automatic Cell Grouping mode can be a "royal pain", turn it off by setting Cell > Grouping > Manual Grouping Wolfram, Mathematica, Mathematica::Cell, Mathematica:notebook
TIP, TOOL Mathematica: Nasser M. Abbasi's cheat sheet Wolfram, Mathematica
CONVENTION, NAMING Mathematica: NAMING CONVENTION: Webel: ADT pseudo classes: An UpValue that can be invoked on an ADT accepting its unique 'signature' pattern as (at least) 1st argument is called an "ADT-method"'. They are NOT methods in the general object-oriented sense! Mathematica, ADTs, Wolfram, Wolfram Language, Abstract Data Types, WebelADT, object-oriented, OO, OOP, functional, functional programming, stateless functional, Webel:ADT:Method, Webel:ADT
ANTI-PATTERN, GOTCHA, ISSUE, LIMITATION, WARNING Mathematica: MTools: Argument pattern matching does not respect inheritance (undermines design-by-contract and heaps of Design Patterns) Wolfram, Mathematica, Mathematica:MTools, inheritance, object-oriented
TIP Mathematica: LINKS: Manipulating Strings and using RegularExpression Wolfram, Mathematica, String, regex, regular expression
ISSUE Mathematica: ISSUE with all Entity operations on MMAv13.0.0.0 vs macOS Monterey 12.3 or 12.4 ["solved" by upgrade to MMA 13.1.0.0] Mathematica, Wolfram, macOS, Mac, macOS Monterey
TIP Mathematica: HOWTO: Strip an option from an OptionsPattern[] sequence before passing down (propagating) to a function with fewer options Wolfram, Mathematica
CAPABILITY, TIP Mathematica: HOWTO: Add every element of one list to the end of another list Mathematica, Mathematica::Join, Mathematica::List, Wolfram, Mathematica::MapThread
TIP Mathematica: HOWTO Manage test data for functions using rules across multiple functions (and about the Webel '$0' variable suffix convention for substitution targets). Wolfram, Mathematica
TIP Mathematica: HOWTO Find the value of a symbol in all contexts Wolfram, Wolfram Language, Mathematica
DISPLAY, FEATURE, TIP, TOOL Mathematica: HOWTO Create collapsible control groups in Manipulate GUIs Wolfram, Mathematica, Mathematica::Manipulate
Mathematica: HOWTO Convert a list into a Sequence of arguments to a function (where each of the arguments to the function corresponds to a list item) Wolfram, Mathematica
NAMING, PATTERN, TIP Mathematica: HOWTO Autoload the simplest possible .m or .wl Package file with a few custom functions Wolfram, Mathematica
GOTCHA, LIMITATION, TIP Mathematica: How mimic pattern matching of arguments for pseudo "Boolean" (including providing a default)? Wolfram, Mathematica, Wolfram Language
TIP Mathematica: Having trouble clearing a variable with complex formatting? Try =. Wolfram, Mathematica
EXPLANATION, GOTCHA, ISSUE Mathematica: GOTCHA: The Problems Analysis review system of Mathematica Plugin for IntelliJ IDEA reports a declared Module variable used as a Table loop variable as an "Used local variable". DO NOT SIMPLY DELETE IT! Mathematica, Wolfram, Mathematica::Module, Mathematica::Table, Wolfram Language, Mathematica:IntelliJ-IDEA-Plugin
GOTCHA, TIP Mathematica: GOTCHA: The Module/With system (especially under rewriting when nested) can leave variables with a trailing '$' suffix, which may cause name clashes because the variables (Expressions) are available later outside the scope of the Module/With! Mathematica, Mathematica::With, Mathematica::Module, Mathematica::Block
COMPLICATION, DISPLAY, GOTCHA, ISSUE, TIP, TOOL Mathematica: GOTCHA: Print[] from Manipulate always goes to the Messages console notebook Wolfram Language, Mathematica, Mathematica::Print, Mathematica::Manipulate
GOTCHA, TIP, WARNING Mathematica: GOTCHA: Package usages (Needs) are not transitive Wolfram, Wolfram Language, Mathematica
GOTCHA, TIP Mathematica: GOTCHA: Null is tricky! Wolfram, Wolfram Language, Mathematica
GOTCHA, WARNING Mathematica: GOTCHA: MMA distinguishes between Kelvins and KelvinsDifference Mathematica, quantity, units, physical quantity, temperature, Kelvins, celsius, Wolfram
GOTCHA, ISSUE, LIMITATION, MODELLING, WARNING, WISHLIST Mathematica: GOTCHA: EntityFunction can only return a scalar (although its the 3rd decade of the 21st century) Wolfram, Mathematica, object-oriented, OOP
ISSUE, LIMITATION Mathematica: CoolProp wrapper binaries don't seem to be maintained past CoolProp 5.1.1 (and the PhaseSI and 2-args Props1SI functions do not work) Mathematica, Wolfram
ISSUE, LIMITATION Mathematica: Compile won't work with a Quantity with units Wolfram, Mathematica, Mathematica:Compile, compilation, performance, quantity, SI unit, units
TIP, TOOL Mathematica: 'Through' is your more functional friend. Wolfram Language, Mathematica, coding, functional, functional programming, Mathematica::Through, Don't Repeat Yourself, DRY
GOTCHA, TOOL, WARNING Mathematica + Magic Model Analyst (Cameo Simulation Toolkit) for SysML Parametrics: GOTCHA: You must use a regular '=' on the SysML side, not the Mathematica '==' (or it will be intepreted as a constraint condition to test, not an equation to solve). Constraint ConstraintBlock, SysML Parametric Diagram Wolfram, JLink, Mathematica, MagicDraw SysML, SysML, MD SysML, SysML Parametrics, mathematics, CATIA Magic, Magic Model Analyst [Cameo Simulation Toolkit], CATIA Magic:v2021x, CATIA Magic:v2021xR1, JDK, Java Development Kit, Java
FEATURE, TOOL 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. Class, BehavioredClassifier, Interface, required Interface, provided Interface, Usage, InterfaceRealization, BehavioredClassifier::interfaceRealization, ball-and-socket MagicDraw UML
DISPLAY, MODELLING, TOOL, WARNING MagicDraw/SysML vs SysPhS-1.1: Can't reproduce the "shortcut" property path representation of some properties nested within Ports as shortcut symbols fully inside the diagram frame. (Might be a specification diagram style issue.) SysML-1.6, SysML-1.7, SysPhS-1.1 Port, Property DirectedRelationshipPropertyPath, ElementPropertyPath::propertyPath, ElementPropertyPath, SysML Internal Block Diagram, multi-level property path, SysML Parametric Diagram, "shortcut" MagicDraw SysML, Cameo Systems Modeler
ISSUE MagicDraw/SysML 19SP3: does not support ObjectNode notation shown in SysML-1.6 in Figure 11-6 and Figure 11-7 because does not support ObjectNode notation properly MagicDraw SysML, Cameo Systems Modeler
FEATURE, TIP, TOOL 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. Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML, drag-n-drop
FEATURE, TIP, TOOL 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' Class, Property, Property::redefinedProperty, Property::subsettedProperty Block MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler
CAPABILITY, FEATURE, TIP, TOOL 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 DirectedRelationship, DirectedRelationship::/source, DirectedRelationship::/target Cameo Systems Modeler, MagicDraw SysML, MagicDraw UML
FEATURE, TIP, TOOL MagicDraw/Cameo: You can import excel spreadsheets with data into instance tables easily! instance, InstanceSpecification, Slot, InstanceSpecification::slot MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
CAPABILITY, FEATURE, TIP, TOOL MagicDraw/Cameo: You can edit context-specific values (initial values) directly in an IBD by using the context menu item Tools > Define Context Specific Initial Values on appropriate blocks; once activated you can edit the values directly like Slot values context-specific values, initial values, initialValues compartment, SysML Internal Block Diagram menu item
TIP MagicDraw/Cameo: You can easily find all elements a Stereotype has been applied to via the Stereotype's specification dialog. Stereotype MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
CAPABILITY, TIP, TOOL 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 UseCase, UseCase::subject, MD:Customization, Stereotype Block, SysML Use Case Diagram MagicDraw SysML, Cameo Systems Modeler
FEATURE, TIP, TOOL 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). Diagram, Element, symbol, Stereotype MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML, drag-n-drop
CAPABILITY, FEATURE, TIP, TOOL 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 SysML-1.6, SysML-1.7, UML-2.5.1 Port, Property, Association, Association::memberEnd, Association::ownedEnd, Class Block, block property, "standard" Port MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, Unified Modeling Language, UML, SysML, Systems Modeling Language, drag-n-drop
CAPABILITY, FEATURE, TIP, TOOL 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 SysML-1.6, SysML-1.7, UML-2.5.1 Property, Class, Class Diagram, attributes compartment, AggregationKind, AggregationKind::composite, ActivityPartition, receptions compartment, Signal, symbol Block, block property, SysML Block Definition Diagram, part property, parts compartment, values compartment, ValueType, value property MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler, Unified Modeling Language, UML, SysML, Systems Modeling Language, drag-n-drop
DISPLAY, FEATURE, SETTINGS, STYLE, TIP, TOOL 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). Diagram, Element, symbol, Stereotype, icon MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML
DISPLAY, FEATURE, SETTINGS, STYLE, TIP, TOOL 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. Diagram, Element, symbol, Stereotype, tagged value MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML
FEATURE, TIP, TOOL 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 Diagram, Element, symbol, Stereotype MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML
FEATURE, TIP, TOOL 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. Action Allocate, part property, MD:PartProperty functional allocation, Cameo Systems Modeler, MagicDraw SysML
FEATURE, TIP, TOOL 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. Diagram, Element, symbol MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML, hyperlink, drag-n-drop
DISPLAY, FEATURE, SETTINGS, TOOL MagicDraw/Cameo: You and can choose which Features, element properties, or tagged values of Stereotypes to show on most symbol compartment types Diagram, Element, symbol, compartment, element property, tagged value MagicDraw SysML, Cameo Systems Modeler, MagicDraw UML
FEATURE, TIP, TOOL 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. instance, InstanceSpecification MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
ISSUE, NAMING, TOOL MagicDraw/Cameo: v19SP3: Property created by dragging onto a Class or Block a symbol of a Classifier named with a single letter capital name 'N' has a poor name 'N:N' SysML-1.6, SysML-1.7, UML-2.5.1 Property, NamedElement::name, Classifier, Class Block MagicDraw SysML, Cameo Systems Modeler, Unified Modeling Language, Systems Modeling Language, MagicDraw UML, MD SysML, UML
CAVEAT, DISPLAY, TOOL, WARNING MagicDraw/Cameo: Using the display option to show labels inside Port rectangle symbols or to use SysML compartments on Port symbols hides any flow direction indicators. Port FlowProperty Cameo Systems Modeler, MagicDraw SysML
ISSUE, TOOL MagicDraw/Cameo: Uses the lowerCase keyword «valueType», the SysML spec has «ValueType» in some sample figures SysML-1.6 «keyword», Stereotype ValueType
CAPABILITY, TIP, TOOL MagicDraw/Cameo: Use a Customization to set the «keyword» on a custom Stereotype. Make sure to save, close, then re-open the project afterwards! Stereotype, «keyword», MD:Customization MagicDraw SysML, Cameo Systems Modeler
MODELLING, STYLE, TIP MagicDraw/Cameo: UML/SysML: TIP: Activity Diagrams: Learn how to use the Refactor > Extract feature to divide-and-conquer and identify cleaner flow and logic. Get control of those crossed wires! SysML-1.6, SysML-1.7, UML-2.5.1 Activity Diagram, Activity, Pin, Port SysML Activity Diagram, SysML Internal Block Diagram MagicDraw, Cameo Systems Modeler, UML, SysML, MagicDraw SysML, CATIA Magic, Systems Modeling Language, Unified Modeling Language
GOTCHA, TIP, WARNING MagicDraw/Cameo: UML/SysML: DO NOT use '$' character in Stereotype names (corrupts MDZIP file) SysML-1.6, SysML-1.7 CATIA Magic, MagicDraw, Cameo Systems Modeler
MagicDraw/Cameo: to use SysML-style control flow notation with a dashed line and stick arrowhead set the Diagram Style display option SysML Control Flow Style to true (enabled) notation, ControlFlow SysML control flow notation, SysML Activity Diagram diagram style
DISPLAY, FEATURE, TIP, TOOL MagicDraw/Cameo: To show the type of initialValues (context-specific values) use the display option Show Slot Type compartment, Slot context-specific values, initial values, initialValues compartment MagicDraw SysML, Cameo Systems Modeler
CAPABILITY, DISPLAY, FEATURE, OPTION, TIP, TOOL 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! SysML-1.6 Diagram, element property, callout, Note MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler
TIP, TOOL 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 Expose, View, Viewpoint MagicDraw SysML, Cameo Systems Modeler
DISPLAY, FEATURE, TOOL MagicDraw/Cameo: TIP: tagged values with no specified type or String types optionally support HTML. tagged value Cameo Systems Modeler, MagicDraw UML, MagicDraw SysML
ISSUE, NAMING MagicDraw/Cameo: There are lots of spelling mistakes in the ISO-80000 ModelLibrary ModelLibrary QuantityKind, Unit, ValueType MagicDraw SysML, MagicDraw UML, Cameo Systems Modeler, ISO-80000
DISPLAY, ISSUE, TOOL MagicDraw/Cameo: The tagged values HTML editor can't handle overlines or all macrons. MagicDraw UML, MagicDraw SysML, Cameo Systems Modeler