Monday, July 12, 2010

Get Maya Version With MEL

Today I had to figure out how to get the current Maya version with MEL. I assumed it would be in some sort of environment variable but it turns out it had it's own command. I spent a good fifteen minutes trying to track this down so I hope this blog post can save somebody out there at least some of that time.

The command is getApplicationVersionAsFloat.
float $mayaVersion = `getApplicationVersionAsFloat` ;

7 comments:

  1. Why did you need to know the version? Did your script need to perform differently based on version?

    ReplyDelete
  2. In this particular case I was working on my toolset where I have a small status window that tells me Maya version, Python version, and Pymel version. It's there because I want it to work on lots of different setups and computers and I want quick access to that information in case something stops working like it's suppose to. If you have plugins compiled for multiple versions, you may want to detect which version you're in and load the correct plugin automatically.

    Besides that, there are some cases where you may be using commands on a per version basis, but not many. If you're using Python scripts, you may want to be able to tell if you're using 8.5 or above since prior to that there was no Python in Maya.

    Not the MOST useful thing out there, but cool nonetheless. :)

    ReplyDelete
  3. ha. I was just trying to figure this out as well. spent about 2 minutes going through the docs and then googled and found this. need to know as I have a UI that gets docked on startup, but dockControl doesn't exist prior to 2011, so depending on maya version, it will either dockControl or showWindow. thanks!

    ReplyDelete
  4. This comment has been removed by the author.

    ReplyDelete
  5. I work with maya 2011 and the MEL gives me an error.

    It has to be written with a lowercase 'v' instead of an uppercase, like this:

    float $mayaversion = `getApplicationVersionAsFloat` ;

    ReplyDelete
  6. Just tested with 2011 and I'm not getting the same error. No matter what command you are using the variable name is irrelevant, unless it's already being used for something else or is predefined as a different type. You can run the command without using a variable at all:

    e.g.: getApplicationVersionAsFloat ;

    Check to make sure you hadn't already defined 'mayaVersion' as something else.

    ReplyDelete
  7. Thanks for this post Jay! I needed to query the version because certain built in maya scripts like doCreateGeometryCache have different numbers of arguments between 2011 and 2012.

    ReplyDelete

Scripting Topics

MEL (41) Maya (39) Scripting (32) Scripts (21) programming (14) Free Mel Scripts (8) MaxScript (7) Coding (6) Rigging (5) tutorial (5) 3ds Max (4) Python (4) Tricks (4) faceware (4) image metrics (4) Learn (3) Namespace (3) Namespacing (3) animation (3) facial (3) webinar (3) Code (2) GDC (2) Game Developers Conference (2) Multiple Namespaces (2) Print Selected Objects (2) Recursive (2) Removing Namespace (2) Return (2) Set Driven Keys (2) TOkenize (2) Tips (2) Toggle Background Color with MEL (2) animation tools (2) animators resource (2) deformers (2) learning (2) maya tools (2) mesh (2) modeling (2) nodes (2) procedure (2) script swell (2) transforms (2) Animschool (1) Attribute (1) Background Color (1) Beer (1) Blur (1) Character Setup (1) Check if an object exists (1) Class (1) Command Line (1) Constraints (1) Create SDK (1) Create a directory with mel (1) Data (1) Export (1) FilterString (1) Fix (1) Floating Slider Time (1) Functions (1) Get Maya Version MEL (1) Get Parent (1) Google (1) Holiday (1) How To Write To A Text File (1) Import (1) Incremental Save (1) Index (1) Joint Chain (1) Make Set Driven Keys (1) Maya Version (1) Modules (1) Objects (1) Orient Constraint (1) PYMEL (1) Parent (1) Parent Constraint (1) Point Constraint (1) Position (1) Print (1) Print Current Selection (1) Print Random Quotes (1) Print Selection (1) Print Vertices (1) Progress Bar (1) Progress Window (1) PyQT (1) Removing Spaces From Names (1) Scene File Name (1) Select Connections (1) Select Outgoing Nodes (1) Split Bones (1) Split Joints (1) St. Patrick's Day (1) String Array (1) System (1) Transfer UVs (1) Viewport (1) White Space (1) Windows Username (1) Zero Out Attributes (1) animButtonState (1) arrays (1) articles (1) auto key (1) better (1) blendshapes (1) break (1) confirm dialog (1) continue (1) convention (1) e3 (1) efficiency (1) error (1) eval (1) executable (1) fclose (1) fopen (1) fprint (1) games (1) improving (1) infinite loop (1) joints (1) listHistory (1) listRelatives (1) logic (1) loops (1) milestone (1) nodeType (1) objExists (1) recursion (1) rotates (1) rotations (1) schools (1) sculpting (1) setAttr (1) shout outs (1) source (1) source a script with a variable (1) speed (1) tech-artists.org (1) translates (1) video (1) warning (1) world matrix (1) worldMatrix (1)
 
Script Swell - Blogged