[Canonical page](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/overview/>)
[Full documentation index](<https://docs.dhtmlx.com/planning-engine/llms.txt>)


# changes

Edits to a live project. [`SchedulingChanges`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/scheduling-changes.md>) is the change set that [`Project.Apply`](<https://docs.dhtmlx.com/planning-engine/net/api/project-apply.md>) commits, [`Project.Preview`](<https://docs.dhtmlx.com/planning-engine/net/api/project-preview.md>) tries on a copy, and [`Project.Evaluate`](<https://docs.dhtmlx.com/planning-engine/net/api/project-evaluate.md>) scores as a candidate. It holds one [`Changes<TAdd, TUpdate>`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/changes.md>) per record kind (tasks, links, resources, assignments), each with `Add`, `Update` and `Remove` lists.

Adds take full records. Tasks, resources and assignments use the input classes from [data](<https://docs.dhtmlx.com/planning-engine/net/api/core/data/overview.md>), and links use [`LinkAdd`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/link-add.md>), whose id is optional. Updates are partial: every field of [`TaskUpdate`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/task-update.md>), [`LinkUpdate`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/link-update.md>), [`ResourceUpdate`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/resource-update.md>) and [`AssignmentUpdate`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/assignment-update.md>) except `Id` is a [`Patch<T>`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/patch.md>), which keeps, clears or sets the current value.

`Project.Apply` returns an [`ApplyReport`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/apply-report.md>) with the applied and rejected operations, the side effects (cascading removals and generated ids) and the resync flag. Each rejection is a [`RejectedOperation`](<https://docs.dhtmlx.com/planning-engine/net/api/core/changes/rejected-operation.md>). Every type here is in the `Plen` namespace.

:::category-index
:::
