The SysON 2025.4.0 release brings major improvements: user library management, enhanced graphical capabilities with support for new object types, better textual import and export and many other updates - all while staying aligned with SysMLv2 Beta 2.4.
- Libraries Management: Reuse Made Simple
- Many UX Improvements
- Better Textual Import
- Improved Export to Text
Libraries Management: Reuse Made Simple
SysON reaches a significant milestone in system reuse with an effective and easy-to-use approach for managing shareable models through versioned libraries.
You can now publish and reuse libraries across projects,either by reference or by copy helping you accelerate your modeling efforts and maintain consistency.
Two new commands available in the Command Palette (top right corner of SysON) make this possible:
- “
Publish SysML project contents as library
”, - “
Import published library
”.
When importing a library, this can be done by reference ("Import
") or by copy ("Copy
").
Watch the videos below to see these new commands in action:
To make it easier to get started, a dedicated project template is now available for creating a reusable library:
The top-right icon now provides quick access to the homepage, where you can view the project or library in addition to the SysON help page.
Many UX Improvements
The 2025.4.0 release of SysON brings a series of enhancements to improve your modeling workflow and the clarity of diagrams.
Workspace Management
We’ve made it easier to manage your workspace: you can now quickly filter your project list to find what you need faster:
This makes navigating through projects and libraries much more efficient.
Diagrams
Beyond display refinements, we’ve also expanded what you can do within diagrams themselves.
One of the first updates is how long names are handled in diagrams. Elements with lengthy labels can now be either wrapped across multiple lines or shortened with an ellipsis to provide a visual indication that the name is truncated:
Building on this attention to usability, we also upgraded the Direct Edit tool. When working on Feature elements within diagrams, you can now set an initial value by using ":=
" and "default
" syntax directly in place. More details about these enhancements are available in the user documentation.
And when you want to start form an existing representation, you can now duplicate diagrams directly from the explorer:
General View
To further enhance model navigation and top-level design, we’ve made it possible to create a General View diagrams directly under the root namespace elements. This flexibility gives you more freedom to organize and visualize system-wide structures right from the start.
Once in the General View, you’ll notice new capabilities such as:
- Supporting Satisfy Requirement Usage objects,
- Being able to create TransitionUsage,
- Adding "Add Existing Elements" menu directly inside the Action Flow compartment,
- Adding Ports visualisation and connections:
- Displaying a link between OccurrenceDefinition and its nested OccurrenceUsages:
- Adding a text area widget to edit multiline String properties on the "body" property of Comment, Documentation and TextualRepresentation.
- Displaying and editing TextualRepresentations:
- Creating Comments directly from a Dependency or a TransitionUsage using the graphical link's contextual menu:
Batmobile Example
To help you get started SysML V2 and SysON, we’ve made sure the Batmobile example project works seamlessly.
Better textual import
We’re continuously improving the textual import capabilities in SysON to make it more robust and accurate.
In this release, several key enhancements were introduced to better handle complex modeling scenarios:
- Improved support for unrestricted names: References with spaces or quotes are now properly resolved. For example, in the following model, the reference to
'p 2'::'A 1'
is now correctly interpreted:
package p1 {
package 'p 2' {
action def 'A 1';
}
action 'a 2' : 'p 2'::'A 1';
}
- Fixed incorrect resolution of Redefinition targets when a name conflict was detected.
- Better handling of SuccessionAsUsage and TransitionAsUsage in multiple situations, including:
- Support for implicit source property,
- Directly defining a target action after the '
then
' keyword (if not preceded by succession) - Proper Guard Condition parsing. This means model like the following are now properly imported:
action a0 {
private import ScalarValues::*;
action a1;
action a2;
action a3;
action a4;
action a5;
attribute attr1 : Real;
first start then d1;
decide d1;
if attr1 >= 2 then a1; // Implicit source is d1
if attr1 >= 1 and attr1 < 2 then a2; // Implicit source is d1
else a3; // Implicit source is d1
succession S1 first a2 if attr1 == 1.3 then a4;
succession S2 first a2 if attr1 > 1.3 & attr1 < 1.8 then a5;
}
- When importing a "do" of type TransitionFeatureMembership, its kind is now correctly set to
effect
, - The default value for RequirementConstraintKind is now automatically set to
require
orassume
, - The TextualRepresentation import has been improved to clean up language and body fields by removing unwanted characters such as
/* */
and"
, - ConjugatedPort is now correctly imported on PortDefinition
Improved export to text
Exporting your models as text has not been left behind - we’ve made several improvements to ensure smoother round-tripping and more consistent output. These enhancements include:
- Producing output that more closely matches the originally imported file, ensuring reliable import/export loop,
- Fixing an issue in qualified name generation for elements referenced in FeatureReferenceExpression, so the exported text now reflects correct scoping and hierarchy.
- Properly handling the name of SuccessionAsUsage elements during export. For example, the following model now exports cleanly and consistently:
action def ActionDef1 {
action a1;
action a2;
succession s1 first a1 then a2;
}
- Improving the names used for objects referenced by implicit Specialization, so their identities remain clear:
Before:
action def ActionDef1 {
action a2;
first Actions::Action::start then a2;
}
After:
action def ActionDef1 {
action a2;
first start then a2;
}
- Supporting the export of TransitionUsage elements owned by ActionUsage, ActionDefinition or DecisionNode, which were previously omitted or incomplete.
- Handling TextualRepresentation export :
action def P1 {
language "naturalLanguage"
/* some comment
some other comment */
rep l2 language "naturalLanguage2"
/* some comment 3 */
}
As you can see, this release of SysON brings numerous improvements, once again demonstrating our commitment to providing you with a powerful tool for SysML V2 modeling.
Don’t wait and download the latest version now to take advantage of all these new features!