In both SysML and its parent language UML a Package
is a generic grouping mechanism for organizing various model elements and related diagrams within a unique namespace. A SysML Package is capable of containing any arbitrary SysML model element, including (but not limited to) Blocks.
A SysML Block is the basic structural element used within a SysML model, and is used analogously to how UML Classes are used to structure a UML object model. See SysML FAQ: What is the difference between SysML Block and UML Class?
Consequently, while a SysML Package may contain (provide a unique namespace for) Blocks and other SysML model elements, a SysML Block cannot own (be composed of) or contain SysML Packages or SysML diagrams.Usage Note: Can SysML Blocks and Packages be used together in a complementary manner?
: Yes, when recursively decomposing systems into subsystems, sub-subsystems, etc. it’s considered a best practice to recursively organize the model view Package structures in a manner similar to the recursive structural decomposition. A variation of this technique will also work for large, complex data structures.