Working with User Preferences

User preferences in Softimage are stored in property sets, so they can be accessed like any other Property object; however, there is a special Preferences class that provides easy access and some extra functionality.

 

The "Interaction.autoinspect" preference cannot be changed permanently via scripting. See Property Editor Automatic Inspection for more information.

Quick Access

The Application object provides direct access to the Preferences object through its Preferences property. From there you can browse through the Categories or target a specific value (GetPreferenceValue and SetPreferenceValue). See the following examples:

- JScript Example: Browsing through preference via categories

- C++ Examples: Getting a specific preference value

Restoring Defaults

The Preferences object provides the RestoreDefault method, which allows you to restore defaults for a single preference value or all values associated to a specific category. See the following example:

- Python Example: Exporting, importing, and restoring preferences

Exporting/Importing Preferences

The Preferences object provides the Import and Export methods, which allow you to save your preferences (both native and custom) to an external file which you can either use as a backup or to deploy as part of an add-on package. These methods allow you to specify one or more categories, or nothing (which imports/exports all preferences). See the following example:

- Python Example: Exporting, importing, and restoring preferences

Examples

Python Example: Exporting, importing, and restoring preferences

from win32com.client import constants
app = Application

# Export the current scripting preferences
app.Preferences.Export( app.InstallationPath(constants.siFactoryPath) + "/myprefs.xsipref", "scripting" )

# Restore the default values
app.Preferences.RestoreDefault( "scripting" )

# Now import back the scripting preferences
app.Preferences.Import( app.InstallationPath(constants.siFactoryPath) + "/myprefs.xsipref" )

C++ Examples: Getting a specific preference value

using namespace XSI;
Application app;
Preferences prefs = app.GetPreferences();

CString lang;
prefs.GetPreferenceValue( L"scripting.language", lang );

app.LogMessage( lang );

JScript Example: Browsing through preference via categories

/*
   This example show how to navigate in preferences object
   All categories and all preferences in each category will be printed.
*/
var oPrefs = Application.Preferences;

var oCategories = oPrefs.Categories;
for (var i=0; i<oCategories.Count; i++) {
   var oCategory = oCategories.Item(i);
   Application.LogMessage( "The preferences for category " + oCategory + " are....." );
   var oPrefs = oCategory.Parameters;
   for (var j=0; j<oPrefs.Count; j++) {
       var opref = oPrefs.Item(j);
       Application.LogMessage( "\t-" + opref + " = " + opref.Value );
   }
}


// Expected output:
// INFO : The preferences for category preferences.animation_editor are.....
// INFO :  -preferences.animation_editor.track_sel = false
// INFO :  -preferences.animation_editor.parameter_sort = 1
// INFO :  -preferences.animation_editor.max_nb_curves = 0
// INFO :  -preferences.animation_editor.auto_select_marked = false
// INFO :  -preferences.animation_editor.auto_select_keyed = false
// INFO :  -preferences.animation_editor.always_show_root_objects = true
// INFO :  -preferences.animation_editor.simplified_mode = true
// INFO :  -preferences.animation_editor.prevent_movement_on_lmb = false
// INFO :  -preferences.animation_editor.translate_on_mmb = true
// INFO :  -preferences.animation_editor.fcurveeditor_multisel_expansion = 1
// INFO :  -preferences.animation_editor.dopesheet_multisel_expansion = 0
// ...
//
// INFO : The preferences for category preferences.units are.....
// INFO :  -preferences.units.colorspace = 1
// INFO :  -preferences.units.length = 2
// INFO :  -preferences.units.angle = 2
// INFO :  -preferences.units.time = 2
// INFO :  -preferences.units.mass = 2

 



Autodesk Softimage v7.5