Learn about Webel's comprehensive SysMLv2 Workshop Seminar course!
Webel now has a SysMLv2 Online Self-Study course with self-test Quizzes!
Learn about the Webel Q&A online self-testing system for SysML v2/v1

SysML2.0: GOTCHA: p.632 subparts : Part [0..*] {subsets subitems}: Does not indicate that subparts is nonunique (has consequences for user model nonunique usages)

This page identifies a possible issue, inconsistency, concern, error, or bug!
One of the ways Webel IT Australia helps promote tools, technologies, and languages is by donating a lot of time identifying, tracking, and reporting potential issues, in order to help vendors and developers improve the tools and technologies. In some cases, we also offer workarounds and advice for users. All issues tracked on our public site are offered most constructively and with sincerest gratitude to the tool vendors and technology developers.
DISCLAIMER: Vendors do not officially endorse issue analysis by Webel IT Australia.
Icon class
icon_class
far fa-sticky-note
icon_class_computed
far fa-sticky-note
Note kind
Policy level
Specification keywords
SysMLv2 keywords
Keywords
From SysML2.0 p.463:
subparts : Part [0..*] {subsets subitems}
If you look at the code for Parts::parts (as of Cameo 2026xR1) you see that:
abstract part parts : Part [0..*] nonunique :> items {
    doc /* parts is the base feature of all part properties.*/
}
This turns out to be significant, since for Items::Item::subparts:
abstract part subparts : Part [0..*] :> subitems, parts {
            doc /* The subitems of this Item that are Parts.*/
        }
Thus subparts is NOT non-unique (noting that nonunique declarations are NOT inherited), so if you want a nonunique nested part usage (nested in an occurrence) it has to be a referential «ref part», otherwise it fails this constraint:
validateSubsettingUniquenessConformanceIf

'If the subsettedFeature of a Subsetting has isUnique = true, then the subsettingFeature must have isUnique = true.'

subsettedFeature.isUnique implies subsettingFeature.isUnique

An attempt to declare a composite (not referential) «part» nested in an occurrence as nonunique will FAIL, because that nested «part» subsets subparts, which has (from the default) isUnique=true.

The takeaway:


Webel does the detailed do's and don'ts SysMLv2 analysis for you and provides clear modelling solutions that work!

To learn SysMLv2 with easy-to-follow, fully worked examples attend a Webel SysMLv2 Workshop Seminar group course or learn at your own pace with the Webel SysMLv2 Online course with self-test Quizzes:

Relates to
Related notes
Related notes (backlinks)
Related snippets (extracts)
Visit also
Visit also (backlinks)