Blocks provide a general-purpose capability to model systems as trees of modular components. The specific kinds of components, the kinds of connections between them, and the way these elements combine to define the total system can all be selected according to the goals of a particular system model.
SysML blocks can be used throughout all phases of system specification and design, and can be applied to many different kinds of systems. These include modeling either the logical or physical decomposition of a system, and the specification of software, hardware, or human elements. Parts in these systems might interact by many different means, such as software operations, discrete state transitions, and flows.
BlockNamespaceContainment defines that a Block specifies the namespace of its contained elements. In the example below, the 2-Stroke Engine has its namespace specified by the Saab 93 automobile block type. It is not just any 2-Stroke Engine, it is the one owned by the Saab 93. When the relationship is drawn, the owning namespace is provided in the A_nestedClassifier_nestingClass property of the contained definition – in this case the 2-Stroke Engine.
Likewise, the containing namespace Block – in the example the Saab 93 type car – lists its contained classifiers in its nestedClassifier property, and in its A_redefinitionContext_redefinableElement property on its Classifier UML tab.
Relates
Note The BlockNamespaceContainment relationship can be drawn like this: