Dear Ed,
Have you explored what support Revit provides for this through the user interface?
It would help a lot to know the optimal UI workflow and best practices before diving into the API side of things.
In general, if a feature is not available in the Revit product manually through the user interface, then the Revit API will not provide it either.
Therefore, before thinking about possibly automating any task, it is important to explore the possibilities and develop an optimal solution through the user interface first. For that, I would suggest asking an application engineer, product usage expert, or product support for help on finding a suitable workflow and laying down best practices.
I can think of various way to achieve what you are asking for just analysing the geometry, but that might be complex and would certainly generate different results than the 'official' Revit UI ones.
Actually, on second thoughts, retrieving the gross floor area programmatically seems like a very simple task.
First, determine the top or bottom face of the floor slab:
http://thebuildingcoder.typepad.com/blog/2008/10/slab-boundary.html
Next, calculate its area:
http://thebuildingcoder.typepad.com/blog/2008/12/2d-polygon-areas-and-outer-loop.html
For the net area, determine the bottom faces of all the walls that you wish to subtract:
http://thebuildingcoder.typepad.com/blog/2009/08/bottom-face-of-a-wall.html
Then subtract them.
But, as said, I would explore the officially supported UI possibilities fully before resorting to pure geometrical analysis.
Cheers,
Jeremy