# question about the type transfer from vtkDataObject to vtkPolyData

**URL:** https://discourse.vtk.org/t/question-about-the-type-transfer-from-vtkdataobject-to-vtkpolydata/4888
**Category:** Support
**Created:** [December 24, 2020, 6:00am UTC](https://discourse.vtk.org/t/question-about-the-type-transfer-from-vtkdataobject-to-vtkpolydata/4888 "2020-12-24T06:00:46Z")
**Posts on this page:** 1
**Page:** 1

<div class="post-metadata">

### Author: ![1116](https://discourse.vtk.org/user_avatar/discourse.vtk.org/1116/32/1506_2.png) [@1116](https://discourse.vtk.org/u/1116)
#### Post date: [December 24, 2020, 6:00am UTC](https://discourse.vtk.org/t/question-about-the-type-transfer-from-vtkdataobject-to-vtkpolydata/4888/1 "2020-12-24T06:00:47Z")

</div>

Hello,

I try to gather the polydata generated by different processes into one processes based on vtkMPIController, and then aggregate them into one data set for further processing by following code:

```auto
    ......
    std::vector<vtkSmartPointer<vtkDataObject> > recvlist;
    int status = vtkcontroller->Gather(polydata, recvlist, 0);
    if (!status)
    {
      throw std::runtime_error("failed to gather poly data");
    }

    if (rank == 0)
    {
      std::cout << "size of recvlist: " << recvlist.size() << std::endl;
      // Append data
      vtkSmartPointer<vtkAppendPolyData> appendFilter = vtkSmartPointer<vtkAppendPolyData>::New();
      for (int i = 0; i < recvlist.size(); i++)
      {
        vtkSmartPointer<vtkPolyData> temppolydata;
        temppolydata.TakeReference(recvlist[i]);
        appendFilter->AddInputData(temppolydata);
      }

      auto output = appendFilter->GetOutput();
      ......
     }

```

But there is compiling error for the `AddInputData` function, since I’m not sure what is the proper way to transfer the vtkDataObject into the vtkPolyData.

Thanks a lot for your help!
