I've spent the night figuring out how to set per-component ICE attributes from a custom operator, which most of the threads on the subject had me beginning to believe was impossible.
I was working with SI2013 and compiling against the SDK that ships with 2014sp2, and as soon as I declared a CICEAttributeDataArray the plugin would refuse to load with the error "A procedure couldn't be found in the library". Having never worked with CICEAttributeDataArray before I assumed support for it was added with SI2014, which would have explained the lack of working examples. Lo-and-behold it loaded fine in 2014sp2. After much frustration I did eventually manage to coax the C++ api into dumping arrays into per-point attributes, but was somewhat bummed that it would only work with 2014. However, hours of digging through the SDK documentation had made it abundantly clear that CICEAttributeDataArray was nothing new and should work fine in earlier versions. I swapped out the 2014sp2 SDK and compiled against the 2013sp1 SDK instead, which allowed the plugin to be loaded in 2013 without any errors. Aren't SDKs supposed to be backwards compatible? Are there any extra steps necessary to make it play nice with earlier versions, or do I have to stick with the old SDKs?

