What does a BlockMesh do?
The dimensions of the mesh will scale linearly in all directions with BasePart.Size, this means a part containing a BlockMesh can be resized the same way as any other part.
The additional functionality a BlockMesh brings however, is the ability to set the DataModelMesh.Scale and DataModelMesh.Offset properties. These allow the position and dimensions of the mesh that is displayed to be changed without changing the BasePart.Position or BasePart.Size of the BasePart the mesh is parented to.
1local part = Instance.new("Part")2part.Position = Vector3.new(0, 2, 0)3part.Size = Vector3.new(5, 2, 5)4part.Anchored = true56local mesh = Instance.new("BlockMesh")7mesh.Scale = Vector3.new(0.5, 0.5, 0.5)8mesh.Offset = Vector3.new(0, 2, 0)9mesh.Parent = part1011local adornment = Instance.new("SelectionBox")12adornment.Adornee = part13adornment.Parent = part1415part.Parent = workspace