Std Part
|
Menu location |
---|
None |
Workbenches |
All |
Default shortcut |
None |
Introduced in version |
0.17 |
See also |
Std Group, PartDesign Body |
Description
Std Part (internally called App Part) is a general purpose container that keeps together a group of objects so that they can be moved together as a unit in the 3D view.
The Std Part element was developed to be the basic building block to create mechanical assemblies. In particular, it is meant to arrange objects that have a Part TopoShape, like Part Primitives, PartDesign Bodies, and other Part Features. The Std Part provides an Origin object with local X, Y, and Z axes, and standard planes, that can be used as reference to position the contained objects. In addition, Std Parts may be nested inside other Std Parts to create a big assembly from smaller sub-assemblies.
Although it is primarily intended for solid bodies, the Std Part can be used to manage any object that has a Placement property, so it can also contain Mesh Features, sketches, and other objects derived from the App GeoFeature class.
Do not confuse the PartDesign Body with the
Std Part. The first one is a specific object used in the
PartDesign Workbench, intended to model a single contiguous solid by means of PartDesign Features. On the other hand, the Std Part is not used for modelling, just to arrange different objects in space, with the intention to create assemblies.
The Std Part 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 objects arbitrarily without considering their position, use
Std Group; this object does not affect the placements of the elements that it contains, it is essentially just a folder that is used to keep the Tree view organized.
Left: elements inside a Std Part in the Tree view. Right: objects positioned in space, referred to the Origin of the Std Part.
Usage
- Press the
Create part button.
- An empty Part is created and automatically becomes active.
- To add objects to the Part, select them in Tree view, and drag and drop them onto the Part.
- To remove objects from the Part, drag them out of the Part, and onto the document label at the top of the Tree view.
- Objects can also be added and removed by editing the DataGroup property of the Part.
Notes
- An object can only belong to a single Part.
- 3D operations like Part Boolean cannot be applied to Parts. For example, you cannot select two Parts, and perform a Part Fuse or Part Cut.
Properties
The Std Part, internally called App Part (App::Part
class), is derived from the App GeoFeature (App::GeoFeature
class) and inherits all its properties. It also has several additional properties. Notably properties that help it manage information in the context of an assembly, for example, DataType, DataId, DataLicense, DataLicenseURL and DataGroup.
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
- DataType (
String
): a description for this object. By default, it is an empty string""
. - DataMaterial (
Link
): the material for this object. - Data (Hidden)Meta (
Map
): map with additional meta information. By default, it is empty{}
. - DataId (
String
): an identification or part number for this object. By default, it is an empty string""
. - Data (Hidden)Uid (
UUID
): the universally unique identifier (UUID) (128-bit number) of the object. This is assigned at creation time. - DataLicense (
String
): a field to specify the license for this object. By default, it is an empty string""
. - DataLicenseURL (
String
): a field to specify the web address to the license or contract for this object. By default, it is an empty string""
. - DataColor (
Color
): a tuple of four floating point RGBA values(r,g,b,a)
to define the color of the object; by default it is(1.0, 1.0, 1.0, 1.0)
, which is displayed as[255,255,255]
on base 255, white color. - DataPlacement (
Placement
): the position of the object in the 3D view. The placement is defined by aBase
point (vector), and aRotation
(axis and angle). See Placement.- DataAngle: the angle of rotation around the DataAxis. By default, it is
0°
(zero degrees). - DataAxis: the unit vector that defines the axis of rotation for the placement. Each component is a floating point value between
0
and1
. If any value is above1
, the vector is normalized so that the magnitude of the vector is1
. By default, it is the positive Z axis,(0, 0, 1)
. - DataPosition: a vector with the 3D coordinates of the base point. By default, it is the origin
(0, 0, 0)
.
- DataAngle: the angle of rotation around the DataAxis. By default, it is
- DataLabel (
String
): the user editable name of this object, it is an arbitrary UTF8 string. - Data (Hidden)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""
. - Data (Hidden)Expression Engine (
ExpressionEngine
): a list of expressions. By default, it is empty[]
. - Data (Hidden)Visibility (
Bool
): whether to display the object or not. - Data (Hidden)Origin (
Link
): the App Origin object that is the positional reference for all elements listed in DataGroup. - DataGroup (
LinkList
): a list of referenced objects. By default, it is empty[]
. - Data (Hidden)_ Group Touched (
Bool
): whether the group is touched or not.
View
Display Options
- ViewDisplay Mode (
Enumeration
):Group
. - ViewShow In Tree (
Bool
): if it istrue
, the object appears in the Tree view. Otherwise, it is set as invisible. - ViewVisibility (
Bool
): if it istrue
, the object appears in the 3D view; otherwise it is invisible. By default this property can be toggled on and off by pressing the Space bar in the keyboard.
Selection
- ViewOn Top When Selected (
Enumeration
):Disabled
(default),Enabled
,Object
,Element
. - ViewSelection Style (
Enumeration
):Shape
(default),BoundBox
. If the option isShape
, the entire shape (vertices, edges, and faces) will be highlighted in the 3D view; if it isBoundBox
only the bounding box will be highlighted.
Detailed explanation
Active status
An open document can contain multiple Parts. But only one Part can be active. The active Part is displayed in the tree view with the background color specified by the Active container value in the preferences editor (by default, light blue). It will also be shown with bold text.
To activate or de-activate a Part:
- Double click on it on the Tree view, or
- Open the context menu (right click) and select Toggle active part.
Document with two Std Parts, of which the second one is active.
Origin
The Origin consists of the three standard axes (X, Y, Z) and three standard planes (XY, XZ and YZ). Sketches and other objects can be attached to these elements when creating them.
Left: Part Origin in the Tree view. Right: representation of the Origin elements in the 3D view.
Note: the Origin is an App Origin object (App::Origin
class), while the axes and planes are objects of type App::Line
and App::Plane
respectively. Each of these elements can be hidden and unhidden individually with the Space bar; this is useful to choose the correct reference when creating other objects.
Note 2: all elements inside the Part are referenced to the Part's Origin which means that the Part can be moved and rotated in reference to the global coordinate system without affecting the placement of the elements inside.
Visibility Management
The Part's visibility supersedes the visibility of any object it contains. If the Part is hidden, the objects it contains will be hidden as well, even if their individual ViewVisibility property is set to true
. If the Part is visible, then each object's ViewVisibility determines whether the object is shown or not.
The visibility of the Std Part determines whether the objects grouped under it are shown in the 3D view or not. Left: the Part is hidden, so none of the objects will be shown in the 3D view. Right: the Part is visible, so each object controls its own visibility.
Scripting
See also: FreeCAD Scripting Basics and scripted objects.
See Part Feature for the general information on adding objects to the document.
A Std Part (App Part) is created with the addObject()
method of the document. Once a Part exists, other objects can be added to it with the addObject()
or addObjects()
methods.
import FreeCAD as App
doc = App.newDocument()
part = App.ActiveDocument.addObject("App::Part", "Part")
obj1 = App.ActiveDocument.addObject("PartDesign::Body", "Body")
obj2 = App.ActiveDocument.addObject("Part::Box", "Box")
part.addObjects([obj1, obj2])
App.ActiveDocument.recompute()
You cannot create a scripted App::Part
. However, you can add App::Part
behavior to a scripted Part::FeaturePython
object by using the following code:
class MyGroup(object):
def __init__(self, obj=None):
self.Object = obj
if obj:
self.attach(obj)
def dumps(self):
return
def loads(self, _state):
return
def attach(self, obj):
obj.addExtension("App::OriginGroupExtensionPython")
obj.Origin = FreeCAD.ActiveDocument.addObject("App::Origin", "Origin")
def onDocumentRestored(self, obj):
self.Object = obj
class ViewProviderMyGroup(object):
def __init__(self, vobj=None):
if vobj:
vobj.Proxy = self
self.attach(vobj)
else:
self.ViewObject = None
def attach(self, vobj):
vobj.addExtension("Gui::ViewProviderOriginGroupExtensionPython")
self.ViewObject = vobj
def dumps(self):
return None
def loads(self, _state):
return None
App.ActiveDocument.addObject("Part::FeaturePython",
"Group",
MyGroup(),
ViewProviderMyGroup(),
True)
- File: New, Open, Open Recent, Close, Close All, Save, Save As, Save a Copy, Save All, Revert, Import, Export,Merge project, Document information, Print, Print preview, Export PDF, 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, Properties, Edit mode, Preferences
- View:
- Miscellaneous: Create new view, Orthographic view, Perspective view, Fullscreen, Bounding box, Toggle axis cross, Clipping plane, Persistent section cut, Texture mapping, Toggle navigation/Edit mode, Material, Appearance, Random color, Color per face, Toggle transparency, Workbench, Status bar
- Standard views: Fit all, Fit selection, Align to selection, Isometric, Dimetric, Trimetric, Home, Front, Top, Right, Rear, Bottom, Left, Rotate Left, Rotate Right, Store working view, Recall working view
- 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
- Toolbars: File, Edit, Clipboard, Workbench, Macro, View, Individual views, Structure, Help, Lock toolbars
- Panels: Tree view, Property view, Model, Selection view, Python console, Report view, Tasks, DAG view
- Dock window overlay: Toggle overlay for all, Toggle transparent for all, Toggle overlay, Toggle transparent, Bypass mouse events in docked overlay windows, Toggle left, Toggle right, Toggle top, Toggle bottom
- 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, Export dependency graph, Document utility, Add text document, View turntable, Units converter, Customize, Addon manager, Measure
- 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, Start
- Additional:
- Miscellaneous: Create part, Create group, Make link, Make sub-link, Replace with link, Unlink, Import links, Import all links, Make link group, Create a variable set, Select all instances, Toggle freeze
- Expression actions: Copy selected, Copy active document, Copy all documents, Paste
- Selection filter: Vertex selection, Edge selection, Face selection, All selection filters cleared

- 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, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub