What I have tried so far is defining an output as:
outInstanceData = tAttr.create( "outInstanceData", "outInstanceData", MFnData::kDynArrayAttrs);
tAttr.setStorable(false);
addAttribute( outInstanceData );
And in the compute method I created some test Data:
MFnArrayAttrsData instancePointDataFn;
MObject instancePointDataObj = instancePointDataFn.create();
MVectorArray outPosArray = instancePointDataFn.vectorArray("position");
MIntArray outIdArray = instancePointDataFn.intArray("id");
MDoubleArray outAgeArray = instancePointDataFn.doubleArray("age");
MDataHandle instanceDataHandle = datablock.outputValue(outInstanceData);
instanceDataHandle.setMObject(instancePointDataObj);
outPosArray.append(MVector(0,0,0));
outPosArray.append(MVector(1,0,0));
outPosArray.append(MVector(2,0,0));
outPosArray.append(MVector(3,0,0));
outIdArray.append(0);
outIdArray.append(1);
outIdArray.append(2);
outIdArray.append(3);
outAgeArray.append(0.0);
outAgeArray.append(0.1);
outAgeArray.append(0.2);
outAgeArray.append(0.3);
datablock.setClean(plug);But this was not successful, I do not see any instances. So what's wrong here?