--- title: "Thing Definition Properties" slug: "thing-definition-properties" updated: 2024-10-23T14:03:43Z published: 2024-10-23T14:03:43Z canonical: "learn.servitly.com/thing-definition-properties" --- > ## Documentation Index > Fetch the complete documentation index at: https://learn.servitly.com/llms.txt > Use this file to discover all available pages before exploring further. # Thing Definition Properties Each Thing Definition configured in the comes with a set of predefined properties, and in addition you can define custom properties specific for your application domain. Thing Definition's custom properties can be used, for example, to: - group/sort/search things; - manage thing definition specific details, like images or descriptions; - manage technical information (e.g. sizes/volumes, number of parts/sections, modes). Property values are saved in the Thing Definition, but they are also inherited by all things. Thing JSON object ```json { "id": "62e8d456cd97dd690ee55a1b", "name": "Oven 1", "serialNumber": "OVN-123ab7", "thingDefinition": { "id": "63712724d9900a490d36ea0e", "name": "Oven 1200w", "properties": { "longDescription": "Oven with double desk resistance of 1200w with steam..." } }, "properties": { "size": 123 } } ``` For more details about how to use and display properties within the pages, refer to the [Referencing Properties](/docs/referencing-properties) article. ## Configuring properties By entering the *Properties / Thing Definition* page, you can manage the properties available to all Thing Definitions. The below list, displays the default properties and the additional properties for all Thing Definitions. ![](https://cdn.document360.io/6759e9c9-3ce3-49df-965a-7231d2d9a10a/Images/Documentation/image(67).png) Thing Definition predefined properties: | **PROPERTY NAME** | **DESCRIPTION** | **REFERENCE NAME** | | --- | --- | --- | | *name* | The friendly name of the thing. | name | These properties cannot be deleted, because mandatory for the correct functioning of the DPS application, but you can modify the Label, and according to the property also some constraints. ## Creating a new thing definition property To add a new thing definition property, you should: 1. Press the *Add Property* button. 2. Provide the required information. 3. Press the *Save* button. ### Editing thing definition properties From the property list, if you click on a property, you will enter the property editing page. ![](https://cdn.document360.io/6759e9c9-3ce3-49df-965a-7231d2d9a10a/Images/Documentation/image(68).png) Each property is described by: ### General - **Label**: the label displayed within the pages (e.g. Foo Bar). - **Name**: the property simple name used to reference it within templates (e.g. *properties.fooBar*) - **Description**: the description that is displayed under the properties within the editing pages. - **Type**: the property value type, one of Boolean, Date, Double, File, Float, Integer, Long, String. For more details about types, refer to the [Property Types](/docs/property-types) article. - **Unit:** the unit displayed along with the property value (e.g. Kg). It is available only for numeric properties. - **Default value**: the property default value assigned to a newly created object. - **Data Type**: in case of numeric values, you can define whether the property values are *DISCRETE* or *CONTINUOUS*, and then you can also define [Dictionary and Thresholds](/docs/dictionary-and-thresholds). - **Group**: the key used to group properties within editing dialogs. ### Rendering - **Order**: the order used to sort properties within editing dialogs. - **Searchable**: the property can be used within the advanced search panel. - **Selection**: the selection mode (radio, select, switch) for multiple values. - **Values**: the set of value and label pairs in case of selection. ### Constraints - **Unique:** it is not possible to have two objects with the same property value. If you try to create a new object or update an existing one, using the value already saved in another object, the backend will report an error. - **Mandatory:** the property cannot be left blank. When creating a new object or updating an existing object, if the value of the property is missing, the backend reports an error. - **Limit write permissions depending on the user-type:** you can limit the user-types can write the property value. If a user which is not authorized to the property, try to write it, the backend reports an error. Properties that are not writable by a user type are also not visible on the edit page of that object in the DPS application. - **Min**: the minimum value used for numeric properties validation. - **Max**: the maximum value used for numeric properties validation.