PartDesign Feature
Introduction
A PartDesign Feature refers to a "step" in the modelling process that happens inside of a PartDesign Body. For example, each time you add a solid box with PartDesign AdditiveBox, you add a feature; when you add a chamfer to an edge with PartDesign Chamfer, you add another feature; when you cut a hole using a sketch and PartDesign Pocket, you add another feature.
Feature editing in a PartDesign Body with three sequential features.
There are many types of features which can add or remove volume from an initial solid. The word "feature" refers to the operation itself, and also to the resulting solid after that operation.
To learn more about creating solid objects with the PartDesign Workbench see feature editing.
Usage
Almost all tools in the PartDesign Workbench are meant to add features to a PartDesign Body. These tools can be accessed from the menu and toolbar buttons while an object or sub-element (vertex, edge, face) is selected.
The features can be placed in different categories:
- Feature base: refers to the Base Feature object that can be created in a PartDesign Body.
- Additive and subtractive
- Primitive shapes: Box, Cone, Cylinder, Ellipsoid, Prism, Sphere, Torus, and Wedge.
- Primitive shapes subtractive: Subtractive Box, Subtractive Cone, Subtractive Cylinder, Subtractive Ellipsoid, Subtractive Prism, Subtractive Sphere, Subtractive Torus, and Subtractive Wedge.
- Profile based: Pad, Revolution, Loft, Pipe.
- Profile based subtractive: Pocket, Hole, Groove, Subtractive Loft, Subtractive Pipe.
- Boolean, including fuse, cut, and common.
- Dress up
- Transform
Inheritance
Simplified diagram of the relationships between the core objects in the program. The PartDesign::Feature
objects are used to build parametric 3D solids, and thus are derived from the basic Part::Feature
object.
Scripting
See also: FreeCAD Scripting Basics, and scripted objects.
See Part Feature for the general information on adding objects from the Python console.
See PartDesign Body for the general information on adding a Body. Once a Body exists, features can be attached to it using the Body's addObject()
method.
import FreeCAD as App
doc = App.newDocument()
obj = App.ActiveDocument.addObject('PartDesign::Body', 'Body')
obj.Label = "Custom label"
feature = App.ActiveDocument.addObject('PartDesign::AdditiveBox', 'Box')
feature.Width = 200
feature.Length = 300
feature.Height = 500
obj.addObject(feature)
App.ActiveDocument.recompute()
feature2 = App.ActiveDocument.addObject('PartDesign::SubtractiveBox', 'Box')
feature2.Width = 50
feature2.Length = 200
feature2.Height = 400
obj.addObject(feature2)
App.ActiveDocument.recompute()
- Structure tools: Part, Group
- Helper tools: Create body, Create sketch, Attach sketch, Edit sketch, Validate sketch, Check geometry, Create a shape binder, Create a sub-object(s) shape binder, Create a clone, Create a datum plane, Create a datum line, Create a datum point, Create a local coordinate system
- Modeling tools:
- Additive tools: Pad, Revolution, Additive loft, Additive pipe, Additive helix, Additive box, Additive cylinder, Additive sphere, Additive cone, Additive ellipsoid, Additive torus, Additive prism, Additive wedge
- Subtractive tools: Pocket, Hole, Groove, Subtractive loft, Subtractive pipe, Subtractive helix, Subtractive box, Subtractive cylinder, Subtractive sphere, Subtractive cone, Subtractive ellipsoid, Subtractive torus, Subtractive prism, Subtractive wedge
- Boolean: Boolean operation
- Dress-up tools: Fillet, Chamfer, Draft, Thickness
- Transformation tools: Mirrored, Linear Pattern, Polar Pattern, Create MultiTransform, Scaled
- Extras: Sprocket, Involute gear, Shaft design wizard
- Context menu: Set tip, Move object to other body, Move object after other object, Appearance, Color per face
- Preferences: Preferences, Fine tuning
- 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, Material, Mesh, OpenSCAD, Part, PartDesign, Points, Reverse Engineering, Robot, Sketcher, Spreadsheet, Surface, TechDraw, Test Framework
- Hubs: User hub, Power users hub, Developer hub