FreeCADドキュメントには作成したシーンの全てのオブジェクトが保持されます。そこには全てのワークベンチで作成したグループ、オブジェクトが含まれます。従ってワークベンチを切り替えた場合でも同じドキュメントで作業を続けることができます。作業物を保存するとドキュメントはディスクに保存されます。またFreeCADでは複数のドキュメントを同時に開いたり、同じドキュメントのビューを複数開くことが可能です。
ドキュメント内ではオブジェクトをグループに移動することが可能です。またオブジェクトには固有の名前が付けられます。グループ、オブジェクト、オブジェクト名の管理は主にツリービューから管理します。もちろんFreeCADの他の全てと同様にPythonインタープリターから処理することも可能です。ツリービューではツリービューまたは各オブジェクトを右クリックすることでグループの作成、オブジェクトのグループへの移動、オブジェクト・グループの削除行うことができます。また名前をダブルクリックすることでオブジェクトの名前を変更できます。それ以外にも現在のワークベンチに応じてさまざまな操作が可能になっています。
FreeCADドキュメント内部のオブジェクトには色々なタイプがあります。各ワークベンチではそのワークベンチ固有のタイプのオブジェクトを作成できます。例えばメッシュワークベンチではメッシュオブジェクトを、パートワークベンチではパートオブジェクトを作成でき、また製図ワークベンチでもパートオブジェクトを作成できる、といった具合になっています。
もしFreeCADで一つでもドキュメントを開いている場合には常にただ一つのアクティブなドキュメントが存在することになります。3Dビューに表示され、現在作業を行なっているドキュメントがそれです。
FreeCADの他のほとんどのものと同様、ユーザーインターフェイス部分(GUI)は基本アプリケーション部分(APP)から独立しています。これはドキュメントについても当てはまることです。ドキュメントも二つの部分から構成されています。オブジェクトを保持すApplicationドキュメントと画面上でのオブジェクトの表示を保持するViewドキュメントです。
オブジェクトが定義されている二つの空間を想像してください。オブジェクトの構造的なパラメーター(立方体なのか?円錐なのか?そのサイズは?)はApplicationドキュメントに保持され、グラフィック表現(黒い線で描画されているのか?青い面があるのか?)はViewドキュメントに保持されます。なぜそんな風になっているのか?それはFreeCADをグラフィックインターフェイス無しでも使えるようにするためです。例えば他のプログラムの内部では画面上に何も書かないでオブジェクトを操作できなくてはなりません。
Viewドキュメント内部にはそれ以外にも3Dビューが保持されています。一つのドキュメントは複数のビューとして開くことができるので、当然、ドキュメントは同時に複数の視点から表示できなくてはならないことがわかります。あなたは作業物の上面図と正面図を同時に見たいと思ったことがあるのではないでしょうか?その場合、同じドキュメントの二つのビューが作られ、それらは両方ともViewドキュメントに保存されます。新しいビューの作成と終了はViewメニューから、またはビューのタブを右クリックすることで可能です。
Pythonインタープリターからドキュメントの作成、アクセス、変更を簡単に行うことができます。以下に例をあげます。
FreeCAD.ActiveDocument
現在の(アクティブな)ドキュメントを返します
FreeCAD.ActiveDocument.Blob
ドキュメント内部の"Blob"という名前のオブジェクトにアクセスします
FreeCADGui.ActiveDocument
現在のドキュメントに関連付けられたViewドキュメントを返します
FreeCADGui.ActiveDocument.Blob
Blobオブジェクトのグラフィック表現(ビュー)部分にアクセスします
FreeCADGui.ActiveDocument.ActiveView
現在のビューを返します