When you work in Blender, you typically interact with its data. This data can be categorized into two groups:
Data-Blocks — the base building blocks of a Blender project. E.g.: objects, meshes, scenes, cameras, lights, etc. See the full list in Blender's documentation.
Most of them share common characteristics, such as being able to be appended or linked. The other commonality among them is that every Data-Block has a name and every Data-Block of the same type must have a unique name—they cannot share the same name. For example, if you have an Object named Cube and try to create another Object, Blender will name it Cube.001 beause an item of Object Data Type named Cube already exists in the
Data Structs — data the user can directly interact with and which is associated with Data-Blocks by being part of them. E.g: UV Layers, Mesh Attributes, Vertex Groups, Drivers, Object Modifiers, F-Curves, F-Curve Modifiers, Custom Properties, etc.
This data cannot be linked directly, only together with the Data-Block it belongs to. In addition, not every Data Struct can have a name. For example, Drivers do not have names.
In contrast to Data-Blocks, Data Structs that have a name can share the same name, as long as they are not part of the same Data-Block (there are exceptions to this rule—one of them being Asset Tags—there can be more than one Asset Tag with the same name). For example, the default UV Map on any Mesh is named UVMap. So, if you create 5 cubes, all of them wil have a UV Map named UVMap. However, if you create another UV Map on the same Mesh, Blender will name it UVMap.001.
The term "Data Struct" is not being used in Blender and therefore, the full list of this data is not available in Blender's documentation. This term is used in this documentation to distinguish this data from Blender's Data-Blocks.
The described disparities between Data-Blocks and Data Structs and other differences that were not mentioned are manifested as a consequence of their internal technical implementation in Blender.
A Data Type is a concept in PACKED Data Manager that is used to refer to both Blender Data-Blocks and Data Structs. In contrast to Blender, PACKED Data Manager treats both Data-Blocks and Data Structs the same. Blender's technical implementation differences between Data-Blocks and Data Structs decide only what features are available for each Data Type in PACKED Data Manager.
In Blender, Data Types (Data-Blocks and Data Structs) can hold references to other Data Types. For example, Object Data Type can be one of several types (Mesh, Armature, Light, Lattice, etc.) Similarly, Mesh data has references to UV Layers, Mesh Attributes. In the same fashion, Armature Data Type holds references to Bones, etc.
If a Data Type has a reference to a different Data Type, in PACKED Data Manager it is said that the latter is a child of the former, and the former is a parent of the latter. For example, Armature Data Type holds a reference to a collection of Bones. It means that Armature Data Type is a parent of Bone Data Type, and Bone Data Type is a child of Armature Data Type.
All Data Types in Blender have properties that hold specific values (numbers, checkboxes, dropdowns, toggles, text, etc.) Most of them can be modified via Blender's property panels, although some are hidden but can still be modified via the Outliner's Data API display mode.
PACKED Data Manager supports the following Data Types:
- Grease Pencil
- Light Probe
- Animation Data (data available in Nonlinear Animation Editor)
- Asset Meta Data
- Asset Tag
- Bone (including edit and pose bones)
- Custom Properties
- Driver Variable
- Library Override
- Library Override Property
- Material Slot
- NLA Strip
- NLA Track
- Sequence Strip
- UV Layer
- Vertex Group
- View Layer