Difference between revisions of "Std Group"

From FreeCAD Documentation
Jump to navigation Jump to search
(Move language bar to top.)
 
(29 intermediate revisions by 7 users not shown)
Line 1: Line 1:
 
<languages/>
 
<languages/>
 
<translate>
 
<translate>
 
+
<!--T:19-->
 +
{{Docnav
 +
|[[Std_Part|Part]]
 +
|[[Std_LinkMake|LinkMake]]
 +
|[[Std_Base|Std Base]]
 +
|IconL=Std_Part.svg
 +
|IconR=Std_LinkMake.svg
 +
|IconC=Freecad.svg
 +
}}
  
 
<!--T:1-->
 
<!--T:1-->
{{GuiCommand|Name=Std Group|MenuLocation=Tree View → Right click on the document name||Workbenches=All|Shortcut=|SeeAlso=[[Draft_SelectGroup|Draft SelectGroup]], [[Draft_AddToGroup|Draft AddToGroup]]}}
+
{{GuiCommand
 +
|Name=Std Group
 +
|MenuLocation=[[Tree_view|Tree view]] → Right click on the document name → Create group
 +
|Workbenches=All
 +
|Shortcut=
 +
|Version=
 +
|SeeAlso=[[Std_Part|Std Part]], [[Draft_SelectGroup|Draft SelectGroup]], [[Draft_AddToGroup|Draft AddToGroup]]
 +
}}
  
 
==Description== <!--T:2-->
 
==Description== <!--T:2-->
  
 +
<!--T:3-->
 +
[[Std_Group|Std Group]] (internally called [[App_DocumentObjectGroup|App DocumentObjectGroup]]) is a general purpose container that allows you to group different types of objects in the [[tree_view|tree view]], regardless of their data type. It is used as a simple folder to categorize and organize the objects in your model, in order to keep a logical structure. Std Groups may be nested inside other Std Groups.
 +
 +
<!--T:27-->
 +
The Std Group tool is not defined by a particular workbench, but by the base system, thus it is found in the {{MenuCommand|structure toolbar}} that is available in all [[Workbenches|workbenches]].
 +
 +
<!--T:28-->
 +
To group 3D objects as a single unit, with the intention of creating assemblies, use [[Std_Part|Std Part]] instead.
  
<!--T:3-->
+
<!--T:7-->
This command lets you create a group in the tree view.
+
[[File:Std_Group_example.png]]
<br />
 
It can be used for organizing the structure of your model.
 
  
==Use== <!--T:4-->
+
<!--T:29-->
 +
{{Caption|Various elements inside Std Groups in the tree view.}}
  
 +
==Usage== <!--T:4-->
  
 
<!--T:5-->
 
<!--T:5-->
Right-click on the name of your FreeCAD-document in the tree-view and choose "create group".
+
# Click on the name of the document in the [[tree_view|tree view]], open the context menu (right click), and choose {{Button|Create group}}.
<br />
+
# Alternatively, press the {{Button|[[Image:Std_Group.svg|16px]] [[Std_Group|Group]]}} button in the structure toolbar. An empty Group is created.
A group will be created automatically and give the icon of a directory and an automatically chosen name.
+
# To add objects to a Group, select them in [[tree_view|tree view]], and then drag and drop them over the Group.
<br />
+
# 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]].
You can rename the group by right-clicking on the group and choosing "rename" or using "F2" on your keyboard.
 
<br />
 
Push FreeCAD-objects into the group or pull them out of the group by clicking on the desired object,
 
<br />
 
keep left-mouse button pressed and using drag&drop-style to drag the object to desired new location.
 
<br />
 
As long as there is a "circle with a diagonal line"-sign below the cursor you can't drop your object here.
 
<br />
 
As soon as the sign changes to a "plus"-symbol it is possible to drop your object here.
 
<br />
 
  
<!--T:6-->
+
=== Notes === <!--T:30-->
# Right click on active document or on existing group in the [[Document structure|Tree View]] and select {{KEY|Create Group...}}
 
# Drag-n-drop objects into the group
 
  
 +
<!--T:31-->
 +
* The Group object does not affect the positions in the [[3D_view|3D view]] of the elements that it contains; it is essentially just a folder that is used to keep the [[tree_view|tree view]] organized.
 +
