diff --git a/python/dune/perftool/pdelab/driver/vtk.py b/python/dune/perftool/pdelab/driver/vtk.py
index 824f24ded82a193caaa924e6bfee5c4fa552faf3..6b8b52adc22cf16ec493592dfc79fa5462be8f0b 100644
--- a/python/dune/perftool/pdelab/driver/vtk.py
+++ b/python/dune/perftool/pdelab/driver/vtk.py
@@ -1,6 +1,7 @@
 from dune.perftool.generation import (include_file,
                                       preamble,
                                       )
+from dune.perftool.options import get_option
 from dune.perftool.pdelab.driver import (get_formdata,
                                          get_trial_element,
                                          name_initree,
@@ -44,19 +45,21 @@ def define_subsamplinglevel(name):
     degree = get_trial_element().degree()
     if isinstance(degree, tuple):
         degree = max(degree)
-    return "int {} = {}.get<int>(\"vtk.subsamplinglevel\", {});".format(name, ini, max(degree - 1, 0))
+    if get_option("blockstructured"):
+        degree *= get_option("number_of_blocks")
+    return "Dune::RefinementIntervals {}({}.get<int>(\"vtk.subsamplinglevel\", {}));".format(name, ini, max(degree, 1))
 
 
-def name_subsamplinglevel():
-    define_subsamplinglevel("sublevel")
-    return "sublevel"
+def name_subsamplingintervals():
+    define_subsamplinglevel("subint")
+    return "subint"
 
 
 @preamble
 def define_vtkwriter(name):
     _type = type_vtkwriter()
     gv = name_leafview()
-    subsamp = name_subsamplinglevel()
+    subsamp = name_subsamplingintervals()
     return "{} {}({}, {});".format(_type, name, gv, subsamp)