Failed surface

Buenas, estoy usando el python de Grasshopper para intentar crear una superficie donde se genere una trama de rectángulos. Esta trama debe cambiar de tamaño sus rectángulos a medida que se acerque a un punto dado, modificando su escala. Para ello tengo ya un codigo generado pero el error me surge con que me detecta una superficie como un guid, y eso lleva a error. Alguien sabe como solucionar eso? lo he puesto tambien como brep y no funciona, y modificando el cosigo para que sea directamente un guid tampoco puedo, ya que no me deja dividir en partes un guid.
Os dejo el codigo y los componentes.

import Rhino.Geometry as rg
import math

# Función para generar la trama de rectángulos
def generate_rectangles(surface, rows, cols):
    print(surface)  # Imprimir el valor de la variable surface
    u_div, v_div = surface.Divide(rows, cols)
    rectangles = []
    for u in range(rows):
        for v in range(cols):
            rectangle = rg.Rectangle3d(u_div[u][v], u_div[u + 1][v], u_div[u + 1][v + 1], u_div[u][v + 1])
            rectangles.append(rectangle)
    return rectangles

# Función para cambiar el tamaño de los rectángulos según la cercanía a un punto dado
def resize_rectangles(rectangles, point, max_distance):
    resized_rectangles = []
    for rectangle in rectangles:
        center = rectangle.Center
        distance = center.DistanceTo(point)
        factor = min(distance / max_distance, 1.0) + 1.0
        scaled_rectangle = rg.ScaleTransform(factor, factor, factor).Scale(rectangle)
        resized_rectangles.append(scaled_rectangle)
    return resized_rectangles

# Entradas
surface = Surface # Asigna la superficie deseada desde Grasshopper
point = Point # Asigna el punto de referencia deseado desde Grasshopper
rows = Rows # Número de filas de rectángulos desde Grasshopper
cols = Cols # Número de columnas de rectángulos desde Grasshopper
max_distance = MaxDistance # Valor máximo de distancia desde Grasshopper

# Generar la trama de rectángulos
rectangles = generate_rectangles(surface, rows, cols)

# Cambiar el tamaño de los rectángulos según la cercanía al punto dado
resized_rectangles = resize_rectangles(rectangles, point, max_distance)

# Salida de datos
Rectangles = resized_rectangles