code: def updateShape(self):
          
          x = self.tags['x']
          y = -self.tags['y'] # Neuron y-axis positive = upwards, so assume pia=0 and cortical depth = neg
          z = self.tags['z']
                  
          for sec in list(self.secs.values()):
              if 'geom' in sec and 'pt3d' not in sec['geom']:  # only cells that didn't have pt3d before
                  sec['geom']['pt3d'] = []
                  sec['hObj'].push()
                  n3d = int(h.n3d())  # get number of n3d points in each section
                  for i in range(n3d):
                      # by default L is added in x-axis; shift to y-axis; z increases 100um for each cell so set to 0
                      pt3d = [h.y3d(i), h.x3d(i), 0, h.diam3d(i)] 
                      sec['geom']['pt3d'].append(pt3d) 
                      h.pt3dchange(i, x+pt3d[0], y+pt3d[1], z+pt3d[2], pt3d[3], sec=sec['hObj'])
                  h.pop_section()
docs: Call after h.define_shape() to update cell coords