When you export a compound, you can choose to embed internal compounds.
It turns out that if a compound has embedded compounds, then calling ApplyICEOp like this:
sFile = 'Test Compound' Application.ApplyICEOp(sFile, "Sphere1", "", "siUnspecified")
will give you this error if the compound is not located in the Data\Compounds folder of your User location.
# ERROR : 21000-EDIT-PrivateGetCompoundConstructionMode - Unspecified failure - [line 720 in C:\Program Files\Autodesk\Softimage 2013\Application\DSScripts\operators.vbs] Application.ApplyICEOp("Test compound", "Sphere1.sphere", "", "siUnspecified") # ERROR : Traceback (most recent call last): # File "<Script Block >", line 58, in <module> # si.ApplyICEOp( sCompound, o.FullName ) # File "<COMObject XSI.Application>", line 2, in ApplyICEOp # COM Error: Unspecified error (0x-7fffbffb) - [line 58]
I noticed something was up when Softimage kept using the a version of the compound from my User location instead of the “bad” version I had in my Downloads folder. A quick check with Process Monitor showed that yep, Softimage was always looking for C:\Users\blairs\Autodesk\Softimage_2013\Data\Compounds\Test Compound.xsicompound, even though I had selected C:\Downloads\Test Compound.xsicompound as the compound to apply.
The workaround is to specify the full path:
sFile = 'C:\\Users\\blairs\\Documents\\Workgroup2\\Data\\Compounds\\Test compound.xsicompound' Application.ApplyICEOp(sFile, "Sphere1", "", "siUnspecified")
I’ve updated my Applying an ICE compound to multiple objects script accordingly…