From FreeCAD Documentation


In FreeCAD the word "Shape" is normally used to refer to a Part TopoShape (Part::TopoShape class), a type of object that gives an element its 3D geometrical and parametric representation (cube, pyramid, sphere, cylinder, fusion, etc.).

Essentially all objects that are displayed in the 3D view have a TopoShape, with the exception of "Meshes", which have a MeshObject (Mesh::MeshObject class).

See Part TopoShape for more information about this type of object.

Left: parametric shape defined by properties. Right: mesh, defined by vertices and triangular surfaces.


Shapes are normally created by internal functions of the Part Workbench, and are ultimately defined by the OpenCASCADE Technology kernel (OCCT).

Once a Shape is created, it can be used and modified by all workbenches by creating scripted objects around that Shape.

Essentially, every object derived from a Part Feature (Part::Feature class) is expected to hold and manipulate a Shape.

Any OpenCascade Shape has a tesselation mainly to view the Shape on screen. More information about this can be found in this German forum post and in the OpenCascad Mesh documentation.


In informal usage, a "Shape" may be any geometrical figure that is visible in the 3D view, and thus its concept may be confused with that of "Body" or "Part".

However, when more precision is required, the distinction must be made.

  • A "Body" is an object derived from a Part Feature (Part::Feature class), created with the PartDesign Workbench.
  • A "Shape" is an internal object, embedded within the "Body".
  • A "Part" is used to group several "Bodies" to form an assembly. A "Part" has a collection of "Shapes", but doesn't have a "Shape" of its own.