# Issue exposing vtkMultiBlock structure from PVD reader

**URL:** https://discourse.paraview.org/t/issue-exposing-vtkmultiblock-structure-from-pvd-reader/8840
**Category:** ParaView Support
**Created:** [January 25, 2022, 5:04pm UTC](https://discourse.paraview.org/t/issue-exposing-vtkmultiblock-structure-from-pvd-reader/8840 "2022-01-25T17:04:09Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![Azrael3000](https://discourse.paraview.org/user_avatar/discourse.paraview.org/azrael3000/32/7648_2.png) [@Azrael3000](https://discourse.paraview.org/u/Azrael3000)
#### Post date: [January 25, 2022, 5:04pm UTC](https://discourse.paraview.org/t/issue-exposing-vtkmultiblock-structure-from-pvd-reader/8840/1 "2022-01-25T17:04:09Z")

</div>

Dear all,

I am trying to use Python to get the structure of a `vtkMultiBlockDataSet` which lives on a server that I connect to using pvserver.

The structure of the Multiblock is:

```auto
# Multiblock                                                                                                                                                                         
# |- Meshes (Multiblock)                                                                                                                                                             
# | |- mesh1 (PolyMesh)                                                                                                                                                             
# | |- mesh2 (PolyMesh)                                                                                                                                                             
# | |- mesh3 (PolyMesh)                                                                                                                                                             
# | |- mesh4 (PolyMesh)                                                                                                                                                             
# | |- mesh5 (PolyMesh)                                                                                                                                                             
# | |- mesh6 (PolyMesh)                                                                                                                                                             
# | |- mesh7 (PolyMesh)                                                                                                                                                             
# | |- mesh8 (PolyMesh)                                                                                                                                                             
# |- empty (remains empty)                                                                                                                                                           
# |- Particles (PolyMesh)                                                                                                                                                            
# |- Domain (Rectilinear)    

```

here’s a short exploratory script:

```auto
all_src = GetSources()                                                                                                                                                               
pvd_src = all_src[('file.pvd', '10990')]                                                                                                                              
pvd_smp = pvd_src.SMProxy                                                                                                                                                            
print(pvd_smp.GetNumberOfOutputPorts()) # <- 1                                                                                                                                       
out_port = pvd_smp.GetOutputPort(0)                                                                                                                                                  
print(out_port.GetDataClassName()) # <- vtkMultiBlockDataSet                                                                                                                         
info = out_port.GetDataInformation()                                                                                                                                                 
print(info.GetCompositeDataSetName()) # <- 'Meshes'                                                                                                                                  
print(info.GetNumberOfDataSets()) # <- 9
print(info.GetDataInformationForCompositeIndex(9).GetCompositeDataSetName()) # <- mesh8

```

Note, there are 9 data sets only in the Meshes block (including itself), so I would actually expect there to be at least 11 (with `Particles` and `Domain`). I can also iterate over these data sets which confirms that the two are missing as the dataset with the higest index is `mesh8`.

So I need actually two things which I can’t seem to achieve:

1. I need to get the 3rd Multiblock and verify that it’s name is ‘Particles’
2. I need to get the number of points that are in the ‘Particle’ PolyMesh.

I guess the second thing will be ok once I actually get access to that data set and using something like `GetPointDataInformation()`.

Thanks in advance for your help,  
Arno
