System::SharedPtr project1 = System::MakeObject(dataDir + u"Blank2010.mpp"); System::SharedPtr myTextAttributeDefinition = project1->get_ExtendedAttributes()->GetById((int32_t)Aspose::Tasks::ExtendedAttributeTask::Text1); // If the Custom field doesn't exist in Project, create it if (myTextAttributeDefinition == nullptr) { myTextAttributeDefinition = ExtendedAttributeDefinition::CreateTaskDefinition(Aspose::Tasks::ExtendedAttributeTask::Text1, u"My text field"); project1->get_ExtendedAttributes()->Add(myTextAttributeDefinition); } // Generate Extended Attribute from definition System::SharedPtr text1TaskAttribute = myTextAttributeDefinition->CreateExtendedAttribute(); text1TaskAttribute->set_TextValue(u"Text attribute value"); // Add extended attribute to task System::SharedPtr tsk = project1->get_RootTask()->get_Children()->Add(u"Task 1"); tsk->get_ExtendedAttributes()->Add(text1TaskAttribute); project1->Save(dataDir + u"CreateExtendedAttributes_out.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP);