---
title: Assignables
framework: Assignables
role: collection
role_heading: Framework
platforms: [iOS 15.4+, iPadOS 15.4+, Mac Catalyst 15.4+]
path: assignables
---

# Assignables

A framework that contains wrappers for a PDF to allow creation of an assessment and student work on that assessment.

## Overview

Overview An AssignableDocument is a document that contains a base PDF and stores added markup, annotations, questions, and scoring options for that PDF. This framework focuses on the student and teacher experience. Teachers can assign the document to a student by creating an AssignedWorkDocument from the AssignableDocument. In addition to those data types, Assignables also provides SwiftUI view classes to enable editing of those documents in your own views. Once a student completes their work, they can return it to the teacher to be scored and to receive comments on their work. Authorship is important at each of these steps, so Assignables supports attribution of changes to any document using types that conform to UserIdentity. Since teachers may collaborate on making an assignable or scoring student works, or students might collaborate on a document, both document types support merging copies of the document with any other copy of the same document.

## Topics

### Assignable document

- [AssignableDocument](assignables/assignabledocument.md)
- [AssignedWorkDocument](assignables/assignedworkdocument.md)
- [Assignable](assignables/assignable.md)

### Configuration

- [AssignableDocumentConfiguration](assignables/assignabledocumentconfiguration.md)
- [AssignedWorkDocumentConfiguration](assignables/assignedworkdocumentconfiguration.md)

### Presentation

- [AssignableDocumentView](assignables/assignabledocumentview.md)
- [AssignedWorkDocumentView](assignables/assignedworkdocumentview.md)

### Document elements

- [DocumentElement](assignables/documentelement.md)
- [BasicDocumentElementID](assignables/basicdocumentelementid.md)
- [DocumentElementID](assignables/documentelementid.md)
- [AssignableDocumentElement](assignables/assignabledocumentelement.md)
- [AssignedWorkDocumentElement](assignables/assignedworkdocumentelement.md)

### Mergeable document

- [MergeableDocument](assignables/mergeabledocument.md)
- [MergeablePartsContainerPartID](assignables/mergeablepartscontainerpartid.md)
- [MergeableDocumentPage](assignables/mergeabledocumentpage.md)
- [MergeablePartsContainer](assignables/mergeablepartscontainer.md)
- [DocumentThumbnail](assignables/documentthumbnail.md)

### Identity

- [UserIdentity](assignables/useridentity.md)
- [AnonymousUserIdentity](assignables/anonymoususeridentity.md)
- [AnyUserIdentity](assignables/anyuseridentity.md)
- [StringUserIdentity](assignables/stringuseridentity.md)
- [UserIdentityTypeRegistry](assignables/useridentitytyperegistry.md)
- [UserIdentityFactory](assignables/useridentityfactory.md)
