Yet another change to the Python shortcuts

To fix it so that the 2012 Python shortcuts would work in 2013 SP1, we did an Undo on the changes to the siutils module. So now, scripts that use the 2012 siutils shortcuts will work unchanged in 2013 SP1.

We moved all the changes [which included some bug fixes] to a new module named sipyutils. When you use the Syntax Help in the 2013 SP1 script editor, you’ll get these shortcuts:

# Softimage 2013 SP1 shortcuts
from sipyutils import si		# win32com.client.Dispatch('XSI.Application')
from sipyutils import siut		# win32com.client.Dispatch('XSI.Utils')
from sipyutils import siui		# win32com.client.Dispatch('XSI.UIToolkit')
from sipyutils import simath	# win32com.client.Dispatch('XSI.Math')
from sipyutils import log		# LogMessage
from sipyutils import disp		# win32com.client.Dispatch
from sipyutils import C			# win32com.client.constants
from sipyutils import logf

si = si()
logf( "Version %s has %d commands", si.Version(), si.Commands.Count )

Note that you get an si shortcut that is a function, so you have to call it to get the actual XSIApplication object.

In summary:

  • 2012 shortcuts work unchanged in 2013 SP1
  • 2013 shortcuts won’t work in 2013 SP1. This line will give you an error:

    si = si()					# win32com.client.Dispatch('XSI.Application')

    You have to either comment that line out, or edit siutils and uncomment the definition of si(). Or just switch to using the new sipyutils shortcuts.

  • 2013 SP1 shortcuts come from the new sipyutils module. The si shortcut is a function, call the function and bind the result to an identifier eg si = si().

For reference, here’s the shortcuts from previous versions:

# 2013 shortcuts
from siutils import si
si = si()					# win32com.client.Dispatch('XSI.Application')
from siutils import log		# LogMessage
from siutils import disp	# win32com.client.Dispatch
from siutils import C		# win32com.client.constants
# 2012 shortcuts
from siutils import si		# Application
from siutils import sidesk	# Desktop
from siutils import sidict	# Dictionary
from siutils import sifact	# XSIFactory
from siutils import simath	# XSIMath
from siutils import siproj	# ActiveProject2
from siutils import sisel	# Selection
from siutils import siuitk	# XSIUIToolkit
from siutils import siut	# XSIUtils
from siutils import log		# LogMessage
from siutils import disp	# win32com.client.Dispatch
from siutils import C		# win32com.client.constants

Softimage 2013 SP1 available for download

The latest service pack for Autodesk® Softimage® 2013 software includes 75 fixes.

Here’s the list of fixes from the README:


  • SOFT-2810 Retimer Tool Softimage: Swapping Buffer curves causes refresh issue
  • SOFT-2188 MOTOR – Mistakes in tag template for BVH file crash Softimage when you click Apply in Mocap To Rig

Data Management

  • SOFT-6095 xsi crash with refmodel in texture mapping
  • SOFT-5662 Using Save Cache to Mixer button from the Caching Files Tabs causes a crash
  • SOFT-5580 RefModel: Log messages are not being displayed
  • SOFT-5555 Saving a scene with an ICE tree on a referenced model and loading it back up and you lose the ICE Tree completely.
  • SOFT-4703 Missing an expression when merge Scene


  • SOFT-6007 Softimage Crashes when light is deleted after 3d light manipulator is turned on
  • SOFT-1943 Crash: Animation Mixer Audio Track
  • SOFT-1294 SetTagValue will crash scene
  • SOFT-1862 Setup | Installation Progress Bar was not calculated properly


  • SOFT-6000 Using locations with BuildArrayFromSet gives an array that changes each time you access the array
  • SOFT-2761 ICE : using an intrinsic attribute name with AddICEAttribute will crash Softimage
  • SOFT-2707 ICE camera scene references break when using memo cam buttons.
  • SOFT-2521 Bullet: Crash while computing simulation with high number of small particles
  • SOFT-1785 Construction history of ICE Explorer and XSI Explorer doesn’t match in specific scenes
  • SOFT-1356 Operator deleted when deleting top ICETree
  • SOFT-1311 ICE keeps evaluating old group members until I replug or repick the appropriate group
  • SOFT-1266 Softimage crash when playing back (in loop mode) a RBD simulation.
  • SOFT-979 SDK : AddICEAttribute failed if object is deleted
  • SOFT-890 problem with ICE relations related to groups
  • SOFT-6150 ICE: Softimage crashes when copy-paste geometry (with ICE Tree) into a model followed by undo

