Enums
Enums define a fixed set of allowed values for an attribute. Each enum value has a numeric key, a name, and an optional description.
List Enums
Retrieve all enums:
query getCkEnums($after: String, $first: Int, $ckModelIds: [String]) {
constructionKit {
enums(after: $after, first: $first, ckModelIds: $ckModelIds) {
totalCount
items {
ckEnumId {
fullName
semanticVersionedFullName
}
useFlags
}
}
}
}
Response
{
"data": {
"constructionKit": {
"enums": {
"totalCount": 8,
"items": [
{
"ckEnumId": {
"fullName": "Industry.Energy-1.0.0/EnergyMeterState-1",
"semanticVersionedFullName": "Industry.Energy/EnergyMeterState"
},
"useFlags": false
},
{
"ckEnumId": {
"fullName": "EnergyCommunity-1.0.0/CustomerState-1",
"semanticVersionedFullName": "EnergyCommunity/CustomerState"
},
"useFlags": false
}
]
}
}
}
}
Filter by Model
Retrieve enums from specific models:
query {
constructionKit {
enums(ckModelIds: ["Industry.Energy-1"]) {
totalCount
items {
ckEnumId {
fullName
}
useFlags
}
}
}
}
Enum Details
Retrieve detailed information about a specific enum including its values:
query getCkEnumDetails($ckId: String) {
constructionKit {
enums(ckId: $ckId) {
items {
ckEnumId {
fullName
semanticVersionedFullName
}
useFlags
isExtensible
values {
key
name
description
isExtension
}
}
}
}
}
Variables:
{
"ckId": "Industry.Energy-1.0.0/EnergyMeterState-1"
}
Response
{
"data": {
"constructionKit": {
"enums": {
"items": [
{
"ckEnumId": {
"fullName": "Industry.Energy-1.0.0/EnergyMeterState-1",
"semanticVersionedFullName": "Industry.Energy/EnergyMeterState"
},
"useFlags": false,
"isExtensible": false,
"values": [
{
"key": 0,
"name": "OFF",
"description": "Meter is turned off",
"isExtension": false
},
{
"key": 1,
"name": "ON",
"description": "Meter is operational",
"isExtension": false
},
{
"key": 2,
"name": "STANDBY",
"description": "Meter is in standby mode",
"isExtension": false
},
{
"key": 3,
"name": "ERROR",
"description": "Meter has an error",
"isExtension": false
}
]
}
]
}
}
}
}
Flag Enums
When useFlags is true, the enum values can be combined as bit flags:
query {
constructionKit {
enums(ckId: "System-1.0.3/Permissions-1") {
items {
ckEnumId {
fullName
}
useFlags
values {
key
name
description
}
}
}
}
}
Response
{
"data": {
"constructionKit": {
"enums": {
"items": [
{
"ckEnumId": {
"fullName": "System-1.0.3/Permissions-1"
},
"useFlags": true,
"values": [
{ "key": 1, "name": "READ", "description": "Read permission" },
{ "key": 2, "name": "WRITE", "description": "Write permission" },
{ "key": 4, "name": "DELETE", "description": "Delete permission" },
{ "key": 8, "name": "ADMIN", "description": "Admin permission" }
]
}
]
}
}
}
}
With flag enums, a value of 3 represents READ | WRITE (1 + 2).
Extensible Enums
When isExtensible is true, additional values can be added at runtime. Extended values have isExtension: true:
{
"values": [
{ "key": 0, "name": "STANDARD", "description": "Standard value", "isExtension": false },
{ "key": 100, "name": "CUSTOM", "description": "Custom extension", "isExtension": true }
]
}
Enum Fields
CkEnum
| Field | Type | Description |
|---|---|---|
ckEnumId | CkEnumId | The enum identifier |
useFlags | Boolean | Whether values can be combined as bit flags |
isExtensible | Boolean | Whether additional values can be added at runtime |
values | [CkEnumValue] | The defined enum values |
CkEnumValue
| Field | Type | Description |
|---|---|---|
key | Int | Numeric value (stored in database) |
name | String | Display name |
description | String | Description of the value |
isExtension | Boolean | Whether this is a runtime extension |