* The Group can also be created from the [[Python console|Python console]], and sub-classed to create special "groups", as indicated in the [[Std_Group#Scripting|Scripting]] section.
  
<!--T:7-->
+
==Properties== <!--T:10-->
[[Image:group_with_objects.png|300px]]
+
 
 +
<!--T:32-->
 +
A [[Std_Group|Std Group]] is internally called [[App_DocumentObjectGroup|App DocumentObjectGroup]] ({{incode|App::DocumentObjectGroup}} class), and is derived from the basic [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), therefore it shares all the latter's properties.
 +
 
 +
<!--T:33-->
 +
In addition to the properties described in [[App_FeaturePython|App FeaturePython]], which is the most basic instance of an [[App_DocumentObject|App DocumentObject]], the App DocumentObjectGroup has the {{PropertyData|Group}} property.
  
==Options== <!--T:8-->
+
<!--T:34-->
 +
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]].
  
<!--T:9-->
+
=== Data === <!--T:35-->
* To rename the group select a group and press {{KEY|F2}}, or right click a group and select {{KEY|Rename}}
 
  
==Properties== <!--T:10-->
+
<!--T:36-->
 +
{{TitleProperty|Base}}
  
 
<!--T:11-->
 
<!--T:11-->
* {{PropertyData|Label}}: Name of the group
+
* {{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 ==== <!--T:37-->
 +
 
 +
<!--T:38-->
 +
* {{PropertyData|Proxy|PythonObject}}: a custom class associated with this object. This only exists for the [[Python|Python]] version. See [[Std_Group#Scripting|Scripting]].
 +
 
 +
=== View === <!--T:39-->
 +
 
 +
<!--T:40-->
 +
{{TitleProperty|Base}}
 +
 
 +
<!--T:41-->
 +
See [[App_FeaturePython|App FeaturePython]] for the basic view properties.
 +
 
 +
==== Hidden properties View ==== <!--T:42-->
 +
 
 +
<!--T:43-->
 +
* {{PropertyView|Proxy|PythonObject}}: a custom view provider class associated with this object. This only exists for the [[Python|Python]] version. See [[Std_Group#Scripting|Scripting]].
 +
 
 +
== Inheritance == <!--T:23-->
 +
 
 +
<!--T:24-->
 +
A [[Std Group|Std Group]] is formally an instance of the class {{incode|App::DocumentObjectGroup}}, whose parent is the basic [[App_DocumentObject|App DocumentObject]] ({{incode|App::DocumentObject}} class), and is augmented with a Group extension.
 +
 
 +
<!--T:25-->
 +
[[File:FreeCAD_core_objects.svg|800px]]
 +
 
 +
<!--T:26-->
 +
{{Caption|Simplified diagram of the relationships between the core objects in the program. The {{incode|App::DocumentObjectGroup}} class is a simple container which uses the Group extension to be able to hold any type of object.}}
  
 
==Scripting== <!--T:12-->
 
==Scripting== <!--T:12-->
  
 
<!--T:13-->
 
<!--T:13-->
Following command adds new group to the active document:
+
{{Emphasis|See also:}} [[FreeCAD Scripting Basics|FreeCAD Scripting Basics]], and [[scripted objects|scripted objects]].
 +
 
 +
<!--T:44-->
 +
See [[Part_Feature|Part Feature]] for the general information on adding objects to the document.
  
 +
<!--T:45-->
 +
A Std Group ([[App_DocumentObjectGroup|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>
 
</translate>
 
{{Code|code=
 
{{Code|code=
App.ActiveDocument.addObject("App::DocumentObjectGroup","Group")
+
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>
 
<translate>
==Limitations== <!--T:14-->
 
  
<!--T:15-->
+
<!--T:46-->
Command needs an open FreeCAD-document to work.
+
This basic {{incode|App::DocumentObjectGroup}} doesn't have a Proxy object so it can't be fully used for sub-classing.
 +
 
 +
<!--T:47-->
 +
Therefore, for [[Python|Python]] subclassing, you should 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>
 +
 
 +
<!--T:48-->
 +
For example, a [[FEM Analysis|FEM Analysis]] is an {{incode|App::DocumentObjectGroupPython}} object with a custom icon and additional properties.
  
 
==Links== <!--T:16-->
 
==Links== <!--T:16-->
Line 72: Line 151:
 
* [[Document_structure|Document structure]]
 
* [[Document_structure|Document structure]]
 
* [http://www.freecadweb.org/wiki/index.php?title=Arch_tutorial#Organizing_your_model Organizing your model]
 
* [http://www.freecadweb.org/wiki/index.php?title=Arch_tutorial#Organizing_your_model Organizing your model]
* [[Ways_To_Organize_Objects|Organize objects in the document]]
 
 
==Notes== <!--T:18-->
 
  
  
 +
<!--T:20-->
 +
{{Docnav
 +
|[[Std_Part|Part]]
 +
|[[Std_LinkMake|LinkMake]]
 +
|[[Std_Base|Std Base]]
 +
|IconL=Std_Part.svg
 +
|IconR=Std_LinkMake.svg
 +
|IconC=Freecad.svg
 +
}}
  
 
</translate>
 
</translate>
 +
{{Std Base navi{{#translation:}}}}
 +
{{Userdocnavi{{#translation:}}}}
 +
{{clear}}

Latest revision as of 21:41, 21 December 2020

Other languages:
Deutsch • ‎English • ‎Türkçe • ‎español • ‎français • ‎italiano • ‎polski • ‎română • ‎русский • ‎한국어
Arrow-left.svg Previous: Std Part.svg Part
Next: LinkMake Std LinkMake.svg Arrow-right.svg

Std Group.svg Std Group

Menu location
Tree view → Right click on the document name → Create group
Workbenches
All
Default shortcut
Introduced in version
See also
Std Part, Draft SelectGroup, Draft AddToGroup

Description

Std Group (internally called App DocumentObjectGroup) is a general purpose container that allows you to group different types of objects in the tree view, regardless of their data type. It is used as a simple folder to categorize and organize the objects in your model, in order to keep a logical structure. Std Groups may be nested inside other Std Groups.

The Std Group tool is not defined by a particular workbench, but by the base system, thus it is found in the structure toolbar that is available in all workbenches.

To group 3D objects as a single unit, with the intention of creating assemblies, use Std Part instead.

Std Group example.png

Various elements inside Std Groups in the tree view.

Usage

  1. Click on the name of the document in the tree view, open the context menu (right click), and choose Create group.
  2. Alternatively, press the Std Group.svg Group button in the structure toolbar. An empty Group is created.
  3. To add objects to a Group, select them in tree view, and then drag and drop them over the Group.
  4. To remove objects from a Group, drag them out of the Group, and onto the document label at the top of the tree view.

Notes

  • The Group object does not affect the positions in the 3D view of the elements that it contains; it is essentially just a folder that is used to keep the tree view organized.
  • The Group can also be created from the Python console, and sub-classed to create special "groups", as indicated in the Scripting section.

Properties

A Std Group is internally called App DocumentObjectGroup (App::DocumentObjectGroup class), and is derived from the basic App DocumentObject (App::DocumentObject class), therefore it shares all the latter's properties.

In addition to the properties described in App FeaturePython, which is the most basic instance of an App DocumentObject, the App DocumentObjectGroup has the DataGroup property.

These are the properties available in the property editor. Hidden properties can be shown by using the Show all command in the context menu of the property editor.

Data

Base

  • DataLabel (String): the user editable name of this object, it is an arbitrary UTF8 string.
  • DataGroup (LinkList): a list of referenced objects. By default, it is empty [].

Hidden properties Data

  • DataProxy (PythonObject): a custom class associated with this object. This only exists for the Python version. See Scripting.

View

Base

See App FeaturePython for the basic view properties.

Hidden properties View

  • ViewProxy (PythonObject): a custom view provider class associated with this object. This only exists for the Python version. See Scripting.

Inheritance

A Std Group is formally an instance of the class App::DocumentObjectGroup, whose parent is the basic App DocumentObject (App::DocumentObject class), and is augmented with a Group extension.

FreeCAD core objects.svg

Simplified diagram of the relationships between the core objects in the program. The App::DocumentObjectGroup class is a simple container which uses the Group extension to be able to hold any type of object.

Scripting

See also: FreeCAD Scripting Basics, and scripted objects.

See Part Feature for the general information on adding objects to the document.

A Std Group (App DocumentObjectGroup) is created with the addObject() method of the document. Once a Group exists, other objects can be added to it with the addObject() or addObjects() methods of this Group.

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()

This basic App::DocumentObjectGroup doesn't have a Proxy object so it can't be fully used for sub-classing.

Therefore, for Python subclassing, you should create the App::DocumentObjectGroupPython object.

import FreeCAD as App

doc = App.newDocument()
obj = App.ActiveDocument.addObject("App::DocumentObjectGroupPython", "Name")
obj.Label = "Custom label"

For example, a FEM Analysis is an App::DocumentObjectGroupPython object with a custom icon and additional properties.

Links


Arrow-left.svg Previous: Std Part.svg Part
Next: LinkMake Std LinkMake.svg Arrow-right.svg