App DocumentObject
Introduction
An App DocumentObject object, or formally an App::DocumentObject
, is the base class of all object classes handled in the document.
Simplified diagram of the relationships between the core objects in the program. The App::DocumentObject
class is the base class of essentially all objects in the software.
How to use
The App DocumentObject is an internal object, so it cannot be created from the graphical interface. It is not meant to be used directly; rather, it is meant to be sub-classed by classes that will handle different types of data. Therefore, almost every object in the software, that is, every element that has an icon and that can be listed in the tree view, is a "DocumentObject".
Some of the most important DocumentObjects are the following:
- The App GeoFeature class, which is the base object of all geometrical objects, that is, of objects that have a Placement property that defines their position in the 3D view.
- The Part Feature class, which is derived from App GeoFeature, and which is the parent class of objects with 2D and 3D shapes.
Properties
These are the basic properties that essentially all objects have. These properties can be accessed from the Python console.
- DataExpressionEngine: a list of expressions that can be used.
- DataLabel: the user editable name of this object.
- DataLabel2: a longer, user editable description of this object.
- DataVisibility: whether to display the object or not.
Scripting
See also: FreeCAD Scripting Basics, and scripted objects.
See Part Feature for the general information on adding objects to the program
A DocumentObject is created with the addObject()
method of the document. However, in general, there is no need to create this object manually. It is usually better to create one of the sub-classes, for example, Part::Feature
, Part::Part2DObject
, or App::FeaturePython
.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::DocumentObject", "Name")
obj.Label = "Custom label"
- Getting started
- Installation: Download, Windows, Linux, Mac, Additional components, Docker, AppImage, Ubuntu Snap
- Basics: About FreeCAD, Interface, Mouse navigation, Selection methods, Object name, Preferences, Workbenches, Document structure, Properties, Help FreeCAD, Donate
- Help: Tutorials, Video tutorials
- Workbenches: Std Base, Arch, Assembly, CAM, Draft, FEM, Inspection, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub