The 3DFACE entity (DXF Reference) is real 3D solid filled triangle or quadrilateral. Access vertices by name (entity.dxf.vtx0 = (1.7, 2.3)) or by index (entity[0] = (1.7, 2.3)).

Unlike the entities Solid and Trace, the vertices of Face3d have the expected vertex order:

msp.add_3dface([(0, 0), (10, 0), (10, 10), (0, 10)])
Subclass of ezdxf.entities.DXFGraphic
DXF type '3DFACE'
Factory function ezdxf.layouts.BaseLayout.add_3dface()
Inherited DXF attributes Common graphical DXF attributes


Do not instantiate entity classes by yourself - always use the provided factory functions!

class ezdxf.entities.Face3d

The class name is Face3d because 3dface is not a valid Python class name.


Location of 1. vertex (3D Point in WCS)


Location of 2. vertex (3D Point in WCS)


Location of 3. vertex (3D Point in WCS)


Location of 4. vertex (3D Point in WCS)


invisible edge flag (int, default=0)

1 first edge is invisible
2 second edge is invisible
4 third edge is invisible
8 fourth edge is invisible

Combine values by adding them, e.g. 1+4 = first and third edge is invisible.

transform(m: ezdxf.math._matrix44.Matrix44) → ezdxf.entities.solid.Face3d

Transform the 3DFACE entity by transformation matrix m inplace.

wcs_vertices(close: bool = False) → list[Vec3]

Returns WCS vertices, if argument close is True, the first vertex is also returned as closing last vertex.

Returns 4 vertices when close is False and 5 vertices when close is True. Some edges may have zero-length. This is a compatibility interface to SOLID and TRACE. The 3DFACE entity is already defined by WCS vertices.