title: Driving Strings with if/else statements maya/python API
body: <p>I should first let you know that im trying to re-create the aimconstraint UI from maya. this is the first time ive used python so im just doing a small project to wrap my head around it.</p>
  
  <p>the problem children are the maintain offset bool and the world up vector enum. i cant figure out how to call on their results to drive the variables of the aim constraint.</p>
  
  <p>Ok. so im having some trouble getting my if/else statements working. every time i try and use them (Maintain Offset Row, World Up Type Row) i get "invalid syntax" or "unexpected indent" or some other error that i never get in unity while using Csharp. on top of that, i cant work out how to call one definition through another. </p>
  
  <p>(ive cut out a lot of the less important items for your ease of viewing.)</p>
  
  <pre><code>#AimConstrain.py
  
  import maya.cmds as cmds
  import functools
  
  #main
  maintainOffsetBool = False
  OffsetX = 0.0
  OffsetY = 0.0
  OffsetZ = 0.0
  aimVectorX = 1.0
  aimVectorY = 0.0
  aimVectorZ = 0.0
  upVectorX = 0.0
  upVectorY = 1.0
  upVectorZ = 0.0
  worldUpTypeField = ''
  worldUpVectorX = 0.0
  worldUpVectorY = 1.0
  worldUpVectorZ = 0.0
  weightFloat = 1.0 
  
  def createUI( pWindowTitle, pApplyCallback ):
  
      windowID = 'CustomAimConstraint'
  
      if cmds.window( windowID, exists=True ):
          cmds.deleteUI( windowID )
  
      cmds.window( windowID, title=pWindowTitle, sizeable=False, resizeToFitChildren=True )
  
      cmds.rowColumnLayout( numberOfColumns=6, columnWidth=[ (1,60), (2,90), (3,75), (4,75), (5,75), (6,60) ], columnOffset=[ (1, 'right',3) ] )
  
  
      # Maintain Offset Row
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='Maintain Offset: ')
  
      maintainOffsetCB = cmds.checkBox( value = False, label='' ):
      if(maintainOffsetCB):
          maintainOffsetBool = True
      else():
          maintainOffsetBool = False
  
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
  
      # The XYZ of the Offset
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='Offset:' )
  
      OffsetX = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      OffsetY = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      OffsetZ = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      cmds.separator( h=10, style='none' )
  
      # The XYZ of the Aim Vector
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='Aim Vector:' )
  
      aimVectorX = cmds.floatField( value=1, maxValue=1.0, minValue=0.0 )
  
      aimVectorY = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      aimVectorZ = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      cmds.separator( h=10, style='none' )
  
      # The XYZ of the Up Vector
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='Up Vector:' )
  
      upVectorX = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      upVectorY = cmds.floatField( value=1, maxValue=1.0, minValue=0.0 )
  
      upVectorZ = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      cmds.separator( h=10, style='none' )
  
      # World Up Type Row
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='World Up Type:' )
  
      cmds.optionMenu("worldUpTypeMenu", width=2 )
      cmds.menuItem( label = 'Vector' )
      cmds.menuItem( label = 'World' )
      cmds.menuItem( label = 'None' )
  
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
  
      # World Up XYZ
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='World Up Vector:' )
  
      worldUpVectorX = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      worldUpVectorY = cmds.floatField( value=1, maxValue=1.0, minValue=0.0 )
  
      worldUpVectorZ = cmds.floatField( value=0, maxValue=1.0, minValue=0.0 )
  
      cmds.separator( h=10, style='none' )
  
      # Weight Setting
      cmds.separator( h=10, style='none' )
  
      cmds.text( label='Weight: ' )
  
      weightFloat = cmds.floatField( value=1 )
  
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
  
      # Bottom Row / Buttons and shit
      cmds.separator( h=10, style='none' )
      cmds.separator( h=10, style='none' )
  
      cmds.button( label='Add', command=addCallBack )
  
      cmds.button( label='Apply', command=applyCallBack )
  
      cmds.button( label='Cancel', command=cancelCallBack )
  
      cmds.showWindow()
  
  # this is for the enum, go to World Up Type row.
  def worldUpTypeDef():
      currentValue = cmds.optionMenu("worldUpTypeMenu", query=True, value=True):
      if currentValue == 'Vector':
          worldUpTypeField = 'Vector'
      elif currentValue == 'World':
          worldUpTypeField = 'World'
      elif currentValue == 'None':
          worldUpTypeField = 'None'
  
  def cancelCallBack():
      if cmds.window( windowID, exists=True ):
          cmds.deleteUI( windowID )
  
  def applyCallBack(applyConstraint, worldUpTypeDef):
  
  
  def addCallBack(applyConstraint, worldUpTypeDef):
      if cmds.window( windowID, exists=True ):
          cmds.deleteUI( windowID )
  
  createUI( 'Custom Aim Constraint', applyCallBack )
  
  # Defines the Aim Constraint itself.
  def applyConstraint():
      selectionList = cmds.ls( orderedSelection=True )
  
      if len( selectionList ) &gt;= 2:
  
          print 'Selected items: %s' % ( selectionList )
  
          targetName = selectionList[0]
  
          selectionList.remove( targetName )
  
          for objectName in selectionList:
  
              print 'Constraining %s towards %s' % ( objectName, targetName )
  
              cmds.aimConstraint( targetName, objectName, aimVector = [aimVectorX, aimVectorY, aimVectorZ], maintainOffset = maintainOffestBool, offset = [OffsetX, OffsetY, OffsetZ], upVector = [upVectorX, upVectorY, upVectorZ], weight = weightFloat, worldUpType = worldUpTypeField, worldUpVector = [worldUpVectorX, worldUpVectorY, worldUpVectorZ] )
                  #aimConstraint( [target...] object , [aimVector=[float, float, float]], [maintainOffset=boolean], [name=string], [offset=[float, float, float]], [remove=boolean], [skip=string], [targetList=boolean], [upVector=[float, float, float]], [weight=float], [weightAliasList=boolean], [worldUpObject=name], [worldUpType=string], [worldUpVector=[float, float, float]]) 
  
      else:
  
          print 'Please select two or more objects.'
  </code></pre>
  
  <p>Can anyone help me fix this mess of code?</p>