# TopoShape API

The TopoShape is the mother object of the Part Module. All shape types (wire, face, solid, etc...) of the Part module are TopoShapes, and share the following attributes and methods. Example:

```
import Part
sh = Part.makeBox(10,10,10)
print sh.Faces
for f in sh.Faces:
print f.Edges
```

**Returns**: The center of mass of the current system. If the gravitational field is uniform, it is the center of gravity. The coordinates returned for the center of mass are expressed in the absolute Cartesian coordinate system.

**Description**: Approximates a B-Spline-curve from this wire

**Returns**: a BSplineCurve object

**Description**: Checks the shape and report errors in the shape structure. This is a more detailed check as done in isValid().

**Returns**:

**Description**: Computes the complement of the orientation of this shape, i.e. reverses the interior/exterior status of boundaries of this shape.

**Returns**: a TopoShape

**Description**: Calculates the minimum distance between this and a given TopoShape.

**Returns**: float<minimum distance>,list<nearest points>,list<nearest subshapes & parameters>

**Description**: Exports the content of this shape to an BREP file. BREP is a CasCade native format.

**Returns**:

**Description**: This value is computed from the value of the underlying shape reference and the location. Orientation is not taken into account.

**Returns**: a string

**Description**: Returns true if both shapes share the same TShape, have the same Location and have the same Orientation.

**Returns**: a boolean

**Description**: Checks if a point is inside a solid with a certain tolerance. If the 3rd parameter is True a point on a face is considered as inside

**Returns**: a boolean

**Description**: Returns true if both shapes share the same TShape, but may have a different Location and may have a different Orientation.

**Returns**: a boolean

**Description**: Checks if both shapes share the same geometry, true if both shapes share the same TShape, have the same Location but may have a different Orientation.

**Returns**: a boolean

**Description**: Checks if the shape is valid, i.e. neither null, nor empty nor corrupted.

**Returns**: a boolean

**Description**: Returns a new object based on TopoShape, but with a fillet of radius 'float' applied to each edge.

**Returns**: a TopoShape

**Description**: Makes this and the given wire homogenous to have the same number of edges

**Returns**: a wire

**Description**: Makes a loft defined by profiles along a wire.

**Returns**: a TopoShape

**Description**: Makes a compound shape out of mesh data. Note: This should be used for rather small meshes only.

**Returns**: a TopoShape

**Description**: A hollowed solid is built from an initial solid and a set of faces on this solid, which are to be removed. The remaining faces of the solid become the walls of the hollowed solid, their thickness defined at the time of construction. The arguments to be passed are a list of faces to be skipped, the thickness of the walls and a tolerance value.

**Returns**: a TopoShape

**Description**: Destroys the reference to the underlying shape stored in this shape. As a result, this shape becomes null.

**Returns**:

**Description**: Revolves the shape around a Axis to a given degree. ex: Part.revolve(Vector(0,0,0),Vector(0,0,1),360) revolves the shape around the Z Axis 360 degree.

**Returns**: a TopoShape

**Description**: Rotates this shape by angle degrees around an axis specified by position and direction. ex: Shp.rotate(Vector(0,0,0),Vector(0,0,1),180) rotate the shape around the Z Axis 180 degrees.

**Returns**:

**Description**: Uniformly scales this shape by factor. Optionally specify centre of scaling transformation.

**Returns**:

**Description**: Tessellate the the shape and return a list of vertices and face indices. The given float is the tolerance.

**Returns**: a list

**Description**: Conversion of the complete geometry of a shape into NURBS geometry. For example, all curves supporting edges of the basis shape are converted into BSpline curves, and all surfaces supporting its faces are converted into BSpline surfaces.

**Returns**: a NURBS curve

**Description**: Applies geometric transformation on a copy of the shape. The transformation to be applied is defined as a 4x4 matrix. The underlying geometry of the following shapes may change to a curve which supports an edge of the shape, or a surface which supports a face of the shape. For example, a circle may be transformed into an ellipse when applying an affinity transformation. It may also happen that the circle then is represented as a b-spline curve. The transformation is applied to all the curves which support edges of the shape, and all the surfaces which support faces of the shape. Note: If you want to transform a shape without changing the underlying geometry then use the methods translate or rotate.

**Returns**: a TopoShape

**Description**: Applies transformation on a shape without changing the underlying geometry.

**Returns**:

**Description**: Applies the translation to the current location of this shape.

**Returns**:

Some attributes and methods apply only to certain TopoShapes. These items apply to Edges (TopoShapeEdge).

**Returns**: The parameter value at one end of the Edge. Not necessarily at Vertex[0]. See Parametric Equations

**Returns**: The parameter value at the other end of the Edge. Not necessarily at Vertex[1].

**Description**: Maps the interval [0,Length] to the interval [FirstParameter,LastParameter]

**Returns**: Float

**Description**: Returns the 3D vector corresponding to a parameter value.

**Returns**: Vector

**Description**: Returns the parameter value corresponding to a Vertex (3D point).

**Returns**: Float

**Description**: Returns the direction vector of the tangent to the edge at a parameter value (if it exists).

**Returns**: Vector

**Description**: Returns the direction vector of the normal to the edge at a parameter value (if it exists uniquely).

**Returns**: Vector

**Description**: Returns the curvature of the edge at a parameter value.

**Returns**: Float

**Description**: Returns the center (3D point) of the osculating circle at a parameter value.

**Returns**: Vector

**Getting started****Installation:**Download, Linux, Windows, MacOS, 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; Arch, Draft, FEM, Image, Inspection, Mesh, OpenSCAD, Part, PartDesign, Path, Points, Raytracing, Reverse Engineering, Sketcher, Spreadsheet, Start, Surface, TechDraw, Test Framework, Web**Unmaintained workbenches:**Plot, Robot, Ship**Deprecated workbenches:**Complete, Drawing

**Code:**Addon Manager, Addons, Macros, External workbenches

**Hubs:**User hub, Power users hub, Developer hub