ICE Crowds

  • SOFT-5948 Crowdfx: Crash when disconnecting the 1st ICE Node in the Get_Animations_Sources ICETree of the point cloud


  • SOFT-5003 Modeling | “Slide on Surface” option of Proportional doesn’t work


  • SOFT-6019 RENDERING: Setting an Invalid Temp File Path Crashes XSI On Startup
  • SOFT-6015 Material manager no longer displays clusters
  • SOFT-5986 RENDERING: Unhiding an object in the High Quality viewport crashes Softimage
  • SOFT-5947 HQV: XSI Crash On Exit When Switching To HQV With A Crowd Scene
  • SOFT-5878 Hardware Renderer Scene Option causes polymesh to appear deformed.
  • SOFT-5770 Regression – Copy/Paste Shader Compound missing a refresh
  • SOFT-5687 SDK RENDER: Memory Leak in C3DShaderParamDef When Exporting a Shader Compound
  • SOFT-5620 Ambient occlusion generated map has artifacts, in certain scenarios.
  • SOFT-5612 Crash when setting prefs in Startup event
  • SOFT-5570 XSI Crashes, when Applying A Pass Override On A CustProp That Is Being Pulled By An ICETree
  • SOFT-5564 OGL – HQV – Objects disappear
  • SOFT-5451 Regression – Shaderballs are black when using Hardware Renderer
  • SOFT-5284 Memory leak when Ambient Occlusion shader is exported and re-imported back into scene.
  • SOFT-4741 OGL -HQV Texture Repeats break the Viewcube
  • SOFT-4691 RenderTree Nodes Menu uses Replace Shader instead of Create Shader Task.
  • SOFT-4652 HQV Viewport shaders are draw black when executing from a script on a new session
  • SOFT-2922 Changing viewport shade mode to/from OpenGL modifies user normals on polygon meshes.
  • SOFT-2646 OGL HQV Refresh issue: Environment ball is temporarily visible in middle of viewport, and shaders are black
  • SOFT-1663 Tiles randomly not being rendered on multicore systems with On-Disk Framebuffers enabled.
  • SOFT-1473 A parameter’s animation icon is disappeared when creating Group or Tab in a compound shader
  • SOFT-1402 OGL HQV Shadows: artifacts on polymesh edge and component selection
  • SOFT-1320 Wrong display results with generated ultimaps
  • SOFT-1071 Linux – Incomplete rendered EXR frames when On-Disk Framebuffers enabled
  • SOFT-5036 Crash when you assign specific tiff with LZW compression


  • SOFT-6083 SDK: CRigidBodyAccessor.GetPatriarch (), GetShapes(), GetShapeCount() crashes, when no rigid body is present
  • SOFT-6025 FindView2 methods crash Softimage if the specified view does not exist
  • SOFT-6016 GetObjectFromID2 crashes Softimage if the object does not exist
  • SOFT-6003 ICE: GetPortFromName2() crashes if portname does not exist in ICE node
  • SOFT-5993 SDK: Primitive.GetGeometry3() with no arguments causes crash
  • SOFT-5970 SDK: Loading a workgroup on startup using a .wkg file causes assert and crash
  • SOFT-5861 SDK BACKCOMP: Python Import Shortcuts Syntax Help Not Compatible with Legacy Versions of Softimage
  • SOFT-5790 C++ SDK | Missing Classification Argument in Factory::CreateParamDef()
  • SOFT-5691 SDK: Memory Leak when executing WeightEditorView.GetAttributeValue( “invaliddeformers” )
  • SOFT-2709 SDK | AddScriptedOp fails on first execution under Linux
  • SOFT-1732 SDK: FCurve.Type conversion from siBooleanFCurve to siIntegerFCurve fails and asserts
  • SOFT-1546 SDK: LoadPlugin() not returning the existing plug-in
  • SOFT-6160 Softimage crashes when retrieving view collection from nested views


  • SOFT-5355 Cannot use Simulate Bullet Rigid Bodies with states


  • SOFT-2619 FR Game Export – Click on “Use Duplicate” on the Game Export PPG then Softimage will crash


  • SOFT-2406 LINUX | PPGs pop under views
  • SOFT-1302 Transient Explorer pops under PPGs. ( Fedora Core 14 )
  • SOFT-5411 Scene specific: Layers nodes are not visible on SE and Layers Curves not visible on the AE with CharacterKeySets


  • SOFT-6011 FBX | keying issue – being changed to 1 key in 2 frame
  • SOFT-5832 FBX material are in the wrong shader node after export import.
  • SOFT-5811 FBX : Diffuse port is missing during export / import of Blinn
  • SOFT-5677 FBX : ICE crash during FBX export in “Mesh_With_Set_ICEMaterials_Tree.scn”
  • SOFT-5632 Unused UVs in an object with “Turn Internal Edge” operation will be wrong in the FBX export-import process
  • SOFT-5352 FBX exporter is splitting UVs causing issues in pipeline
  • SOFT-5160 FBX: XSI crash when export fbx bone using Export Envelope options
  • SOFT-2308 The cancel button is not working in the crosswalk FBX import\export
  • SOFT-1725 FBX: unable to export an image node with constant shader

