---
title: Set Properties in the Document UI
nextjs:
metadata:
title: Set Properties in the Document UI
description: How to use set properties in the document UI
openGraph:
images: https://assets.terminusdb.com/docs/technical-documentation-terminuscms-og.png
alternates:
canonical: https://terminusdb.org/docs/set/
media: []
---
This example shows how `` appears for a document `UnorderedPerson` with set fields in Create/ Edit or View mode. If a field is described as a Set it means the field can have more than one value to it in any unordered fashion. The field can also be considered optional, meaning it can be empty.
## Demo
Take a look at the [**Demo Playground**](https://documents-ui-playground.terminusdb.com/Set) to view `` with set properties in Create, Edit or View mode.
## Frame
This frame consists of an `UnorderedPerson` document
```javascript
let frame = {
"@context": {
"@base": "terminusdb:///data/",
"@schema": "terminusdb:///schema#",
"@type": "Context",
"xsd": "http://www.w3.org/2001/XMLSchema#"
},
"Address": {
"@documentation": [
{
"@comment": "An Address",
"@label": "Address",
"@language": "en",
"@properties": {
"AddressLine1": {
"@comment": "Address Line one",
"@label": "Address Line 1"
},
"Country": {
"@comment": "A Country ",
"@label": "Country"
},
"postalCode": {
"@comment": "A valid Postal Code",
"@label": "Zip Code"
}
}
},
{
"@comment": "მისამართი",
"@label": "მისამართი",
"@language": "ka",
"@properties": {
"AddressLine1": {
"@comment": "მისამართის ხაზი პირველი",
"@label": "მისამართის ხაზი 1"
},
"Country": {
"@comment": "Ქვეყანა",
"@label": "ქვეყანა"
},
"postalCode": {
"@comment": "მოქმედი საფოსტო კოდი",
"@label": "Ზიპ კოდი"
}
}
}
],
"@key": {
"@type": "Random"
},
"@subdocument": [],
"@type": "Class",
"AddressLine1": "xsd:string",
"City": {
"@class": "xsd:string",
"@type": "Optional"
},
"Country": "xsd:string",
"postalCode": "xsd:string"
},
"UnorderedPerson": {
"@key": {
"@type": "Random"
},
"@type": "Class",
"likes_color": {
"@class": {
"@id": "Colors",
"@type": "Enum",
"@values": [
"Red",
"Blue",
"Yellow",
"Green"
]
},
"@type": "Set"
},
"lived_at": {
"@class": {
"@class": "Address",
"@subdocument": []
},
"@type": "Set"
},
"nicknames": {
"@class": "xsd:string",
"@type": "Set"
},
"worked_as": {
"@class": "Jobs",
"@type": "Set"
}
}
}
```
### Create
```python
import { FrameViewer } from '@terminusdb/terminusdb-documents-ui'
return // type of document
```
### Edit & View
Note - make sure to provide document values for View mode. The form will be in read only mode for View.
```javascript
let data = {
"@id": "UnorderedPerson/3ca7d7a9c64ca2bc8319d83bca14b71697528ebb8536024e3e1795cbd049acdf",
"@type": "UnorderedPerson",
"likes_color": [
"Green",
"Red",
"Yellow"
],
"lived_at": [
{
"@id": "UnorderedPerson/3ca7d7a9c64ca2bc8319d83bca14b71697528ebb8536024e3e1795cbd049acdf/lived_at/Address/4f4fdae34ab4fa3b6297750917503a7137f75dc11589792de707e7a6d3502db3",
"@type": "Address",
"AddressLine1": "anywhere",
"City": "Nice",
"Country": "France",
"postalCode": "FR27836"
},
{
"@id": "UnorderedPerson/3ca7d7a9c64ca2bc8319d83bca14b71697528ebb8536024e3e1795cbd049acdf/lived_at/Address/7aaeeb6b983710a0adbc75de8f7d8104278df427124beadc6644b35b9d6c30af",
"@type": "Address",
"AddressLine1": "somewhere",
"City": "Berlin",
"Country": "Germany",
"postalCode": "GER02398"
}
],
"nicknames": [
"Adam",
"Chane",
"Luca"
],
"worked_as": [
"Jobs/33e3013112e6e76381ee6aba23a15f686b98fc2c300b3608e6fb25f585d93d24",
"Jobs/c8114bddb166325e704e368da237ed87e1c2de1dd23ae103431f974eaeefbbda"
]
}
return
```