Some Basic Surfaces1

4-nodes Isoparametric Surfaces

A 4-nodes isoparametric surface is a surface which takes 4 corner points as parameters.

(1)
\begin{align} r\left(u,v\right)=N^1\boldsymbol{p}_1+N^2\boldsymbol{p}_2+N^3\boldsymbol{p}_3+N^4\boldsymbol{p}_4 \\ \end{align}
(2)
\begin{align} N^1=(1-u)(1-v) \\ N^2=(1-u)v \\ N^3=u(1-v) \\ N^4=(u)(v) \end{align}

First, we start with definitions of lambda functions as translations of the mathematical expressions described above.
This is a Python code for a GhPython component which takes P1,…,P4 as input parameters. They must be specified as Point3d type parameters in advance.

import rhinoscriptsyntax as rs
import Rhino.Geometry as rg
N1=lambda u,v:(1-u)*(1-v)
N2=lambda u,v:(1-u)*(v)
N3=lambda u,v:(u)*(1-v)
N4=lambda u,v:(u)*(v)
func=lambda (u,v):N1(u,v)*P1+N2(u,v)*P2+N3(u,v)*P3+N4(u,v)*P4

And your Grasshopper must looks like
01.png
(SrfGrid is optional)
Then, in order to generate the surface, it follows like
dots=list()
for i in rs.frange(0,1.01,0.1):
    for j in rs.frange(0,1.01,0.1):
        dots.append((i,j))
points=map(func,dots)
a=list()
for point in points:
    a.append(point)

02.png
You can also configure multiple GhPython Component like
03.png
Then, you may get
04.png