App DocumentObjectGroup: Difference between revisions
(An App DocumentObjectGroup object, or formally an App::DocumentObjectGroup, is a simple element that allows grouping any type of App DocumentObject in the tree view, without worrying about its type of data.) |
No edit summary |
||
(12 intermediate revisions by 5 users not shown) | |||
Line 1: | Line 1: | ||
<languages/> |
<languages/> |
||
<translate> |
<translate> |
||
{{Message|Do no translate, this information will be moved to [[Std_Group]]}} |
|||
== Introduction == |
== Introduction == <!--T:1--> |
||
</translate> |
</translate> |
||
Line 9: | Line 8: | ||
<translate> |
<translate> |
||
<!--T:2--> |
|||
An [[App_DocumentObjectGroup|App DocumentObjectGroup]] object, or formally an {{incode|App::DocumentObjectGroup}}, is a simple element that allows grouping any type of [[App_DocumentObject|App DocumentObject]] in the [[ |
An [[App_DocumentObjectGroup|App DocumentObjectGroup]] object, or formally an {{incode|App::DocumentObjectGroup}}, is a simple element that allows grouping any type of [[App_DocumentObject|App DocumentObject]] in the [[Tree_view|tree view]] no matter its type of data. |
||
<!--T:3--> |
|||
It was developed to organize the objects in tree view in a way that is logical for the user |
It was developed to organize the objects in the [[Tree_view|tree view]] in a way that is logical for the user. |
||
<!--T:4--> |
|||
[[File:FreeCAD_core_objects.svg|800px]] |
[[File:FreeCAD_core_objects.svg|800px]] |
||
<!--T:5--> |
|||
{{Caption|Simplified diagram of the relationships between the core objects in the program. The {{incode|App::DocumentObjectGroup}} class has an extension that allows it to group any type of object; the Group itself doesn't have many properties.}} |
{{Caption|Simplified diagram of the relationships between the core objects in the program. The {{incode|App::DocumentObjectGroup}} class has an extension that allows it to group any type of object; the Group itself doesn't have many properties.}} |
||
==Usage== <!--T:6--> |
|||
== How to use == |
|||
<!--T:7--> |
|||
# Press the {{Button|[[File:Std_Group.svg|16px]] [[Std_Group|Std Group]]}} button in the structure toolbar. An empty Group is created. |
|||
# To add objects to a Group, select them in the [[Tree_view|tree view]], and then drag and drop them over the Group. |
|||
# To remove objects from a Group, drag them out of the Group, and onto the document label at the top of the [[Tree_view|tree view]]. |
|||
<!--T:8--> |
|||
It can also be created from the [[Python console|Python console]] as described in the [[App_DocumentObjectGroup#Scripting|Scripting]] section. |
|||
See the [[Std_Group|Std Group]] page for the complete information, including its use in [[Std_Group#Scripting|Scripting]]. |
|||
== Properties == |
== Properties == <!--T:9--> |
||
<!--T:10--> |
|||
An [[App_DocumentObjectGroup|App DocumentObjectGroup]] ({{incode|App::DocumentObjectGroup}} class) is derived from the basic [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), therefore it shares all the latter's properties. |
An [[App_DocumentObjectGroup|App DocumentObjectGroup]] ({{incode|App::DocumentObjectGroup}} class) is derived from the basic [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), therefore it shares all the latter's properties. |
||
<!--T:11--> |
|||
In addition to the properties described in [[App_DocumentObject|App DocumentObject]], the App DocumentObjectGroup has some properties that help it manage objects, like {{PropertyData|Group}}. |
|||
See the properties in the [[Std_Group|Std Group]] page. |
|||
See [[Property|Property]] for all property types that scripted objects can have. |
|||
These are the properties available in the [[property editor|property editor]]. Hidden properties can be shown by using the {{MenuCommand|Show all}} command in the context menu of the [[property editor|property editor]]. |
|||
=== Data === |
|||
{{TitleProperty|Base}} |
|||
* {{PropertyData|Label|String}}: the user editable name of this object, it is an arbitrary UTF8 string. |
|||
* {{PropertyData|Group|LinkList}}: a list of referenced objects. By default, it is empty {{value|[]}}. |
|||
==== Hidden properties Data ==== |
|||
* {{PropertyData|Expression Engine|ExpressionEngine}}: a list of expressions. By default, it is empty {{value|[]}}. |
|||
* {{PropertyData|Label2|String}}: a longer, user editable description of this object, it is an arbitrary UTF8 string that may include newlines. By default, it is an empty string {{value|""}}. |
|||
* {{PropertyData|Proxy|PythonObject}}: a custom class associated with this object. This only exists for the [[App_DocumentObjectGroup#Scripting|Python version]]. |
|||
* {{PropertyData|Visibility|Bool}}: whether to display the object or not. |
|||
* {{PropertyData|_ Group Touched|Bool}}: whether the group is touched or not. |
|||
=== View === |
|||
The App DocumentObjectGroup has five properties of the basic [[App_GeoFeature|App GeoFeature]], but it isn't derived from it. |
|||
{{TitleProperty|Base}} |
|||
* {{PropertyView|Display Mode|Enumeration}}: by default it's empty. |
|||
* {{PropertyView|On Top When Selected|Enumeration}}: {{value|Disabled}} (default), {{value|Enabled}}, {{value|Object}}, {{value|Element}}. |
|||
* {{PropertyView|Selection Style|Enumeration}}: {{value|Shape}} (default), {{value|BoundBox}}. If the option is {{value|Shape}}, the entire shape (vertices, edges, and faces) will be highlighted in the [[3D view|3D view]]; if it is {{value|BoundBox}} only the bounding box will be highlighted. |
|||
* {{PropertyView|Show In Tree|Bool}}: if it is {{TRUE}}, the object appears in the [[tree view|tree view]]. Otherwise, it is set as invisible. |
|||
* {{PropertyView|Visibility|Bool}}: if it is {{TRUE}}, the object appears in the [[3D view|3D view]]; otherwise it is invisible. By default this property can be toggled on and off by pressing the {{KEY|Space}} bar in the keyboard. |
|||
==== Hidden properties View ==== |
|||
* {{PropertyView|Proxy|PythonObject}}: a custom class associated with this object. This only exists for the [[App_DocumentObjectGroup#Scripting|Python version]]. |
|||
== Scripting == |
|||
{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]]. |
|||
An App DocumentObjectGroup is created with the {{incode|addObject()}} method of the document. Once a Group exists, other objects can be added to it with the {{incode|addObject()}} or {{incode|addObjects()}} methods of this Group. |
|||
</translate> |
|||
{{Code|code= |
|||
import FreeCAD as App |
|||
doc = App.newDocument() |
|||
obj = App.ActiveDocument.addObject("App::DocumentObjectGroup", "Group") |
|||
bod1 = App.ActiveDocument.addObject("PartDesign::Body", "Body") |
|||
bod2 = App.ActiveDocument.addObject("Part::Box", "Box") |
|||
obj.addObjects([bod1, bod2]) |
|||
App.ActiveDocument.recompute() |
|||
}} |
|||
<translate> |
|||
This basic {{incode|App::DocumentObjectGroup}} doesn't have a Proxy object so it can't be fully used for sub-classing. |
|||
Therefore, for [[Python|Python]] scripting, the recommendation is to create the {{incode|App::DocumentObjectGroupPython}} object. |
|||
</translate> |
|||
{{Code|code= |
|||
import FreeCAD as App |
|||
doc = App.newDocument() |
|||
obj = App.ActiveDocument.addObject("App::DocumentObjectGroupPython", "Name") |
|||
obj.Label = "Custom label" |
|||
}} |
|||
<translate> |
|||
For example, a [[FEM Analysis|FEM Analysis]] is an {{incode|App::DocumentObjectGroupPython}} object with a custom icon and additional properties. |
|||
{{Std Base}} |
|||
⚫ | |||
</translate> |
</translate> |
||
{{Std Base navi{{#translation:}}}} |
|||
{{Document objects navi{{#translation:}}}} |
|||
⚫ |
Latest revision as of 10:27, 19 January 2024
Introduction
An App DocumentObjectGroup object, or formally an App::DocumentObjectGroup
, is a simple element that allows grouping any type of App DocumentObject in the tree view no matter its type of data.
It was developed to organize the objects in the tree view in a way that is logical for the user.
Simplified diagram of the relationships between the core objects in the program. The App::DocumentObjectGroup
class has an extension that allows it to group any type of object; the Group itself doesn't have many properties.
Usage
- Press the Std Group button in the structure toolbar. An empty Group is created.
- To add objects to a Group, select them in the tree view, and then drag and drop them over the Group.
- To remove objects from a Group, drag them out of the Group, and onto the document label at the top of the tree view.
See the Std Group page for the complete information, including its use in Scripting.
Properties
An App DocumentObjectGroup (App::DocumentObjectGroup
class) is derived from the basic App DocumentObject (App::DocumentObject
class), therefore it shares all the latter's properties.
See the properties in the Std Group page.
- File: New, Open, Close, Close All, Save, Save As, Save a Copy, Save All, Revert, Import, Export,Merge project, Project information, Print, Print preview, Export PDF, Recent files, Exit
- Edit: Undo, Redo, Cut, Copy, Paste, Duplicate selection, Refresh, Box selection, Box element selection, Select All, Delete, Send to Python Console, Placement, Transform, Alignment, Toggle Edit mode, Edit mode, Preferences
- View:
- Miscellaneous: Create new view, Orthographic view, Perspective view, Fullscreen, Bounding box, Toggle axis cross, Clipping plane, Texture mapping, Toggle navigation/Edit mode, Appearance, Random color, Workbench, Status bar
- Standard views: Fit all, Fit selection, Isometric, Dimetric, Trimetric, Home, Front, Top, Right, Rear, Bottom, Left, Rotate Left, Rotate Right
- Freeze display: Save views, Load views, Freeze view, Clear views
- Draw style: As is, Points, Wireframe, Hidden line, No shading, Shaded, Flat lines
- Stereo: Stereo red/cyan, Stereo quad buffer, Stereo Interleaved Rows, Stereo Interleaved Columns, Stereo Off, Issue camera position
- Zoom: Zoom In, Zoom Out, Box zoom
- Document window: Docked, Undocked, Fullscreen
- Visibility: Toggle visibility, Show selection, Hide selection, Select visible objects, Toggle all objects, Show all objects, Hide all objects, Toggle selectability, Toggle measurement, Clear measurement
- Toolbars: File, Edit, Clipboard, Workbench, Macro, View, Structure, Help
- Panels: Tree view, Property view, Selection view, Tasks, Python console, DAG view, Model, Report view
- Link navigation: Go to linked object, Go to the deepest linked object, Select all links
- Tree view actions: Sync view, Sync selection, Sync placement, Pre-selection, Record selection, Single document, Multi document, Collapse/Expand, Initiate dragging, Go to selection, Selection Back, Selection Forward
- Tools: Edit parameters, Save image, Load image, Scene inspector, Dependency graph, Project utility, Measure distance, Add text document, View turntable, Units calculator, Customize, Addon manager
- Macro: Macro recording, Macros, Recent macros, Execute macro, Attach to remote debugger, Debug macro, Stop debugging, Step over, Step into, Toggle breakpoint
- Help: Help, FreeCAD Website, Donate, Users documentation, Python scripting documentation, Automatic Python modules documentation, FreeCAD Forum, FreeCAD FAQ, Report a bug, About FreeCAD, What's This
- Core: App DocumentObject
- Basic: App FeaturePython, App GeoFeature, Part Feature, Mesh Feature, Fem FemMeshObject
- Internal shapes: Part TopoShape, Mesh MeshObject, Fem FemMesh
- Structure: App DocumentObjectGroup (Std Group), App Part (Std Part), App Link (Std LinkMake)
- Derived: Part Part2DObject, Sketcher SketchObject, PartDesign Body, PartDesign Feature
- 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, Assembly, BIM, 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