Object Hierarchy | Related C++ Class: Preferences
Preferences
v4.0
The Preferences object can be used to manage preferences in Softimage. Each preference is in a category
which is represented by a node under the Preferences object under the Application. To identify a
preference the category must be specified: (category.preference) Ex: "scripting.language".
There are 2 kinds of preferences: native and custom. Native preferences come with Softimage and can be
viewed with the File->Preferences dialog. Initially all preference values are set to the factory
defaults. When the user changes the value of a preference the new value is stored in the default.xsipref
file found in the \Data\Preference directory, and this value overrides the factory setting.
For custom preferences, you can create new preferences in an .xsipref file. However, preferences created
this way have no UI and can only be accessed via scripting.
You can also create custom preferences by creating a CustomProperty object and calling
InstallCustomPreferences. The only way to delete such a custom preference is to delete
the associated Preset file that is found in the \Data\Preferences directory.
Note: Unlike native preferences, custom preferences created in this fashion are also loaded from the Workgroup
location.
Only a subset of parameter types are supported for Custom Preferences, they are siInt4, siString, siBool and
siDouble (see siVariantType).
Many custom plug-ins use a CustomProperty as a way of providing a user interface. For example, a plug-in that
exports data may ask the user to choose the output file and other configuration settings by calling
InspectObj with a CustomProperty. Installing such a CustomProperty as a custom preference
can be useful because the values are not forgotten from one session to the next, the object does not clutter
the current scene and the information is centralized in the Preferences section of the Scene Explorer. However,
because of the limitations of supported parameter types it can often be more flexible to achieve the same thing
by calling SavePreset and LoadPreset directly from within the plug-in.
from win32com.client import constants as cns app = Application # Get the preferences object on the application oPrefs = app.Preferences # Show the current language app.LogMessage(oPrefs.GetPreferenceValue ("scripting.language")) # or app.LogMessage(oPrefs.Categories("scripting").Language.Value) # Export all data_management preferences oPrefs.Export( XSIUtils.BuildPath(app.InstallationPath(cns.siFactoryPath), "myDMprefs.xsipref"), "data_management") # Now reset all preferences of the category data_management oPrefs.RestoreDefault("data_management") # Expected results: # INFO : Python # INFO : Python |
/* This example demonstrates how to temporarily change the user's AutoInspect preference (if enabled, property pages always pop up for objects newly created via command). It also illustrates how Softimage automatically reverts any scripting change to this preference after the script runs. */ var app = Application; // Current value of AutoInspect app.LogMessage( app.Preferences.GetPreferenceValue("Interaction.autoinspect") ); // Toggle the orginal value and re-log the value app.Preferences.SetPreferenceValue( "Interaction.autoinspect", !app.Preferences.GetPreferenceValue("Interaction.autoinspect") ); app.LogMessage( app.Preferences.GetPreferenceValue("Interaction.autoinspect") ); // If your AutoInspect preference was enabled originally, the History Log // would display the following: // INFO : True // INFO : False // VERBOSE : Restoring preference changed by script: Interaction.autoinspect // If your AutoInspect preference was disabled originally, the History Log // would display the following: // INFO : False // INFO : True // VERBOSE : Restoring preference changed by script: Interaction.autoinspect |
' This example show how to navigate in preferences object ' All categories and all preferences in each category will be printed. set oPrefs = Application.Preferences set oCategories = oPrefs.categories For each oCategory in oCategories Application.LogMessage "The preferences for category " & oCategory & " are:" set oPreferences = oCategory.Parameters For each oPref in oPreferences Application.LogMessage " -" & oPref & " = " & oPref.Value Next Next ' The script logs information like the following: ' .... ' 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 ' .... |