Fcstd file format
The FreeCAD Standard file format (.fcstd) is FreeCAD's main file format. It is a compound format, supports compression and embedding of different kinds of data.
A .fcstd file is in truth nothing else than a .zip file containing .xml files and data files. The .xml files organize the structure of the saved document and how the other data files must be used. In fact, you can always rename a .fcstd file with the .zip extension and open it with any zip application.
This is the structure of a typical fcstd file:
--File.fcstd | --Document.xml --GuiDocument.xml | --Thumbnails | --thumbnail.png | --Templates | --MyPage.svg --Shape1.brep --Shape2.brep --etc...
(TODO: change this by a nice image)
Contents of a .fcstd file
This is the main xml file describing all the objects inside a FreeCAD document, that is, only the geometric and parametric definition of the objects, not their visual representation. If FreeCAD is ran in console mode (without the GUI), only this xml document will be used.
This is the GUI counterpart of the Document.xml file. For each object described in the Document.xml, there is one corresponding object in GuiDocument.xml, describing the visual representation of that object (color, linewidth, etc).
This is a 128x128 pixels thumbnail image of the document, which is a screenshot of the 3D view at save time. Thumbnails are generated only if the corresponding option is enabled in the FreeCAD preferences.
In the Templates folder are stored the template svg files used in Drawing pages.
These are the .brep shapes of all objects that have a Part shape in the Document.xml. Each object, even if it is parametric, has its shape stored as an individual .brep file, so it can be accessed by components without the need to recalculate the shape.