System::SharedPtr project = System::MakeObject(dataDir + u"New project 2013.mpp"); auto task = project->get_RootTask()->get_Children()->Add(u"t1"); auto materialResource = project->get_Resources()->Add(u"materialResource"); materialResource->Set(Rsc::Type(), Aspose::Tasks::ResourceType::Material); auto nonMaterialResource = project->get_Resources()->Add(u"nonMaterialResource"); nonMaterialResource->Set(Rsc::Type(), Aspose::Tasks::ResourceType::Work); auto materialResourceAssignment = project->get_ResourceAssignments()->Add(task, materialResource); materialResourceAssignment->Set(Asn::RateScale(), Aspose::Tasks::RateScaleType::Week); materialResourceAssignment->Set(Asn::Uid(), 1); auto nonMaterialResourceAssignment = project->get_ResourceAssignments()->Add(task, nonMaterialResource); nonMaterialResourceAssignment->Set(Asn::RateScale(), Aspose::Tasks::RateScaleType::Week); nonMaterialResourceAssignment->Set(Asn::Uid(), 2); project->Save(dataDir + u"output.mpp", Aspose::Tasks::Saving::SaveFileFormat::MPP); auto resavedProject = System::MakeObject(dataDir + u"output.mpp"); auto resavedMaterialResourceAssignment = resavedProject->get_ResourceAssignments()->GetByUid(1); System::Console::WriteLine(System::ObjectExt::Box(resavedMaterialResourceAssignment->Get(Asn::RateScale()))); // only material resource assignments can have non-zero rate scale value. auto resavedNonMaterialResourceAssignment = resavedProject->get_ResourceAssignments()->GetByUid(2);