I never had chance to really look into IFC and therefore did not know much about Revit IFC. I had an opportunity to look into it recently when my colleague asked me how to read IFC files exported from Revit.
Thanks to Angel Velez in Revit engineering team for explaining me an answer as following.
The IFC format is text, but not intended to be human-readable and to understand without IFC knowledge. However, there are lines like
#13774=IFCRELCONTAINEDINSPATIALSTRUCTURE('1ItGejZxT16AtCzq9KgA$h',#14,$,
$,(#64263,#64264,#64265,#12236,#64266,#12237,#64267,#64268,#64269,#64270)
That contains a list of all of the top-level entities in the file, usually contained in a base level. You can then track down those line numbers to get the top level IFCWALL, IFCDOOR, whatever. There is a tag for each of these that if it came from a Revit file, will be the element id.
A non-programmer could not be expected to write IFC code, other than very simple things.
For Revit IFC export feature in Revit products, Revit engineering decides how Revit elements are written out in the IFC format in combination with buildingSMART that publishes the requirements of how elements are supposed to be written out.
Here are the links of buildingSMART if you are interested.
http://www.buildingsmart.com
http://www.buildingsmart-tech.org/specifications/ifc-overview
It is never a simple one-line for any element; there are many lines for a Revit element.
Autodesk Revit IFC Exporter code is available as Open Source Software at sourceforge.net/projects/ifcexporter. Anyone who wanted to add to the Open Source would really have to:
1. Know Revit
2. Know Revit API
3. Know IFC
4. Know how to program in C# .NET
Please visit Jeremy’s blog post for Revit IFC for futher reading.
Well, I am glad if you now know what takes to become an expert.