I would basically skip FreeCAD and use IfcOpenShell directly (it is what we use in FreeCAD to import/export IFC files).
The FreeCAD code that deals with IfcOpenShell is
https://github.com/FreeCAD/FreeCAD/blob ... portIFC.py
Basically IfcOpenShell can parse an IFC file for you, and present a nice python interface from which you can query the file, its entities and attributes/properties elegantly. There is not much of an API doc, but it is pretty easy to use, basically open a file with f = ifcopenshell.open(file) then the f object will have several methods to query its contents, or you can even get an entity directly by its id numer, like f[350]
The IFC format can be quite complex, specially the inter-entity relationships, so you'll probably need to refer to the buildingsmart docs quite often, I'm sorry to inform you
(the IFC4 doc is a little bit better...
http://www.buildingsmart-tech.org/ifc/IFC4/Add2/html/ )