Evolutionary structural optimisation based on boundary representation of NURBS. Part II: 3D algorithms