import rhinoscriptsyntax as rs
solid = rs.GetObject("Select object")
result = rs.ExplodePolysurfaces(solid)
points = []
for surf in result:
	temp = rs.DuplicateSurfaceBorder(surf)
	points.extend(rs.PolylineVertices(temp))
unique = rs.CullDuplicatePoints(points)
for pp in unique:
	rs.AddPoint(pp)
	newface = []
	for surf in result:
		if rs.IsPointOnSurface(surf,pp):
			tempa = rs.SurfaceAreaCentroid(surf)
			newface.append(tempa[0])
	newface = rs.SortPointList(newface)
	if len(newface) == 3 or len(newface) == 4:
		rs.AddSrfPt(newface)
	if len(newface) > 4:
		newface.append(newface[0])
		temps = rs.AddPolyline(newface)
		rs.AddPlanarSrf(temps)
rs.DeleteObjects(result)
rs.DeleteObject(solid)
rs.DeleteObjects(temp)