SysML® V2 · Table 3

Packages — Representative Notation

A guided walkthrough of every notation form for Packages in SysML V2, showing both textual and graphical representations side-by-side.

In SysML V2, a Package is the primary namespacing construct for organising model elements. The concepts below cover the full set of notations drawn from Table 3 — Packages: Representative Notation of the SysML V2 Language Specification (OMG formal/2026-03-02). Each entry shows the Textual Notation first, followed by its Graphical Notation.

01

Package Declaration

Textual Notation
// A named package containing owned members
package VehicleSystem {
    // owned members go here
}
Graphical Notation
package
VehicleSystem
02

Package Membership

Textual Notation
// Elements declared inside a package body
// are owned members of that package (namespace membership)
package VehicleSystem {
    part def Engine;
    part def Chassis;
}
Graphical Notation
package
VehicleSystem
part def
Engine
part def
Chassis
03

Public Package Import

Textual Notation
// Public import makes all public members of the
// imported package visible in the importing namespace,
// AND re-exports them to any further importers.
package AutomotiveLibrary {
    part def Engine;
    part def Wheel;
}

package VehicleDesign {
    import AutomotiveLibrary::*;
    // Engine and Wheel are now directly accessible
    // and re-exported from VehicleDesign
}
Graphical Notation
package
VehicleDesign
«import»
package
AutomotiveLibrary
04

Private Package Import

Textual Notation
// Private import makes all public members visible
// in the importing namespace but does NOT re-export them.
package AutomotiveLibrary {
    part def Engine;
}

package VehicleDesign {
    private import AutomotiveLibrary::*;
    // Engine is accessible here but NOT re-exported
}
Graphical Notation
package
VehicleDesign
«private import»
package
AutomotiveLibrary
05

Filter Package Import

Textual Notation
// A filter import applies a filter condition to restrict
// which members are imported from the target package.
// Only members satisfying the filter expression are visible.
package AutomotiveLibrary {
    part def Engine { attribute mass : Real; }
    part def Wheel  { attribute mass : Real; }
}

package LightweightComponents {
    import AutomotiveLibrary::* filter mass < 50;
    // Only members whose 'mass' attribute is less than 50 are imported
}
Graphical Notation
package
LightweightComponents
«import» {filter mass < 50}
package
AutomotiveLibrary
06

Member Import

Textual Notation
// A member import imports a single named member
// rather than all members of a package.
package AutomotiveLibrary {
    part def Engine;
    part def Wheel;
}

package VehicleDesign {
    import AutomotiveLibrary::Engine;
    // Only Engine is imported; Wheel is not visible
}
Graphical Notation
package
VehicleDesign
«import»
part def
Engine

Arrow targets the specific element rather than its containing package.

07

Member Import with Alias

Textual Notation
// An alias import gives a locally-scoped name to
// an imported member, avoiding name collisions.
package AutomotiveLibrary {
    part def InternalCombustionEngine;
}

package VehicleDesign {
    import AutomotiveLibrary::InternalCombustionEngine as ICEngine;
    // Now accessible as 'ICEngine' within VehicleDesign
}
Graphical Notation
package
VehicleDesign
«import» ICEngine
part def
InternalCombustionEngine

The alias name ICEngine is shown on or near the import arrow.

08

Element Filter Condition

Textual Notation
// An element filter constrains a package so that
// only elements satisfying the condition are exposed.
// The filter applies to all imports of this package.
// (Element: Package with ElementFilterMembership)
package AutomotiveLibrary {
    filter @DetailLevel >= 2;
    // Only elements whose metadata DetailLevel >= 2
    // will be visible when this package is imported

    part def Engine { @DetailLevel = 3; }
    part def Sketch  { @DetailLevel = 1; }
}
Graphical Notation
package
AutomotiveLibrary
{filter @DetailLevel >= 2}

The filter condition is shown inside the package compartment or as a constraint annotation {filter …} on the package symbol.