Browse reference
On this page

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

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.

Part definition node

§8.2.3.11 Parts, printed 209 / PDF 241

Source evidence 1 location

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.

§7.11.2, printed 61 / PDF 93

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

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

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

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.

Browse interactive properties · Concept-page contract

View this page’s source on GitHub