import bpy
vertsData=[(1,-1,-1),(1,-1,1),(-1,-1,1),(-1,-1,-1),(1,1,-1),(1,1,1),(-1,1,1),(-1,1,-1)]
edgesData=[(0,1),(0,2),(0,3),(0,4),(0,5),(0,6),(0,7),(0,8)] # for example
facesData=[(0,1,2,3),(4,7,6,5),(1,5,6,2),(2,6,7,3),(4,0,3,7)]
# create new mesh structure
mesh = bpy.data.meshes.new("myMesh_mesh")
mesh.from_pydata(vertsData, edgesData, facesData)
mesh.update()
new_object = bpy.data.objects.new("myMesh_object", mesh)
new_object.data = mesh
scene = bpy.context.scene
scene.objects.link(new_object)
scene.objects.active = new_object
new_object.select = True
or
import bpy
vertsData=[(1,-1,-1),(1,-1,1),(-1,-1,1),(-1,-1,-1),(1,1,-1),(1,1,1),(-1,1,1),(-1,1,-1)]
facesData=[(0,1,2,3),(4,7,6,5),(1,5,6,2),(2,6,7,3),(4,0,3,7)]
# create new mesh structure
mesh = bpy.data.meshes.new("myMesh_mesh")
mesh.from_pydata(vertsData, [], facesData)
mesh.update()
new_object = bpy.data.objects.new("myMesh_object", mesh)
new_object.data = mesh
scene = bpy.context.scene
scene.objects.link(new_object)
scene.objects.active = new_object
new_object.select = True
i guess you mentioned from_pydata, i hadn’t seen it when i wrote the reply.