You might find something useful in the code we have for writing the 3dmLoader for three.js. While not directly compute related, it uses the rhino3dm library, which is what is used to read objects from a file or from the results of a compute call. This part of the code goes through the object, checks the type, extracts relevant info, and then goes to the attributes.