Published using Google Docs
naOmmitNameSpace.txt

/*

naOmmitNameSpace.mel v1.0.1

Date Created: September 04, 2011

Last Modified: March 09, 2012

Author: Nathaniel Anozie

ogbonnawork at gmail dot com

nathanielanozie dot blogspot dot com

Acknowledgement:    Anoop A.K  www dot codecg dot com for learning  about array manipulation

                    Brian Ewert www dot xyz2 dot net  for learning about groups

                    Rob Bateman web tutorials for learning about render layers

                   

Purpose:

rename polygon objects by omitting names spaces

rename lambert materials by omitting names spaces

Why: After I imported new objects using default import maya settings. I ended up with namespaces.  This relates to

simplifying names.  Current version covers (groups, curves, meshes, materials)

How to install:

tested for Maya 2008

source script in Maya

//source naGeneral.mel  -- getting types of objects

type for mel

        renameMaterials()

                to rename all materials in scene omitting namespace

        renameMeshObjects()

                to rename all polygon objects in scene omitting namespace

                

        renameCurveObjects()

            to rename curve objects in scene omitting namespace

           

        renameGroupObjects()

            to rename groups in scene omitting namespace

           

        renameLayers()

                to rename all render layers in scene omitting namespace

releases:                

naOmmitNameSpace.mel v1.0.1

    added render Layer support

    refined rename material to include material info and shading engine

naOmmitNameSpace.mel v1.0.0

*/

//rename materials

//        no arguments needed

global proc renameMaterials(){

    string $mat[] = getListAllCreatedLambertMaterials();

   

    //use mat to get list of all material info

    string $matInfo[] = getListAllMaterialInfo($mat);

   

    //get list of all shading engine

    string $shade[] = getListAllShadingEngine($mat);

   

    renameByRemovingNameSpace( $mat );

   

    renameByRemovingNameSpace( $matInfo );

   

    renameByRemovingNameSpace( $shade );

}

//rename mesh objects        

//        no arguments needed

global proc renameMeshObjects(){

   string $objects[] = getListAllObjectsByType(12);

   renameByRemovingNameSpace( $objects );

}

//rename curve objects

//  no arguments needed

global proc renameCurveObjects(){

   string $objects[] = getListAllCurves();

   renameByRemovingNameSpace( $objects );

}

//rename group objects

//  no arguments needed

global proc renameGroupObjects(){

   string $objects[] = getListAllCreatedGroupObjects();

   renameByRemovingNameSpace( $objects );

}

//rename joint objects

//  no arguments needed

global proc renameJointObjects(){

   string $objects[] = getListAllJoints();

   renameByRemovingNameSpace( $objects );

}

/**rename layers

*/

global proc renameLayers(){

    string $layers[] = getListAllCreatedLayers();

    renameByRemovingNameSpace( $layers );

   

}

/**rename nurbs surface

*/

global proc renameNurbs(){

    string $objects[] = getListAllNurbs();

    renameByRemovingNameSpace( $objects );

   

}

/*rename by removing name space in old names

@param  $oldNames a string array to rename, examples are ads:car1, ads:characterA  

*/

global proc renameByRemovingNameSpace( string $oldNames[] )

{

//tokenize the name

    //create string array buffer

    string $buffer[]; //store tokens for every object

 string $newName;   //store new name for every object

    for( $old in $oldNames )

    {

        //tokenize object ":" buffer

        tokenize $old ":" $buffer;

       

        //the last element of array is the object

        $newName = $buffer[ ( size($buffer)-1 ) ];

       

        //rename the object to the string

        renameNonReadOnly($old, $newName);

        //clear token array;

        clear $buffer;

    }

}

/**renames a non read only node

@param $old string old name

@param $new string new name

*/

global proc renameNonReadOnly(string $old, string $new)

{

    if(`objExists $old`){

        //rename the object to the string

        rename $old $new;

    }else{ print("node not found, skipping: "+$old); }

}