vtk 9.5 q: what is proper way to create Python vtkDataSet object from C++ address

Sigh. This feature was a casualty of the new numpy integration that was added to VTK. Read more here: Why is vtkmodules.util.data_model overriding by default?

You can still do it, but the address cannot be the address of a VTK data object. Which makes the feature much less useful, I know…

There is a work-around. You can disable VTK’s new numpy-friendly data object overrides by adding the following lines to the top of your program, before your “import vtk” statement:

# disable automatic VTK data object overrides
import vtkmodules
vtkmodules.MODULE_MAPPER = {}

This will work in VTK 9.4 and VTK 9.5. I’m not sure if it will continue to work in 9.6 and onward.