I make a surface using:

```
srfGeo = NurbsSurface.CreateThroughPoints(pts, nx, ny, 3, 3, False, False)
```

I can evaluate this surface using u & v parameters:

```
for pt in zPts:
# Find conformal z for each vertice in mesh.
x,y,z = pt.X, pt.Y, pt.Z
if x >= minX and x <= maxX and y >= minY and y <= maxY:
# Initial u,v guess; scale mesh x,y by max(u,v)/max(x,y) of land.
u, v = x*x_scale, y*y_scale
ps = srfGeo.PointAt(u,v)
```

I save this surface to the document:

```
# Add surface to document on layer Bare Earth.
bare_earth = doc.Objects.AddSurface(srfGeo)
if not rs.IsLayer('Tree Orchard'): tree_orchard_index = setupLayer(True,'Tree Orchard')
bare_earth_index = setupLayer(True,'Bare Earth',None,'Tree Orchard',False)
setLayer([bare_earth], bare_earth_index)
```

I try to recover the geometry for this surface the next time I invoke my GUI:

```
def getGeo(id):
obj = doc.Objects.Find(id)
return obj.Geometry
if rs.IsLayer('Bare Earth') and rs.ObjectsByLayer('Bare Earth', False):
objs = rs.ObjectsByLayer('Bare Earth', False)
# Set values for bare earth related constants.
if len(objs) == 1:
print '1 bare earth found.'
bare_earth = objs[0]
print getGeo(bare_earth)
srfGeo = getGeo(bare_earth)
# Setup x,y scaling and surface for evaluation.
u_range, v_range = srfGeo.Domain(0), srfGeo.Domain(1)
```

But the last line fails with the message:

```
Message: 'NoneType' object has no attribute 'Domain'
```

When I print srfGeo it says:

`<Rhino.Geometry.Brep object at 0x0000000000000088 [Rhino.Geometry.Brep]>`

I have tried to figure out what to do with the brep but so far I have not found the right technology to penetrate its cloaking shield.

How do I get this to work so I can recover the surface geometry and access points using u & v parameters?

Please help.

Regards,

Terry.