Creating XSI objects in Netview

If you want to use objects like XSIApplication, XSIMath, XSIUtils, and XSIFactory in NetView scripts, you need to know the [mostly undocumented] progIDs of those objects.

window.onload = onLoadHandler;

// OnLoadHandler for any HTML page 
// that includes this .js file
function onLoadHandler() {

	// Create instances of Softimage objects.

	try {
		var Application = new ActiveXObject('XSI.Application');
		var XSIUtils = new ActiveXObject('XSI.Utils');
		var XSIMath = new ActiveXObject('XSI.Math');
		var XSIFactory = new ActiveXObject('XSI.Factory');
	} catch ( e ) {
		alert( e );

Here’s a script that uses WMI to find the progIDs of XSI COM automation objects:

var sComputer = XSIUtils.Environment("COMPUTERNAME");

ListCOM( sComputer );

function ListCOM( computer )
	var wmistr = "winmgmts:{impersonationLevel=impersonate}!\\\\"; 
	wmistr += computer + "\\root\\cimv2";
	var wmi = GetObject( wmistr );
	var query = "SELECT * FROM Win32_ClassicCOMClassSetting";
	var com = wmi.ExecQuery( query );
	var ecom = new Enumerator( com );
	for( ; !ecom.atEnd(); ecom.moveNext() )
		var icom = ecom.item();  
		if ( icom.Caption != null && icom.Caption.indexOf( "XSI" ) > -1 && icom.VersionIndependentProgId != null)
			LogMessage( "name   : " + icom.Caption );
			LogMessage( "progid : " + icom.VersionIndependentProgId );
			LogMessage( "" );   

And here’s the script output on my machine:

// INFO : name   : XSIDialog Class
// INFO : progid : XSIDial.XSIDialog
// INFO : 
// INFO : name   : XSI Framebuffer List Widget Class
// INFO : progid : FramebufferListWidget.FramebufferListWidget
// INFO : 
// INFO : name   : XSI Factory Object
// INFO : progid : XSI.Factory
// INFO : 
// INFO : name   : XSI Scripting Environment Object
// INFO : progid : Scripting.Environment
// INFO : 
// INFO : name   : XSI Utility Object
// INFO : progid : XSI.Utils
// INFO : 
// INFO : name   : XSI Plugin Helper Object
// INFO : progid : XSI.PluginHelper
// INFO : 
// INFO : name   : XSIFileConverter Object
// INFO : progid : XSI.XSIFileConverter
// INFO : 
// INFO : name   : XSIFileService Object
// INFO : progid : XSI.XSIFileService
// INFO : 
// INFO : name   : XSI UIToolkit Object
// INFO : progid : XSI.UIToolkit
// INFO : 
// INFO : name   : XSI Application Object
// INFO : progid : XSI.Application
// INFO : 
// INFO : name   : XSI Math Module
// INFO : progid : XSI.Math
// INFO : 
// INFO : name   : XSI Render Channel List Widget Class
// INFO : progid : RenderChannelListWidget.RenderChannelListWidget
// INFO : 
// INFO : name   : XSIFileFormat Object
// INFO : progid : XSI.XSIFileFormat
// INFO : 
// INFO : name   : XSI Image Format Chooser Class
// INFO : progid : ImageFormatChooser.ImageFormatChooser
// INFO : 

Unable to create object[CLSID\{A8BF89CA-1025-11D2-006094EB029C}] : %SUMATRAPATH%\moaudio.dll, Cleanup will be performed

After all these years, this one still pops up from time to time: most recently from an XSI 7.0 user who emailed the old Softimage Licensing inbox.

The solution: run runonce.bat. And, just don’t use registry cleaners unless you like having to run runonce.bat to fix up Softimage or XSI.