Heterogeneity in the properties of material of particles

I am working on slope modelling using the Voronoi block approach in 3DEC to represent a heterogeneous rock mass/overburden dump. I would like to assign different material properties to individual Voronoi blocks in order to simulate realistic heterogeneity as shown in fig

But i am unable to solve the problem as my code attached below is providing the material property to some block not to whole geometery.

Also, I will be doing for the contacts also.

model new
model random 10000
block tol 1e-6
model large-strain off
; make parallelepiped to fill with voronois
geometry import ‘40degree1bench.stl’
block generate voronoi max-edge 3.5 min-edge 0.5 ;set 12;random-seed 100 iterations 100 round 1.0e-5
block generate voronoi max-edge 4 min-edge 0.5

block zone generate edgelength 5
block delete range deformable not
;global z111 = block.list()
;global x_ = list.size((z111))
;program call ‘property’

block zone cmodel assign mohr-coulomb
block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1 range index-list 1 1011
block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1 range id 1012 2010
block zone property density 2.651E3 young 10.05e6 friction 44.5 cohesion 150E3 kratio 1 range id 2011 4000
block zone property density 2.714E3 young 11.68e6 friction 44.5 cohesion 150E3 kratio 1 range id 4001 6000
block zone property density 2.621E3 young 11.87e6 friction 44.5 cohesion 150E3 kratio 1 range id 6001 7014
block zone property density 2.641E3 young 11.87e6 friction 44.5 cohesion 150E3 kratio 1 range id 7015 8014

block contact jmodel mohr
block contact prop stiffness-normal 7.6e7 stiffness-shear 7.6e7 cohesion 40 tension 14.4 friction 10 range id 1 2011

block contact prop stiffness-normal 10.6e7 stiffness-shear 10.6e7 friction 10 range id 2012 8014
program return

I have tried using fish programing with multiple codes but not able to do it. Can anyone please look into it.

;fish auto-create off
fish auto-create on
;fish def propert
; global z111 = block.list()
; global x
= list.size((z111))
; global xa = list.max(x_)
; global xb = list.min(x_)
; command
; block zone cmodel assign mohr-coulomb
; endcommand
; loop foreach bb x_
;
;
; loop foreach x1 z111
; if x1%2 == 0
; command
; block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; else
; command
; block zone property density 2.651E3 young 10.05e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; x1= x1 + 1
; end_if
; end_loop
; end_loop
;end

fish define install
pnt = block.zone.list()
global x_ = list.size((pnt))
loop for (i=1, i<=x_+1, i +=1)
pnt = block.zone.list()
if i%2 == 0
block.zone.prop(pnt,‘young’) = 4.79e6
block.zone.prop(pnt,‘density’) = 2.598e3
block.zone.prop(pnt,‘friction’) = 44.5
block.zone.prop(pnt,‘cohesion’) = 150e3
else
block.zone.prop(pnt,‘young’) = 10.05e6
block.zone.prop(pnt,‘density’) = 2.651e3
block.zone.prop(pnt,‘friction’) = 44.5
block.zone.prop(pnt,‘cohesion’) = 150e3

    end_if
    i +=1
end_loop

end

;fish def propert
; global z111 = block.list()
; global x
= list.size((z111))
;; global xa = list.max(x_)
;; global xb = list.min(x_)
; command
; block zone cmodel assign mohr-coulomb
; endcommand
; local p =1
; loop for (i=1, i<=x_+1, i +=1)
;
; if i%2 == 0
; command
; block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; else
; command
; block zone property density 2.651E3 young 10.05e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
;
; end_if
;
; end_loop
;end
;fish def propert
; command
; block zone cmodel assign mohr-coulomb
; endcommand
; loop foreach block block.list
; global x
= list.size(block.id(block))
; loop foreach x1 x_
; if x1%2 == 0
; command
; block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; else
; command
; block zone property density 2.651E3 young 10.05e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; x1= x1 + 1
; end_if
; end_loop
; end_loop
;end
;fish def propert
; command
; block zone cmodel assign mohr-coulomb
; endcommand
; block = block.list()
; global x
= list.seq(block)
; loop foreach x1 x_
;
;
; if x1%2 == 0
; command
; block zone property density 2.598E3 young 4.79e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; else
; command
; block zone property density 2.651E3 young 10.05e6 friction 44.5 cohesion 150E3 kratio 1
; end_command
; x1= x1 + 1
;
; end_if
; end_loop
;end
[install]
;[_propert]