Oh ok, try looking in the header files, there are a few undocumented commands, you may be able to write a function that gets that info for you.
Here are a few commands:
void dbLockVertexDataForLimb ( int iID, int iLimbID, int iReplaceOrUpdate );
void dbLockVertexDataForLimb ( int iID, int iLimbID );
void dbLockVertexDataForMesh ( int iID );
void dbUnlockVertexData ( void );
void dbSetVertexDataPosition ( int iVertex, float fX, float fY, float fZ );
void dbSetVertexDataNormals ( int iVertex, float fNX, float fNY, float fNZ );
void dbSetVertexDataDiffuse ( int iVertex, DWORD dwDiffuse );
void dbSetVertexDataUV ( int iVertex, float fU, float fV );
void dbSetVertexDataSize ( int iVertex, float fSize );
void dbSetIndexData ( int iIndex, int iValue );
void dbSetVertexDataUV ( int iVertex, int iIndex, float fU, float fV );
void dbAddMeshToVertexData ( int iMeshID );
void dbDeleteMeshFromVertexData ( int iVertex1, int iVertex2, int iIndex1, int iIndex2 );
void dbPeformCSGUnionOnVertexData ( int iBrushMeshID );
void dbPeformCSGDifferenceOnVertexData ( int iBrushMeshID );
void dbPeformCSGIntersectionOnVertexData ( int iBrushMeshID );
int dbGetVertexDataVertexCount ( void );
int dbGetVertexDataIndexCount ( void );
float dbGetVertexDataPositionX ( int iVertex );
float dbGetVertexDataPositionY ( int iVertex );
float dbGetVertexDataPositionZ ( int iVertex );
float dbGetVertexDataNormalsX ( int iVertex );
float dbGetVertexDataNormalsY ( int iVertex );
float dbGetVertexDataNormalsZ ( int iVertex );
DWORD dbGetVertexDataDiffuse ( int iVertex );
float dbGetVertexDataU ( int iVertex );
float dbGetVertexDataV ( int iVertex );
float dbGetVertexDataU ( int iVertex, int iIndex );
float dbGetVertexDataV ( int iVertex, int iIndex );
int dbGetIndexData ( int iIndex );
I have not done anything like this for a while but it might be as simple as geting the amount of verts and dividing by three, depending on how the model is set up.
If you do write something then it would be great if you could share it with us