Go to: Synopsis. Return value. Related. Flags. Python examples.


polyToSubdiv( [poly] , [absolutePosition=boolean], [applyMatrixToResult=boolean], [caching=boolean], [constructionHistory=boolean], [maxEdgesPerVert=int], [maxPolyCount=int], [name=string], [nodeState=int], [object=boolean], [preserveVertexOrdering=boolean], [quickConvert=boolean], [uvPoints=[float, float]], [uvPointsU=float], [uvPointsV=float], [uvTreatment=int])

Note: Strings representing object names and arguments must be separated by commas. This is not depicted in the synopsis.

polyToSubdiv is undoable, queryable, and editable.

This command converts a polygon and produces a subd surface. The name of the new subdivision surface is returned. If construction history is ON, then the name of the new dependency node is returned as well.

Return value

string- the subdivision and optionally the dependency node name

In query mode, return type is based on queried flag.


changeSubdivComponentDisplayLevel, changeSubdivRegion, createSubdivRegion, nurbsToSubdiv, querySubdiv, refineSubdivSelectionList, subdCollapse, subdToBlind, subdToPoly, subdiv, subdivCrease, subdivDisplaySmoothness


absolutePosition, applyMatrixToResult, caching, constructionHistory, maxEdgesPerVert, maxPolyCount, name, nodeState, object, preserveVertexOrdering, quickConvert, uvPoints, uvPointsU, uvPointsV, uvTreatment
Long name (short name) Argument types Properties
maxPolyCount(mpc) int createqueryedit
The maximum number of polygons accepted on the input mesh.
Default: 1000
maxEdgesPerVert(me) int createqueryedit
The maximum allowed valence for a vertex on the input mesh
Default: 32
applyMatrixToResult(amr) boolean createqueryedit
If true, the matrix on the input geometry is applied to the object and the resulting geometry will have identity matrix on it. If false the conversion is done on the local space object and the resulting geometry has the input object's matrix on it.
Default: true
absolutePosition(ap) boolean createqueryedit
If true, the possible blind data information that comes from the polygon will be treated as absolute positions of the vertices, instead of the relative offsets. You most likelly just want to use the default of false, unless you know that the blind data has the absolute positions in it.
Default: false
uvTreatment(uvt) int createqueryedit
Treatment of Subd UVs when in proxy mode:
  • 0 - preserve Subd UVs
  • 1 - build Subd UVs from Poly UVs
  • 2 - no UVs on Subd

Default: 0
uvPoints(uvp) [float, float] createqueryeditmultiuse
This is a cached uv point needed to transfer uv data associated with finer level vertices (when switching between standard editing mode and poly proxy mode.
uvPointsU(uvu) float createqueryedit
U value of a cached uv point
uvPointsV(uvv) float createqueryedit
V value of a cached uv point
preserveVertexOrdering(pvo) boolean createqueryedit
Preserve vertex ordering in conversion
Default: true
quickConvert(qc) boolean createqueryedit
Debug flag to test the performance
Default: true
Advanced flags
caching(cch) boolean createqueryedit
Modifies the node caching mode. See the node documentation for more information.
Note: For advanced users only.
nodeState(nds) int createqueryedit
Modifies the node state. See the node documentation for more information.
Note: For advanced users only.
Common flags
name(n) string create
Name the resulting object
constructionHistory(ch) boolean create
Turn the construction history on or off (where applicable)
object(o) boolean create
Create the result, or just the dep. node (where applicable)

Flag can appear in Create mode of command Flag can appear in Edit mode of command
Flag can appear in Query mode of command Flag can have multiple arguments, passed either as a tuple or a list.

Python examples

import maya.cmds as cmds

# To create a new subdivision surface from a polygon:
cmds.polyToSubdiv( 'polySphere1' )

# To create a new subdivision surface from a polygon with history so that
# the tesselation can be edited afterwards:
cmds.polyToSubdiv( 'polySphere1', ch=True )