Concept profile
PartDefinition
Defines a reusable kind of system or system part, including features that usages of that kind can have.
Status: draft, source-checked. Editorial explanation with separately identified source declarations and original illustrative redraws.
Original XMI declaration. §7.11.1 Parts Overview, printed 58 / PDF 90; §8.3.11.2 PartDefinition, printed 289 / PDF 321
Source evidence 3 locations
- SysML 2.0Original XMI declarationptc/25-02-15
- SysML 2.0 Language§7.11.1 Parts Overview, printed 58 / PDF 90formal/2026-03-02
- SysML 2.0 Language§8.3.11.2 PartDefinition, printed 289 / PDF 321formal/2026-03-02
What to understand
- A definition is a classifier; a part usage is a feature in context. They retain different metaclass identities.
- Declaring a nested definition introduces a scoped kind. It does not by itself declare a part usage.
- Properties of this metaclass describe the language definition, rather than arbitrary attributes such as a modeled wheel diameter.
Graphical notation
These are representative, source-checked variants, not an exhaustive notation grammar. The illustrations are original redraws, not official figures.
Part definition node
Context: Definition node in a structural view.
Sharp-corner rectangle with the part def keyword and definition name. Compartment and interconnection contents may extend the basic node.
§8.2.3.11 Parts, printed 209 / PDF 241
Source evidence 1 location
- SysML 2.0 Language§8.2.3.11 Parts, printed 209 / PDF 241formal/2026-03-02
Relationships and composition
Usage of a kind: PartUsage
Part usages can use the kind introduced by a part definition.
Condition: Typing is distinct from model ownership; many usages can share the same definition.
Declared feature: PortUsage
A part definition can declare port usages as features.
Condition: Port definitions determine permitted port typing; the enclosing declaration is not a substitute for that type.
§7.12.2–3, printed 63 / PDF 95
Source evidence 2 locations
- SysML 2.0 Language§7.11.2, printed 61 / PDF 93formal/2026-03-02
- SysML 2.0 Language§7.12.2–3, printed 63 / PDF 95formal/2026-03-02
Connected example
Wheel, Axle and Assembly are part definitions. Their port and part declarations specify features; assembly : Assembly is a separate usage of the defined kind.
// Original documentation example. Source-reviewed; not parser-validated.
package AssemblyExample {
port def Mount;
part def Wheel {
port hub : Mount;
}
part def Axle {
port mount : Mount;
}
part def Assembly {
part wheel : Wheel;
part axle : Axle;
ref part spare : Wheel[0..1];
connection link connect axle.mount to wheel.hub;
}
part assembly : Assembly;
}
Verification: source-reviewed, not parser-validated or executed. §7.11.2 Part Definitions and Usages, printed 61 / PDF 93
Source evidence 1 location
- SysML 2.0 Language§7.11.2 Part Definitions and Usages, printed 61 / PDF 93formal/2026-03-02
Properties
The explicit-redefinition view contains 82 active declarations, retaining declaration origins and excluding 0 replaced declarations. It deduplicates diamond paths by identity, excludes private inherited fields, and reports unresolved same-name collisions instead of choosing a winner.
These are metamodel property cardinalities and declared defaults. They do not determine the multiplicity or runtime values of a part, port or connection in a user model. Derived values still require their derivation rules. See property rules.
View 82 property declarations
| Property | Meaning | Type | Bounds | Declared on | Declared default |
|---|---|---|---|---|---|
| aliasIds | Alternative identifiers for this element, typically supplied by tools. | String | 0..* | Element | No declared default |
| declaredName | The primary name explicitly supplied for this element. | String | 0..1 | Element | No declared default |
| declaredShortName | An explicitly supplied compact alternative name whose contextual uniqueness is the modeler’s responsibility. | String | 0..1 | Element | No declared default |
| differencingType | The ordered types defining this type as the first type’s interpretations minus those of subsequent types. | Type | 0..* | Type | No declared default |
| directedFeature | The features of this type with an explicit direction. | Feature | 0..* | Type | No declared default |
| directedUsage | The usage features in this context that have an explicit direction. | Usage | 0..* | Definition | No declared default |
| documentation | The documentation elements owned by this element. | Documentation | 0..* | Element | No declared default |
| elementId | The tooling-assigned global identifier intended to remain stable for this element’s lifetime. | String | 1..1 | Element | No declared default |
| endFeature | The features of this type marked as ends. | Feature | 0..* | Type | No declared default |
| feature | The features available through this type’s feature memberships, including inherited features. | Feature | 0..* | Type | No declared default |
| featureMembership | The owned and inherited feature memberships of this type, excluding imported memberships. | FeatureMembership | 0..* | Type | No declared default |
| importedMembership | The memberships made available by imports owned by this namespace. | Membership | 0..* | Namespace | No declared default |
| inheritedFeature | The features obtained through inherited feature memberships. | Feature | 0..* | Type | No declared default |
| inheritedMembership | The memberships made available to this type by specialization or conjugation. | Membership | 0..* | Type | No declared default |
| input | The features of this type directed into the type, including bidirectional features. | Feature | 0..* | Type | No declared default |
| intersectingType | The types whose shared interpretations define this type. | Type | 0..* | Type | No declared default |
| isAbstract | Requires every instance of this type to also instantiate a more specialized type. | Boolean | 1..1 | Type | false (LiteralBoolean) |
| isConjugated | Records whether this type owns a conjugation as its conjugator. | Boolean | 1..1 | Type | No declared default |
| isImpliedIncluded | Records that all required implied owned relationships are included; false requires that none be included. | Boolean | 1..1 | Element | false (LiteralBoolean) |
| isIndividual | Restricts this occurrence definition to classify at most one modeled thing. | Boolean | 1..1 | OccurrenceDefinition | false (LiteralBoolean) |
| isLibraryElement | Indicates that this element lies within the ownership tree of a library model. | Boolean | 1..1 | Element | No declared default |
| isSufficient | Makes satisfying this type’s classification conditions sufficient for classification by the type. | Boolean | 1..1 | Type | false (LiteralBoolean) |
| isVariation | Marks a variation point and requires its relevant memberships to be variant memberships. | Boolean | 1..1 | Definition | No declared default |
| member | The elements available as members through this namespace’s memberships. | Element | 0..* | Namespace | No declared default |
| membership | The memberships available in this namespace, including owned and imported memberships. | Membership | 0..* | Namespace | No declared default |
| multiplicity | The owned multiplicity constraining this type’s modeled cardinality; without one, applicable supertype multiplicities still constrain it. | Multiplicity | 0..1 | Type | No declared default |
| name | The effective name used for namespace lookup, which some element kinds compute rather than declare. | String | 0..1 | Element | No declared default |
| output | The features of this type directed out of the type, including bidirectional features. | Feature | 0..* | Type | No declared default |
| ownedAction | The action usages owned as features by this definition. | ActionUsage | 0..* | Definition | No declared default |
| ownedAllocation | The allocation usages owned as features by this definition. | AllocationUsage | 0..* | Definition | No declared default |
| ownedAnalysisCase | The analysis case usages owned as features by this definition. | AnalysisCaseUsage | 0..* | Definition | No declared default |
| ownedAnnotation | The annotation relationships owned here that annotate this element. | Annotation | 0..* | Element | No declared default |
| ownedAttribute | The attribute usages owned as features by this definition. | AttributeUsage | 0..* | Definition | No declared default |
| ownedCalculation | The calculation usages owned as features by this definition. | CalculationUsage | 0..* | Definition | No declared default |
| ownedCase | The case usages owned as features by this definition. | CaseUsage | 0..* | Definition | No declared default |
| ownedConcern | The concern usages owned as features by this definition. | ConcernUsage | 0..* | Definition | No declared default |
| ownedConjugator | The optional conjugation owned here that treats this type as the original type. | Conjugation | 0..1 | Type | No declared default |
| ownedConnection | The connector-as-usages, including binding, succession and flow usages owned as features by this definition. | ConnectorAsUsage | 0..* | Definition | No declared default |
| ownedConstraint | The constraint usages owned as features by this definition. | ConstraintUsage | 0..* | Definition | No declared default |
| ownedDifferencing | The owned difference relationships defining this type as their difference result. | Differencing | 0..* | Type | No declared default |
| ownedDisjoining | The owned disjointness relationships constraining this type against other types. | Disjoining | 0..* | Type | No declared default |
| ownedElement | The elements reached as owned related elements through this element’s owned relationships. | Element | 0..* | Element | No declared default |
| ownedEndFeature | The end features introduced through memberships owned by this type. | Feature | 0..* | Type | No declared default |
| ownedEnumeration | The enumeration usages owned as features by this definition. | EnumerationUsage | 0..* | Definition | No declared default |
| ownedFeature | The features introduced through feature memberships owned by this type. | Feature | 0..* | Type | No declared default |
| ownedFeatureMembership | The memberships owned here that introduce owned features of this type. | FeatureMembership | 0..* | Type | No declared default |
| ownedFlow | The flow usages owned as features by this definition. | FlowUsage | 0..* | Definition | No declared default |
| ownedImport | The import relationships owned by this namespace. | Import | 0..* | Namespace | No declared default |
| ownedInterface | The interface usages owned as features by this definition. | InterfaceUsage | 0..* | Definition | No declared default |
| ownedIntersecting | The owned intersection relationships defining this type as their intersection result. | Intersecting | 0..* | Type | No declared default |
| ownedItem | The item usages owned as features by this definition. | ItemUsage | 0..* | Definition | No declared default |
| ownedMember | The member elements owned through this namespace’s owned memberships. | Element | 0..* | Namespace | No declared default |
| ownedMembership | The memberships owned by this namespace. | Membership | 0..* | Namespace | No declared default |
| ownedMetadata | The metadata usages owned as features by this definition. | MetadataUsage | 0..* | Definition | No declared default |
| ownedOccurrence | The occurrence usages owned as features by this definition. | OccurrenceUsage | 0..* | Definition | No declared default |
| ownedPart | The part usages owned as features by this definition. | PartUsage | 0..* | Definition | No declared default |
| ownedPort | The port usages owned as features by this definition. | PortUsage | 0..* | Definition | No declared default |
| ownedReference | The reference usages owned as features by this definition. | ReferenceUsage | 0..* | Definition | No declared default |
| ownedRelationship | The relationships owned by this element as their owning related element. | Relationship | 0..* | Element | No declared default |
| ownedRendering | The rendering usages owned as features by this definition. | RenderingUsage | 0..* | Definition | No declared default |
| ownedRequirement | The requirement usages owned as features by this definition. | RequirementUsage | 0..* | Definition | No declared default |
| ownedSpecialization | The owned specialization relationships in which this type is the more specific type. | Specialization | 0..* | Type | No declared default |
| ownedState | The state usages owned as features by this definition. | StateUsage | 0..* | Definition | No declared default |
| ownedSubclassification | The subclassification relationships owned here that identify this classifier as the more specific classifier. | Subclassification | 0..* | Classifier | No declared default |
| ownedTransition | The transition usages owned as features by this definition. | TransitionUsage | 0..* | Definition | No declared default |
| ownedUnioning | The owned union relationships defining this type as their union result. | Unioning | 0..* | Type | No declared default |
| ownedUsage | The usage features owned by this definition. | Usage | 0..* | Definition | No declared default |
| ownedUseCase | The use case usages owned as features by this definition. | UseCaseUsage | 0..* | Definition | No declared default |
| ownedVerificationCase | The verification case usages owned as features by this definition. | VerificationCaseUsage | 0..* | Definition | No declared default |
| ownedView | The view usages owned as features by this definition. | ViewUsage | 0..* | Definition | No declared default |
| ownedViewpoint | The viewpoint usages owned as features by this definition. | ViewpointUsage | 0..* | Definition | No declared default |
| owner | The owning related element reached through this element’s owning relationship, which need not be a namespace. | Element | 0..1 | Element | No declared default |
| owningMembership | The relationship owning this element when that relationship is a membership. | OwningMembership | 0..1 | Element | No declared default |
| owningNamespace | The namespace obtained through this element’s owning membership, when that ownership route exists. | Namespace | 0..1 | Element | No declared default |
| owningRelationship | The relationship that directly owns this element as a related element, if one exists. | Relationship | 0..1 | Element | No declared default |
| qualifiedName | The ownership-path name in KerML syntax, absent when the named ownership path or disambiguation conditions are not met. | String | 0..1 | Element | No declared default |
| shortName | The effective compact name used for namespace lookup, which some element kinds compute rather than declare. | String | 0..1 | Element | No declared default |
| textualRepresentation | The textual-representation annotations attached to this element. | TextualRepresentation | 0..* | Element | No declared default |
| unioningType | The types whose combined interpretations equal this type’s interpretation. | Type | 0..* | Type | No declared default |
| usage | The usage features available in this context, including usages not owned here. | Usage | 0..* | Definition | No declared default |
| variant | The usages offered as alternatives at this variation point; absent when it is not a variation point. | Usage | 0..* | Definition | No declared default |
| variantMembership | The owned memberships introducing variants, required to be empty outside a variation point. | VariantMembership | 0..* | Definition | No declared default |
Source evidence 82 locations
- KerML 1.0aliasIdsptc/25-04-04
- KerML 1.0declaredNameptc/25-04-04
- KerML 1.0declaredShortNameptc/25-04-04
- KerML 1.0differencingTypeptc/25-04-04
- KerML 1.0directedFeatureptc/25-04-04
- SysML 2.0directedUsageptc/25-02-15
- KerML 1.0documentationptc/25-04-04
- KerML 1.0elementIdptc/25-04-04
- KerML 1.0endFeatureptc/25-04-04
- KerML 1.0featureptc/25-04-04
- KerML 1.0featureMembershipptc/25-04-04
- KerML 1.0importedMembershipptc/25-04-04
- KerML 1.0inheritedFeatureptc/25-04-04
- KerML 1.0inheritedMembershipptc/25-04-04
- KerML 1.0inputptc/25-04-04
- KerML 1.0intersectingTypeptc/25-04-04
- KerML 1.0isAbstractptc/25-04-04
- KerML 1.0isConjugatedptc/25-04-04
- KerML 1.0isImpliedIncludedptc/25-04-04
- SysML 2.0isIndividualptc/25-02-15
- KerML 1.0isLibraryElementptc/25-04-04
- KerML 1.0isSufficientptc/25-04-04
- SysML 2.0isVariationptc/25-02-15
- KerML 1.0memberptc/25-04-04
- KerML 1.0membershipptc/25-04-04
- KerML 1.0multiplicityptc/25-04-04
- KerML 1.0nameptc/25-04-04
- KerML 1.0outputptc/25-04-04
- SysML 2.0ownedActionptc/25-02-15
- SysML 2.0ownedAllocationptc/25-02-15
- SysML 2.0ownedAnalysisCaseptc/25-02-15
- KerML 1.0ownedAnnotationptc/25-04-04
- SysML 2.0ownedAttributeptc/25-02-15
- SysML 2.0ownedCalculationptc/25-02-15
- SysML 2.0ownedCaseptc/25-02-15
- SysML 2.0ownedConcernptc/25-02-15
- KerML 1.0ownedConjugatorptc/25-04-04
- SysML 2.0ownedConnectionptc/25-02-15
- SysML 2.0ownedConstraintptc/25-02-15
- KerML 1.0ownedDifferencingptc/25-04-04
- KerML 1.0ownedDisjoiningptc/25-04-04
- KerML 1.0ownedElementptc/25-04-04
- KerML 1.0ownedEndFeatureptc/25-04-04
- SysML 2.0ownedEnumerationptc/25-02-15
- KerML 1.0ownedFeatureptc/25-04-04
- KerML 1.0ownedFeatureMembershipptc/25-04-04
- SysML 2.0ownedFlowptc/25-02-15
- KerML 1.0ownedImportptc/25-04-04
- SysML 2.0ownedInterfaceptc/25-02-15
- KerML 1.0ownedIntersectingptc/25-04-04
- SysML 2.0ownedItemptc/25-02-15
- KerML 1.0ownedMemberptc/25-04-04
- KerML 1.0ownedMembershipptc/25-04-04
- SysML 2.0ownedMetadataptc/25-02-15
- SysML 2.0ownedOccurrenceptc/25-02-15
- SysML 2.0ownedPartptc/25-02-15
- SysML 2.0ownedPortptc/25-02-15
- SysML 2.0ownedReferenceptc/25-02-15
- KerML 1.0ownedRelationshipptc/25-04-04
- SysML 2.0ownedRenderingptc/25-02-15
- SysML 2.0ownedRequirementptc/25-02-15
- KerML 1.0ownedSpecializationptc/25-04-04
- SysML 2.0ownedStateptc/25-02-15
- KerML 1.0ownedSubclassificationptc/25-04-04
- SysML 2.0ownedTransitionptc/25-02-15
- KerML 1.0ownedUnioningptc/25-04-04
- SysML 2.0ownedUsageptc/25-02-15
- SysML 2.0ownedUseCaseptc/25-02-15
- SysML 2.0ownedVerificationCaseptc/25-02-15
- SysML 2.0ownedViewptc/25-02-15
- SysML 2.0ownedViewpointptc/25-02-15
- KerML 1.0ownerptc/25-04-04
- KerML 1.0owningMembershipptc/25-04-04
- KerML 1.0owningNamespaceptc/25-04-04
- KerML 1.0owningRelationshipptc/25-04-04
- KerML 1.0qualifiedNameptc/25-04-04
- KerML 1.0shortNameptc/25-04-04
- KerML 1.0textualRepresentationptc/25-04-04
- KerML 1.0unioningTypeptc/25-04-04
- SysML 2.0usageptc/25-02-15
- SysML 2.0variantptc/25-02-15
- SysML 2.0variantMembershipptc/25-02-15
Reconciliation and limits
Seed reconciliation: SelectedFieldsMatch for direct bases, declared property names/types/bounds/derivation/ordering/subsets/redefinitions, constraint names. This checks selected structural fields only; it does not approve the entire seed or all semantics.
- Instance-level composition is governed by usages and their context, rather than by the outline of the definition box.
- Effective property resolution covers explicit inheritance and redefinition identities; it does not evaluate constraint consistency, OCL derivations or executable behavior.