When I created the "house" in 3dsMax, I assigned them there. I exported to a .x file in the media directory. The .x file has the textures assigned to the mesh so when GDK loads it, it also loads the textures and assigns them. This method is not something you would want to use if you had different objects using the same texture because it would be a waste of memory to load each of the textures more than once. To do it manually, do dbTextureLimb(...) on each of the limbs of the mesh and it will come out fine. The bigest problem is knowing which "limb" is which. You can assign unique names to each object within the scene (in 3dsMax) and then loop through the limbs in GDK:
dbPerformCheckListForObjectLimbs ( int iObject );
for (int i=1;i<dbCheckListQuantity();i++){
char Name[50];//don't think you would have a name that large
strcpy(Name,dbCheckListString(i));
if (strcmp(Name,"InterriorWall")==0) dbTextureLimb(obj,i,1);//assumed you have texture at value 1 already loaded
if (strcmp(Name,"Railing")==0) dbTextureLimb(obj,i,2);//assumed you have texture at value 2 already loaded
..... and so on.....
}
The fastest code is the code never written.