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


# Plen.Assign

The `Plen.Assign` package turns a pool of workers with skills and a list of task requirements into the [`Slot`](<https://docs.dhtmlx.com/planning-engine/net/api/core/suggest/slot.md>) list that [`Project.SuggestAssignments`](<https://docs.dhtmlx.com/planning-engine/net/api/project-suggest-assignments.md>) takes. The core package never sees skills. They exist only in this package.

```bash
dotnet add package Plen.Assign
```

The package depends on `Plen.Core` only. It's pure .NET, with no I/O and no JSON support. Every public type is in the `Plen.Assign` namespace. `Project`, `Id` and `Slot` come from the `Plen` namespace.

```csharp
using Plen;
using Plen.Assign;
```

The entry point is the static method [`SkillLayer.Slots`](<https://docs.dhtmlx.com/planning-engine/net/api/skill-layer-slots.md>). [`Pool`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/pool.md>), [`Worker`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/worker.md>) and [`Skill`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/skill.md>) describe who can be assigned. [`Requirement`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/requirement.md>), with its [`SkillMatch`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/requirement.md#skillmatch>) and [`SkillOp`](<https://docs.dhtmlx.com/planning-engine/net/api/assign/requirement.md#skillop>), describes what each task needs. `SkillOp` is an enum; the other types are sealed classes with value equality and a `DeepClone()` method.

The package has no exception types of its own. `SkillLayer.Slots` throws [`InputException`](<https://docs.dhtmlx.com/planning-engine/net/api/core/errors/input-exception.md>) and [`ProjectException`](<https://docs.dhtmlx.com/planning-engine/net/api/core/errors/project-exception.md>), so one `catch (PlenException)` covers it along with the rest of the API.

For a walk-through, see [Skills and requirements](<https://docs.dhtmlx.com/planning-engine/net/resources-and-assignment/skills-and-requirements.md>).

:::category-index
:::
