You need to use the configured name of your StrAttribute3.
For example in my environment StrAttribute3 has a name of 'survey_answer_Overall' and a Display Name of 'Survey Overall'. So I use the Name 'survey_answer_Overall' instead of StrAttribute3
String now = DateTime.Now.ToString();
RequestGetInteractionContent reqGet = RequestGetInteractionContent.Create();
reqGet.InteractionId = "0375MP2M0S5D802E";
EventGetInteractionContent content = ucsProtocol.Request(reqGet) as EventGetInteractionContent;
Debug.WriteLine(content);
if (content.InteractionAttributes.AllAttributes.ContainsKey("survey_answer_Overall"))
{
Debug.WriteLine("survey_answer_Overall = " + content.InteractionAttributes.AllAttributes.GetAsString("survey_answer_Overall"));
content.InteractionAttributes.AllAttributes.Remove("survey_answer_Overall");
}
KeyValueCollection kvc = content.InteractionAttributes.AllAttributes;
kvc.Add("survey_answer_Overall", now);
content.InteractionAttributes.AllAttributes = kvc;
RequestUpdateInteraction req = RequestUpdateInteraction.Create();
req.InteractionAttributes = content.InteractionAttributes;
IMessage res = ucsProtocol.Request(req);
Debug.WriteLine(res);