App DocumentObjectGroup: Difference between revisions

From FreeCAD Documentation
(→‎Properties: See the properties in the Std Group page.)
No edit summary
 
(9 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 [[tree view|tree view]] no matter its type of data.
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 the [[tree_view|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|Group]]}} button in the structure toolbar. An empty Group is created.
# 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 [[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]].
# 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-->
See the [[Std_Group|Std Group]] page for the complete information, including its use in [[Std_Group#Scripting|Scripting]].
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-->
See the properties in the [[Std_Group|Std Group]] page.
See the properties in the [[Std_Group|Std Group]] page.


== 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}}
{{Userdocnavi}}
</translate>
</translate>
{{Std Base navi{{#translation:}}}}
{{Document objects navi{{#translation:}}}}
{{Userdocnavi{{#translation:}}}}

Latest revision as of 10:27, 19 January 2024

Other languages:

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

  1. Press the Std Group button in the structure toolbar. An empty Group is created.
  2. To add objects to a Group, select them in the tree view, and then drag and drop them over the Group.
  3. 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.