code: def split_bodies(dataset, label=False):
          
          # Get the connectivity and label different bodies
          labeled = dataset.connectivity()
          classifier = labeled.cell_arrays['RegionId']
          bodies = vtki.MultiBlock()
          for vid in np.unique(classifier):
              # Now extract it:
              b = labeled.threshold([vid-0.5, vid+0.5], scalars='RegionId')
              if not label:
                  # strange behavior:
                  # must use this method rather than deleting from the point_arrays
                  # or else object is collected.
                  b._remove_cell_scalar('RegionId')
                  b._remove_point_scalar('RegionId')
              bodies.append(b)
  
          return bodies
docs: Find, label, and split connected bodies/volumes. This splits
          different connected bodies into blocks in a MultiBlock dataset.
  
          Parameters
          ----------
          label : bool
              A flag on whether to keep the ID arrays given by the
              ``connectivity`` filter.