# API Guide

© Copyright 2013 Autodesk, Inc. All rights reserved.

#### Topics in this section

- Maya API introduction

  This section introduces the basic elements of the Maya API and its architecture. We also provide code samples to illustrate the basics of loading plug-ins.

- What's New / What's Changed?

  This section presents an overview of the important changes between each release of the Maya API.

- Setting up your build environment

  This section describes how to build plug-ins to extend the functionality of Maya. It also explains how to run standalone API applications through the command line.

- Maya Python Plug-in Learning Path
- Selecting with the API

  This section illustrates how to use the Maya API to select and query items in the scene.

- Command plug-ins

  This section provides information on how to create your own MEL commands via your own plug-in.

- DAG Hierarchy

  This section describes Maya's Directed Acyclic Graph (DAG) scene architecture, organized as a tree of transform nodes and shape nodes.

- Dependency graph plug-ins

  This section introduces the Dependency Graph (DG), not to be confused with the DAG. The nodes in the Dependency Graph are responsible for controlling animations and maintaining mesh construction history.

- Manipulators

  This section presents an overview of the various types of manipulator tools, which can be used, for example, to change the position, rotation and scale of items in a scene.

- Shapes

  This section presents how to customize your own shapes using the Maya API, in addition to the pre-existing set of DAG shapes such as meshes and NURBS surfaces.

- Writing a Software Shading Node

  This section details how to create software shading nodes, which are used by Maya's Software renderer.

- Writing a Hardware Shading Node

  This section details how to create hardware shading nodes, which are used when rendering Maya's scene view.

- Writing a Custom Transform Node

  This advanced section describes how to define a custom transformation node. An example is provided here to illustrate how to create a rocking motion along the X-axis.

- Writing a Deformer Node

  This section outlines how to write a plug-in to apply your own geometry deformation algorithm.

- Writing File Translators

  This section explains how to adapt Maya to suit your own production pipeline, in particular by defining how to save and load using your own file formats.

- Viewport 2.0 API

  This section describes the Viewport 2.0 API, including the new classes, and migration paths from the old API.

- Multithreading plug-ins

  This section presents the use of threads in Maya plug-ins, including possible threading obstacles, resolutions, and benchmark results.

- Polygon API

  This section explains the implementation polygons data structures in Maya, and how to create and manipulate your own polygons.

- Working with Qt

  This section describes the use of the Qt cross-platform toolkit to customize Maya's user interface.

- Maya Python API

  This section presents an overview of Maya's Python API, which allows you to create Python scripts and plug-ins for Maya.

- Maya .NET API

  This section describes how to use the .NET API to create plug-ins for Maya using Microsoft’s .NET technology.

- Distributing Maya Plug-ins

  This section describes how to distribute Maya plug-ins, either as single files or as multi-file Maya modules.

- Technical Notes

  This section includes miscellaneous topics, and also provides an overview of how to internationalize your plug-ins to various languages.

- Example Plug-ins

  This section describes the functionality of the example plug-ins distributed with Maya.

- Appendices

  This section contains various reference topics.